From c9b3182198be50b2aa80d612d16ccc35402adb54 Mon Sep 17 00:00:00 2001 From: Mike Kucera Date: Wed, 4 Feb 2009 21:58:18 +0000 Subject: [PATCH] cleaning up the architecture of the LR parsers --- .../grammar/c99/C99ExpressionParser.g | 2 +- .../grammar/c99/C99NoCastExpressionParser.g | 2 +- .../grammar/c99/C99Parser.g | 8 +- .../grammar/c99/C99SizeofExpressionParser.g | 2 +- .../grammar/cpp/CPPExpressionParser.g | 2 +- .../grammar/cpp/CPPNoCastExpressionParser.g | 2 +- .../cpp/CPPNoFunctionDeclaratorParser.g | 2 +- .../grammar/cpp/CPPParser.g | 6 +- .../grammar/cpp/CPPSizeofExpressionParser.g | 2 +- .../cpp/CPPTemplateTypeParameterParser.g | 2 +- .../grammar/gcc/GCCParser.g | 6 +- .../grammar/gcc/GCCSizeofExpressionParser.g | 2 +- .../grammar/gpp/GPPParser.g | 6 +- .../grammar/gpp/GPPSizeofExpressionParser.g | 2 +- ...BtParserTemplateD.g => LRParserTemplate.g} | 60 +- .../template/LRSecondaryParserTemplate.g | 66 + .../deprecated/C99ResolveParserAction.java | 6 +- .../C99TypedefTrackerParserAction.java | 6 +- .../dom/lrparser/BaseExtensibleLanguage.java | 87 +- .../dom/lrparser/CPreprocessorAdapter.java | 4 +- .../cdt/core/dom/lrparser/IParser.java | 5 +- .../core/dom/lrparser/ISecondaryParser.java | 37 + .../core/dom/lrparser/ITokenCollector.java | 19 +- .../cdt/core/dom/lrparser/LRParserPlugin.java | 40 +- .../lrparser/action/AbstractParserAction.java | 22 +- .../lrparser/action/BuildASTParserAction.java | 81 +- .../action/ISecondaryParserFactory.java | 10 +- .../ITokenStream.java} | 6 +- .../action/c99/C99BuildASTParserAction.java | 28 +- .../action/c99/C99SecondaryParserFactory.java | 17 +- .../action/cpp/CPPBuildASTParserAction.java | 90 +- .../action/cpp/CPPSecondaryParserFactory.java | 25 +- .../cpp/ICPPSecondaryParserFactory.java | 9 +- .../action/gnu/GCCBuildASTParserAction.java | 6 +- .../action/gnu/GCCSecondaryParserFactory.java | 17 +- .../action/gnu/GNUBuildASTParserAction.java | 6 +- .../action/gnu/GPPBuildASTParserAction.java | 4 +- .../action/gnu/GPPSecondaryParserFactory.java | 25 +- .../core/dom/lrparser/c99/C99Language.java | 25 +- .../core/dom/lrparser/cpp/ISOCPPLanguage.java | 21 +- .../core/dom/lrparser/gnu/GCCLanguage.java | 21 +- .../core/dom/lrparser/gnu/GPPLanguage.java | 21 +- .../dom/lrparser/c99/C99ExpressionParser.java | 688 +-- .../lrparser/c99/C99ExpressionParserprs.java | 1133 ++--- .../c99/C99NoCastExpressionParser.java | 684 +-- .../c99/C99NoCastExpressionParserprs.java | 1094 ++-- .../core/dom/lrparser/c99/C99Parser.java | 703 ++- .../core/dom/lrparser/c99/C99Parserprs.java | 1602 +++--- .../c99/C99SizeofExpressionParser.java | 684 +-- .../c99/C99SizeofExpressionParserprs.java | 1092 ++-- .../dom/lrparser/cpp/CPPExpressionParser.java | 32 +- .../lrparser/cpp/CPPExpressionParserprs.java | 2895 +++++------ .../cpp/CPPNoCastExpressionParser.java | 32 +- .../cpp/CPPNoCastExpressionParserprs.java | 2894 +++++------ .../cpp/CPPNoFunctionDeclaratorParser.java | 32 +- .../cpp/CPPNoFunctionDeclaratorParserprs.java | 2982 +++++------ .../core/dom/lrparser/cpp/CPPParser.java | 51 +- .../core/dom/lrparser/cpp/CPPParserprs.java | 1235 ++--- .../cpp/CPPSizeofExpressionParser.java | 32 +- .../cpp/CPPSizeofExpressionParserprs.java | 2896 +++++------ .../cpp/CPPTemplateTypeParameterParser.java | 32 +- .../CPPTemplateTypeParameterParserprs.java | 2997 +++++------ .../core/dom/lrparser/gcc/GCCParser.java | 45 +- .../gcc/GCCSizeofExpressionParser.java | 26 +- .../core/dom/lrparser/gpp/GPPParser.java | 83 +- .../core/dom/lrparser/gpp/GPPParserprs.java | 4414 ++++++++-------- .../core/dom/lrparser/gpp/GPPParsersym.java | 12 +- .../gpp/GPPSizeofExpressionParser.java | 68 +- .../gpp/GPPSizeofExpressionParserprs.java | 4456 +++++++++-------- .../gpp/GPPSizeofExpressionParsersym.java | 42 +- .../grammar/upc/UPCExpressionParser.g | 2 +- .../grammar/upc/UPCNoCastExpressionParser.g | 2 +- .../grammar/upc/UPCParser.g | 2 +- .../grammar/upc/UPCSizeofExpressionParser.g | 2 +- .../core/dom/parser/upc/UPCParserAction.java | 4 +- .../parser/upc/UPCSecondaryParserFactory.java | 17 +- .../eclipse/cdt/core/dom/upc/UPCLanguage.java | 16 +- .../dom/parser/upc/UPCExpressionParser.java | 882 ++-- .../parser/upc/UPCExpressionParserprs.java | 1210 ++--- .../parser/upc/UPCNoCastExpressionParser.java | 878 ++-- .../upc/UPCNoCastExpressionParserprs.java | 1255 ++--- .../core/dom/parser/upc/UPCParser.java | 895 ++-- .../core/dom/parser/upc/UPCParserprs.java | 2256 ++++----- .../parser/upc/UPCSizeofExpressionParser.java | 866 ++-- .../upc/UPCSizeofExpressionParserprs.java | 1202 +++-- 85 files changed, 21758 insertions(+), 21477 deletions(-) rename lrparser/org.eclipse.cdt.core.lrparser/grammar/template/{FixedBtParserTemplateD.g => LRParserTemplate.g} (91%) create mode 100644 lrparser/org.eclipse.cdt.core.lrparser/grammar/template/LRSecondaryParserTemplate.g create mode 100644 lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/ISecondaryParser.java rename lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/{IParserActionTokenProvider.java => action/ITokenStream.java} (93%) diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99ExpressionParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99ExpressionParser.g index ba2ae8d25b1..4e999b0da82 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99ExpressionParser.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99ExpressionParser.g @@ -11,7 +11,7 @@ %options la=2 %options package=org.eclipse.cdt.internal.core.dom.lrparser.c99 -%options template=FixedBtParserTemplateD.g +%options template=LRSecondaryParserTemplate.g -- All we need to do is import the main parser and redefine the start symbol. diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99NoCastExpressionParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99NoCastExpressionParser.g index 7948a0aea55..229155762b1 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99NoCastExpressionParser.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99NoCastExpressionParser.g @@ -11,7 +11,7 @@ %options la=2 %options package=org.eclipse.cdt.internal.core.dom.lrparser.c99 -%options template=FixedBtParserTemplateD.g +%options template=LRSecondaryParserTemplate.g $Import C99Grammar.g diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Parser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Parser.g index 38195cc4a01..505d9ed0b94 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Parser.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Parser.g @@ -11,19 +11,15 @@ %options la=2 %options package=org.eclipse.cdt.internal.core.dom.lrparser.c99 -%options template=FixedBtParserTemplateD.g +%options template=LRParserTemplate.g -- This file is needed because LPG won't allow redefinition of the --- start symbol, so C99Grammar.g cannot define a start symbol. +-- start symbol, so C99Grammar.g cannot define the start symbol. $Import C99Grammar.g $End -$Define - $ast_class /. IASTTranslationUnit ./ -$End - $Start translation_unit $End \ No newline at end of file diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99SizeofExpressionParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99SizeofExpressionParser.g index 14084dc832a..d9e515c576a 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99SizeofExpressionParser.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99SizeofExpressionParser.g @@ -11,7 +11,7 @@ %options la=2 %options package=org.eclipse.cdt.internal.core.dom.lrparser.c99 -%options template=FixedBtParserTemplateD.g +%options template=LRSecondaryParserTemplate.g $Import diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPExpressionParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPExpressionParser.g index b9ab4957b75..ef93dac3d56 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPExpressionParser.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPExpressionParser.g @@ -11,7 +11,7 @@ %options la=2 %options package=org.eclipse.cdt.internal.core.dom.lrparser.cpp -%options template=FixedBtParserTemplateD.g +%options template=LRSecondaryParserTemplate.g -- All we need to do is import the main parser and redefine the start symbol. diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPNoCastExpressionParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPNoCastExpressionParser.g index ea1a9d944d8..f5438e7751e 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPNoCastExpressionParser.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPNoCastExpressionParser.g @@ -11,7 +11,7 @@ %options la=2 %options package=org.eclipse.cdt.internal.core.dom.lrparser.cpp -%options template=FixedBtParserTemplateD.g +%options template=LRSecondaryParserTemplate.g $Import CPPGrammar.g diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPNoFunctionDeclaratorParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPNoFunctionDeclaratorParser.g index 6e0bcc4cd39..ad093c6355d 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPNoFunctionDeclaratorParser.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPNoFunctionDeclaratorParser.g @@ -11,7 +11,7 @@ %options la=2 %options package=org.eclipse.cdt.internal.core.dom.lrparser.cpp -%options template=FixedBtParserTemplateD.g +%options template=LRSecondaryParserTemplate.g $Import CPPGrammar.g diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPParser.g index 8f4d80864de..9d9fb78abe8 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPParser.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPParser.g @@ -11,7 +11,7 @@ %options la=2 %options package=org.eclipse.cdt.internal.core.dom.lrparser.cpp -%options template=FixedBtParserTemplateD.g +%options template=LRParserTemplate.g -- This file is needed because LPG won't allow redefinition of the @@ -21,10 +21,6 @@ $Import CPPGrammar.g $End -$Define - $ast_class /. IASTTranslationUnit ./ -$End - $Start translation_unit $End \ No newline at end of file diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPSizeofExpressionParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPSizeofExpressionParser.g index 124f023bb3f..44f875fcea3 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPSizeofExpressionParser.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPSizeofExpressionParser.g @@ -11,7 +11,7 @@ %options la=2 %options package=org.eclipse.cdt.internal.core.dom.lrparser.cpp -%options template=FixedBtParserTemplateD.g +%options template=LRSecondaryParserTemplate.g $Import diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPTemplateTypeParameterParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPTemplateTypeParameterParser.g index dfacf88d8eb..86f452af64b 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPTemplateTypeParameterParser.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPTemplateTypeParameterParser.g @@ -11,7 +11,7 @@ %options la=2 %options package=org.eclipse.cdt.internal.core.dom.lrparser.cpp -%options template=FixedBtParserTemplateD.g +%options template=LRSecondaryParserTemplate.g -- This parser is a bit of a hack. diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCParser.g index 1ae760dd6dd..ac9b15cff22 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCParser.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCParser.g @@ -11,7 +11,7 @@ %options la=2 %options package=org.eclipse.cdt.internal.core.dom.lrparser.gcc -%options template=FixedBtParserTemplateD.g +%options template=LRParserTemplate.g -- This file is needed because LPG won't allow redefinition of the @@ -21,10 +21,6 @@ $Import GCCGrammar.g $End -$Define - $ast_class /. IASTTranslationUnit ./ -$End - $Start translation_unit $End \ No newline at end of file diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCSizeofExpressionParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCSizeofExpressionParser.g index a3c6000fed2..389a215e6cd 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCSizeofExpressionParser.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCSizeofExpressionParser.g @@ -11,7 +11,7 @@ %options la=2 %options package=org.eclipse.cdt.internal.core.dom.lrparser.gcc -%options template=FixedBtParserTemplateD.g +%options template=LRSecondaryParserTemplate.g $Import diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPParser.g index f2dd3ebf20b..4ee7b043a00 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPParser.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPParser.g @@ -11,7 +11,7 @@ %options la=2 %options package=org.eclipse.cdt.internal.core.dom.lrparser.gpp -%options template=FixedBtParserTemplateD.g +%options template=LRParserTemplate.g -- This file is needed because LPG won't allow redefinition of the @@ -21,10 +21,6 @@ $Import GPPGrammar.g $End -$Define - $ast_class /. IASTTranslationUnit ./ -$End - $Start translation_unit $End \ No newline at end of file diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPSizeofExpressionParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPSizeofExpressionParser.g index 68bb20848a8..e8a8833d667 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPSizeofExpressionParser.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPSizeofExpressionParser.g @@ -11,7 +11,7 @@ %options la=2 %options package=org.eclipse.cdt.internal.core.dom.lrparser.gpp -%options template=FixedBtParserTemplateD.g +%options template=LRSecondaryParserTemplate.g $Import diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/template/FixedBtParserTemplateD.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/template/LRParserTemplate.g similarity index 91% rename from lrparser/org.eclipse.cdt.core.lrparser/grammar/template/FixedBtParserTemplateD.g rename to lrparser/org.eclipse.cdt.core.lrparser/grammar/template/LRParserTemplate.g index ea7a5bf27e5..f5be287b827 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/template/FixedBtParserTemplateD.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/template/LRParserTemplate.g @@ -10,7 +10,7 @@ ---------------------------------------------------------------------------------- --- This template is a modified version of BtParserTemplateD.g. +-- This template is a modified version of BtParserTemplateD.g. for use with the LR parsers. -- This template contains a fix for an LPG bug: -- http://sourceforge.net/tracker/index.php?func=detail&aid=1732851&group_id=155963&atid=797879 @@ -141,7 +141,9 @@ $End $Headers /. - public class $action_type extends PrsStream implements RuleAction$additional_interfaces + public class $action_type extends PrsStream implements RuleAction, ITokenStream, + ITokenCollector, IParser<$ast_class> + $additional_interfaces { private static ParseTable prs = new $prs_type(); private FixedBacktrackingParser btParser; @@ -312,10 +314,10 @@ $End $Define -- These macros allow the template and header code to be customized by an extending parser. - $ast_class /. IASTNode ./ -- override with more specific node type + $ast_class /. IASTTranslationUnit ./ -- override in secondary parsers $extra_interfaces /. ./ -- can override this macro to provide additional interfaces - $additional_interfaces /. , IParserActionTokenProvider, IParser<$ast_class> $extra_interfaces ./ + $additional_interfaces /. $extra_interfaces ./ $build_action_class /. ./ -- name of the class that has the AST building callbacks $node_factory_create_expression /. ./ -- expression that will create the INodeFactory @@ -332,10 +334,16 @@ $Globals /. import java.util.*; import org.eclipse.cdt.core.dom.ast.*; + import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap; import org.eclipse.cdt.core.dom.lrparser.IParser; - import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; + import org.eclipse.cdt.core.dom.lrparser.ITokenCollector; + import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter; + import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack; + import org.eclipse.cdt.core.parser.IScanner; + import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider; + import org.eclipse.cdt.core.index.IIndex; ./ $End @@ -344,7 +352,11 @@ $Headers private $build_action_class action; private IASTCompletionNode compNode; - public $action_type() { // constructor + + public $action_type(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Set options) { + initActions(options); + action.initializeTranslationUnit(scanner, builtinBindingsProvider, index); + CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap); } private void initActions(Set options) { @@ -363,10 +375,9 @@ $Headers } - public $ast_class parse(Set options) { + public $ast_class parse() { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(options); final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse @@ -398,37 +409,4 @@ $Headers ./ $End -$Globals -/. - import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; - import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; -./ -$End -$Headers -/. - - private ITokenMap tokenMap = null; - - public void setTokens(List tokens) { - resetTokenStream(); - addToken(new Token(null, 0, 0, 0)); // dummy token - for(IToken token : tokens) { - token.setKind(tokenMap.mapKind(token.getKind())); - addToken(token); - } - addToken(new Token(null, 0, 0, $sym_type.TK_EOF_TOKEN)); - } - - public $action_type(IParserActionTokenProvider parser) { // constructor - tokenMap = new TokenMap($sym_type.orderedTerminalSymbols, parser.getOrderedTerminalSymbols()); - } - - -./ -$End - - --- --- E N D O F T E M P L A T E --- diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/template/LRSecondaryParserTemplate.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/template/LRSecondaryParserTemplate.g new file mode 100644 index 00000000000..b449829d1f6 --- /dev/null +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/template/LRSecondaryParserTemplate.g @@ -0,0 +1,66 @@ +---------------------------------------------------------------------------------- +-- Copyright (c) 2006, 2009 IBM Corporation and others. +-- All rights reserved. This program and the accompanying materials +-- are made available under the terms of the Eclipse Public License v1.0 +-- which accompanies this distribution, and is available at +-- http://www.eclipse.org/legal/epl_v10.html +-- +-- Contributors: +-- IBM Corporation - initial API and implementation +---------------------------------------------------------------------------------- + + +%Options programming_language=java,margin=4,backtrack +%Options table,error_maps,scopes +%options prefix=TK_, +%options action=("*.java", "/.", "./") +%options ParseTable=lpg.lpgjavaruntime.ParseTable + + +-- additional code needed by secondary parsers + +-- path is relative to the grammar file that uses the template +$Include +../template/LRParserTemplate.g +$End + + + + +$Define + + $additional_interfaces /. , ISecondaryParser<$ast_class> $extra_interfaces ./ + +$End + +$Globals +/. + import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; + import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; + import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser; +./ +$End + +$Headers +/. + + private ITokenMap tokenMap = null; + + public void setTokens(List tokens) { + resetTokenStream(); + addToken(new Token(null, 0, 0, 0)); // dummy token + for(IToken token : tokens) { + token.setKind(tokenMap.mapKind(token.getKind())); + addToken(token); + } + addToken(new Token(null, 0, 0, $sym_type.TK_EOF_TOKEN)); + } + + public $action_type(ITokenStream stream, Set options) { // constructor for creating secondary parser + initActions(options); + tokenMap = new TokenMap($sym_type.orderedTerminalSymbols, stream.getOrderedTerminalSymbols()); + } + +./ +$End + diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/action/deprecated/C99ResolveParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/action/deprecated/C99ResolveParserAction.java index d893671abe3..8076a5afaeb 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/action/deprecated/C99ResolveParserAction.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/action/deprecated/C99ResolveParserAction.java @@ -35,7 +35,7 @@ import org.eclipse.cdt.core.dom.ast.IParameter; import org.eclipse.cdt.core.dom.ast.IPointerType; import org.eclipse.cdt.core.dom.ast.IType; import org.eclipse.cdt.core.dom.ast.ITypedef; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack; import org.eclipse.cdt.core.parser.util.DebugUtil; import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym; @@ -87,7 +87,7 @@ import org.eclipse.cdt.internal.core.dom.parser.ITypeContainer; // provides limited access to the token stream - private final IParserActionTokenProvider parser; + private final ITokenStream parser; // The symbolTable currently in use private C99SymbolTable symbolTable = C99SymbolTable.EMPTY_TABLE; @@ -138,7 +138,7 @@ import org.eclipse.cdt.internal.core.dom.parser.ITypeContainer; } - public C99ResolveParserAction(IParserActionTokenProvider parser) { + public C99ResolveParserAction(ITokenStream parser) { this.parser = parser; bindingScopeStack.add(new C99Scope(EScopeKind.eGlobal)); // the global scope System.out.println(); diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/action/deprecated/C99TypedefTrackerParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/action/deprecated/C99TypedefTrackerParserAction.java index 7667e1d80df..9930e3b0383 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/action/deprecated/C99TypedefTrackerParserAction.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/action/deprecated/C99TypedefTrackerParserAction.java @@ -14,7 +14,7 @@ import java.util.LinkedList; import lpg.lpgjavaruntime.IToken; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.core.parser.util.DebugUtil; import org.eclipse.cdt.internal.core.dom.lrparser.symboltable.TypedefSymbolTable; /** @@ -32,7 +32,7 @@ public class C99TypedefTrackerParserAction { // provides limited access to the token stream - private final IParserActionTokenProvider parser; + private final ITokenStream parser; // The symbolTable currently in use private TypedefSymbolTable symbolTable = TypedefSymbolTable.EMPTY_TABLE; @@ -64,7 +64,7 @@ public class C99TypedefTrackerParserAction { } - public C99TypedefTrackerParserAction(IParserActionTokenProvider parser) { + public C99TypedefTrackerParserAction(ITokenStream parser) { this.parser = parser; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java index 5efe8d44d1d..68c1b533383 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java @@ -15,22 +15,19 @@ import java.util.HashSet; import java.util.Set; import org.eclipse.cdt.core.dom.ICodeReaderFactory; -import org.eclipse.cdt.core.dom.ast.DOMException; import org.eclipse.cdt.core.dom.ast.IASTCompletionNode; import org.eclipse.cdt.core.dom.ast.IASTName; -import org.eclipse.cdt.core.dom.ast.IASTNode; import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; -import org.eclipse.cdt.core.dom.ast.IBinding; -import org.eclipse.cdt.core.dom.ast.IScope; import org.eclipse.cdt.core.dom.ast.gnu.c.GCCLanguage; import org.eclipse.cdt.core.dom.ast.gnu.cpp.GPPLanguage; import org.eclipse.cdt.core.dom.parser.CLanguageKeywords; -import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider; import org.eclipse.cdt.core.dom.parser.IScannerExtensionConfiguration; import org.eclipse.cdt.core.index.IIndex; import org.eclipse.cdt.core.model.AbstractLanguage; import org.eclipse.cdt.core.model.ICLanguageKeywords; +import org.eclipse.cdt.core.model.IContributedModelBuilder; import org.eclipse.cdt.core.model.ILanguage; +import org.eclipse.cdt.core.model.ITranslationUnit; import org.eclipse.cdt.core.parser.CodeReader; import org.eclipse.cdt.core.parser.IParserLogService; import org.eclipse.cdt.core.parser.IScanner; @@ -38,9 +35,7 @@ import org.eclipse.cdt.core.parser.IScannerInfo; import org.eclipse.cdt.core.parser.ParserLanguage; import org.eclipse.cdt.core.parser.util.ASTPrinter; import org.eclipse.cdt.core.parser.util.DebugUtil; -import org.eclipse.cdt.internal.core.dom.parser.ASTInternal; import org.eclipse.cdt.internal.core.dom.parser.ASTNode; -import org.eclipse.cdt.internal.core.dom.parser.ASTTranslationUnit; import org.eclipse.cdt.internal.core.parser.scanner.CPreprocessor; import org.eclipse.cdt.internal.core.pdom.dom.IPDOMLinkageFactory; import org.eclipse.cdt.internal.core.pdom.dom.c.PDOMCLinkageFactory; @@ -68,15 +63,7 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage { * Can be overridden in subclasses to provide a different parser * for a language extension. */ - protected abstract IParser getParser(); - - - /** - * A token map is used to map tokens from the DOM preprocessor - * to the tokens defined by an LPG parser. - */ - protected abstract IDOMTokenMap getTokenMap(); - + protected abstract IParser getParser(IScanner scanner, IIndex index, Set options); /** * Returns the ParserLanguage value that is to be used when creating @@ -92,11 +79,6 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage { protected abstract IScannerExtensionConfiguration getScannerExtensionConfiguration(); - /** - * Returns a bindings provider that will provide additional bindings based on the language extension. - */ - protected abstract IBuiltinBindingsProvider getBuiltinBindingsProvider(); - @SuppressWarnings("nls") @Override @@ -124,24 +106,21 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage { IScanner preprocessor = new CPreprocessor(reader, scanInfo, pl, log, config, fileCreator); preprocessor.setComputeImageLocations((options & ILanguage.OPTION_NO_IMAGE_LOCATIONS) == 0); - // The translation unit has to be created here so that the preprocessor - // can fill in the preprocessor AST nodes. - //IASTTranslationUnit tu = getASTTranslationUnit(index, preprocessor); - IParser parser = getParser(); - CPreprocessorAdapter.runCPreprocessor(preprocessor, parser, getTokenMap()); + + //parser.setScanner(preprocessor, getTokenMap()); + //CPreprocessorAdapter.runCPreprocessor(preprocessor, parser, getTokenMap()); Set parserOptions = new HashSet(); //if((options & OPTION_SKIP_FUNCTION_BODIES) != 0) // parserOptions.add(IParser.Options.OPTION_SKIP_FUNCTION_BODIES); if((options & OPTION_SKIP_TRIVIAL_EXPRESSIONS_IN_AGGREGATE_INITIALIZERS) != 0) parserOptions.add(IParser.Options.OPTION_SKIP_TRIVIAL_EXPRESSIONS_IN_AGGREGATE_INITIALIZERS); - if(!parserOptions.isEmpty()) parserOptions = EnumSet.copyOf(parserOptions); - IASTTranslationUnit tu = parser.parse(parserOptions); + IParser parser = getParser(preprocessor, index, parserOptions); + IASTTranslationUnit tu = parser.parse(); tu.setIsHeaderUnit((options & OPTION_IS_SOURCE_UNIT) == 0); // the TU is marked as either a source file or a header file - setUpTranslationUnit(tu, preprocessor, index); if(DEBUG_PRINT_AST) { System.out.println("Base Extensible Language AST:"); @@ -152,43 +131,6 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage { } - - private void setUpTranslationUnit(IASTTranslationUnit tu, IScanner preprocessor, IIndex index) throws CoreException { - tu.setIndex(index); - - // add built-in names to the scope - IBuiltinBindingsProvider builtinBindingsProvider = getBuiltinBindingsProvider(); - if (builtinBindingsProvider != null) { - IScope tuScope = tu.getScope(); - IBinding[] bindings = builtinBindingsProvider.getBuiltinBindings(tuScope); - try { - for (IBinding binding : bindings) { - ASTInternal.addBinding(tuScope, binding); - } - } catch (DOMException e) { - throw new CoreException(LRParserPlugin.createStatus(e)); - } - } - - if(tu instanceof ASTTranslationUnit) { - ((ASTTranslationUnit)tu).setLocationResolver(preprocessor.getLocationResolver()); - } - for(IASTNode node : tu.getAllPreprocessorStatements()) { - node.setParent(tu); - } - for(IASTNode node : tu.getComments()) { - node.setParent(tu); - } - for(IASTNode node : tu.getMacroDefinitions()) { - node.setParent(tu); - } - for(IASTNode node : tu.getMacroExpansions()) { - node.setParent(tu); - } - } - - - public IASTTranslationUnit getASTTranslationUnit(CodeReader reader, IScannerInfo scanInfo, ICodeReaderFactory fileCreator, IIndex index, IParserLogService log) throws CoreException { @@ -220,14 +162,9 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage { IScanner preprocessor = new CPreprocessor(reader, scanInfo, pl, log, config, fileCreator); preprocessor.setContentAssistMode(offset); - IParser parser = getParser(); - CPreprocessorAdapter.runCPreprocessor(preprocessor, parser, getTokenMap()); - - // the parser will fill in the rest of the AST Set parserOptions = EnumSet.of(IParser.Options.OPTION_SKIP_TRIVIAL_EXPRESSIONS_IN_AGGREGATE_INITIALIZERS); - IASTTranslationUnit tu = parser.parse(parserOptions); - setUpTranslationUnit(tu, preprocessor, index); - + IParser parser = getParser(preprocessor, index, parserOptions); + parser.parse(); IASTCompletionNode completionNode = parser.getCompletionNode(); if(DEBUG_PRINT_AST) { @@ -283,4 +220,8 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage { return super.getAdapter(adapter); } + public IContributedModelBuilder createModelBuilder(@SuppressWarnings("unused") ITranslationUnit tu) { + return null; + } + } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/CPreprocessorAdapter.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/CPreprocessorAdapter.java index a9d3d5b15e7..ea4011dfabe 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/CPreprocessorAdapter.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/CPreprocessorAdapter.java @@ -21,8 +21,10 @@ import org.eclipse.cdt.core.parser.OffsetLimitReachedException; * Adapts the CPreprocessor from the CDT core for use with LPG based parsers. * * @author Mike Kucera + * @noreference + * TODO move into an internal package */ -class CPreprocessorAdapter { +public class CPreprocessorAdapter { /** * During content assist the preprocessor may return a completion token diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/IParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/IParser.java index 3b54e34e4f0..7e3bf0ed6ad 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/IParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/IParser.java @@ -11,7 +11,6 @@ package org.eclipse.cdt.core.dom.lrparser; import java.util.EnumSet; -import java.util.Set; import org.eclipse.cdt.core.dom.ast.IASTCompletionNode; import org.eclipse.cdt.core.dom.ast.IASTNode; @@ -23,7 +22,7 @@ import org.eclipse.cdt.core.model.ILanguage; * * @author Mike Kucera */ -public interface IParser extends ITokenCollector { +public interface IParser { /** * Options used by implementations of IParser. Some of the options @@ -69,7 +68,7 @@ public interface IParser extends ITokenCollector { * @throws NullPointerException if either parameter is null * @see EnumSet */ - public N parse(Set options); + public N parse(); /** diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/ISecondaryParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/ISecondaryParser.java new file mode 100644 index 00000000000..866154c746b --- /dev/null +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/ISecondaryParser.java @@ -0,0 +1,37 @@ +/******************************************************************************* + * Copyright (c) 2009 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.cdt.core.dom.lrparser; + +import java.util.List; + +import lpg.lpgjavaruntime.IToken; + +import org.eclipse.cdt.core.dom.ast.IASTNode; + +public interface ISecondaryParser extends IParser { + + + /** + * Set the list of tokens that will be parsed. + * + * The given list does not need to contain dummy and EOF tokens, + * these will be added automatically. + * + * This method causes any tokens already contained in the parser + * to be removed. + * + * This method is mainly used by secondary parsers that are called + * from a main parser. + * + * @throws NullPointerException if tokens is null + */ + public void setTokens(List tokens); +} diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/ITokenCollector.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/ITokenCollector.java index d8286687da1..6783a61b57a 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/ITokenCollector.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/ITokenCollector.java @@ -10,8 +10,6 @@ *******************************************************************************/ package org.eclipse.cdt.core.dom.lrparser; -import java.util.List; - import lpg.lpgjavaruntime.IToken; /** @@ -33,20 +31,5 @@ public interface ITokenCollector { * @throws NullPointerException if token is null */ public void addToken(IToken token); - - /** - * Set the list of tokens that will be parsed. - * - * The given list does not need to contain dummy and EOF tokens, - * these will be added automatically. - * - * This method causes any tokens already contained in the parser - * to be removed. - * - * This method is mainly used by secondary parsers that are called - * from a main parser. - * - * @throws NullPointerException if tokens is null - */ - public void setTokens(List tokens); + } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/LRParserPlugin.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/LRParserPlugin.java index 69b6036ca61..3a582505757 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/LRParserPlugin.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/LRParserPlugin.java @@ -21,7 +21,6 @@ public class LRParserPlugin extends Plugin { public static final String PLUGIN_ID = "org.eclipse.cdt.core.lrparser"; //$NON-NLS-1$ - @SuppressWarnings("unused") private static LRParserPlugin plugin; @@ -43,17 +42,52 @@ public class LRParserPlugin extends Plugin { } /** - * @noreference This method is not intended to be referenced by clients. + * @noreference */ public static IStatus createStatus(String msg, Throwable e) { return new Status(IStatus.ERROR, PLUGIN_ID, IStatus.ERROR, msg, e); } /** - * @noreference This method is not intended to be referenced by clients. + * @noreference */ public static IStatus createStatus(Throwable e) { return createStatus(e.getMessage(), e); } + /** + * @noreference + */ + public static void log(IStatus status) { + plugin.getLog().log(status); + } + + /** + * @noreference + */ + public static void logError(Throwable exception, String message) { + log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, message, exception)); + } + + /** + * @noreference + */ + public static void logError(Throwable exception) { + logError(exception, exception.getMessage()); + } + + /** + * @noreference + */ + public static void logError(String message) { + log(new Status(IStatus.ERROR, PLUGIN_ID, message)); + } + + /** + * @noreference + */ + public static void logInfo(String message) { + log(new Status(IStatus.INFO, PLUGIN_ID, message)); + } + } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/AbstractParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/AbstractParserAction.java index 973e5de5cd1..6e53c83a405 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/AbstractParserAction.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/AbstractParserAction.java @@ -20,7 +20,7 @@ import org.eclipse.cdt.core.dom.ast.IASTCompletionNode; import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.dom.ast.IASTNode; import org.eclipse.cdt.core.dom.lrparser.IParser; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser; import org.eclipse.cdt.internal.core.dom.parser.ASTNode; @SuppressWarnings("restriction") @@ -41,7 +41,7 @@ public abstract class AbstractParserAction { /** Provides an interface to the token stream */ - protected final IParserActionTokenProvider parser; + protected final ITokenStream stream; /** Stack that holds the intermediate nodes as the AST is being built */ protected final ScopedStack astStack; @@ -70,21 +70,21 @@ public abstract class AbstractParserAction { * @param tu Root node of the AST, its list of declarations should be empty. * @throws NullPointerException if any of the parameters are null */ - public AbstractParserAction(IParserActionTokenProvider parser, ScopedStack astStack) { + public AbstractParserAction(ITokenStream parser, ScopedStack astStack) { if(parser == null) throw new NullPointerException("parser is null"); //$NON-NLS-1$ if(astStack == null) throw new NullPointerException("astStack is null"); //$NON-NLS-1$ - this.parser = parser; + this.stream = parser; this.astStack = astStack; } protected void setOffsetAndLength(IASTNode node) { - int ruleOffset = parser.getLeftIToken().getStartOffset(); - int ruleLength = parser.getRightIToken().getEndOffset() - ruleOffset; + int ruleOffset = stream.getLeftIToken().getStartOffset(); + int ruleLength = stream.getRightIToken().getEndOffset() - ruleOffset; ((ASTNode)node).setOffsetAndLength(ruleOffset, ruleLength < 0 ? 0 : ruleLength); } @@ -143,15 +143,15 @@ public abstract class AbstractParserAction { * Runs the given parser on the given token list. * */ - protected N runSecondaryParser(IParser secondaryParser) { - return runSecondaryParser(secondaryParser, parser.getRuleTokens()); + protected N runSecondaryParser(ISecondaryParser secondaryParser) { + return runSecondaryParser(secondaryParser, stream.getRuleTokens()); } /** * Runs the given parser on the tokens that make up the current rule. */ - protected N runSecondaryParser(IParser secondaryParser, List tokens) { + protected N runSecondaryParser(ISecondaryParser secondaryParser, List tokens) { // the secondary parser will alter the token kinds, which will need to be undone int[] savedKinds = new int[tokens.size()]; @@ -160,7 +160,7 @@ public abstract class AbstractParserAction { savedKinds[i++] = token.getKind(); secondaryParser.setTokens(tokens); - N result = secondaryParser.parse(options); + N result = secondaryParser.parse(); IASTCompletionNode compNode = secondaryParser.getCompletionNode(); if(compNode != null) { @@ -227,6 +227,6 @@ public abstract class AbstractParserAction { * Gets the current token and places it on the stack for later consumption. */ public void consumeToken() { - astStack.push(parser.getRightIToken()); + astStack.push(stream.getRightIToken()); } } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/BuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/BuildASTParserAction.java index 6e660ed07a9..f9fc228a454 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 @@ -16,6 +16,7 @@ import java.util.List; import lpg.lpgjavaruntime.IToken; +import org.eclipse.cdt.core.dom.ast.DOMException; import org.eclipse.cdt.core.dom.ast.IASTASMDeclaration; import org.eclipse.cdt.core.dom.ast.IASTArrayDeclarator; import org.eclipse.cdt.core.dom.ast.IASTArrayModifier; @@ -62,13 +63,20 @@ import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; import org.eclipse.cdt.core.dom.ast.IASTTypeId; import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression; import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression; +import org.eclipse.cdt.core.dom.ast.IBinding; import org.eclipse.cdt.core.dom.ast.INodeFactory; +import org.eclipse.cdt.core.dom.ast.IScope; import org.eclipse.cdt.core.dom.ast.IASTEnumerationSpecifier.IASTEnumerator; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCastExpression; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTLiteralExpression; import org.eclipse.cdt.core.dom.lrparser.IParser; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser; +import org.eclipse.cdt.core.dom.lrparser.LRParserPlugin; +import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider; +import org.eclipse.cdt.core.index.IIndex; import org.eclipse.cdt.core.parser.IProblem; +import org.eclipse.cdt.core.parser.IScanner; +import org.eclipse.cdt.internal.core.dom.parser.ASTInternal; import org.eclipse.cdt.internal.core.dom.parser.ASTNode; import org.eclipse.cdt.internal.core.dom.parser.ASTQueries; import org.eclipse.cdt.internal.core.dom.parser.ASTTranslationUnit; @@ -98,6 +106,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction { protected abstract boolean isIdentifierToken(IToken token); + protected IASTTranslationUnit tu = null; /** @@ -105,7 +114,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction { * @param tu Root node of the AST, its list of declarations should be empty. * @throws NullPointerException if any of the parameters are null */ - public BuildASTParserAction(IParserActionTokenProvider parser, ScopedStack astStack, INodeFactory nodeFactory, ISecondaryParserFactory parserFactory) { + public BuildASTParserAction(ITokenStream parser, ScopedStack astStack, INodeFactory nodeFactory, ISecondaryParserFactory parserFactory) { super(parser, astStack); if(nodeFactory == null) @@ -116,20 +125,46 @@ public abstract class BuildASTParserAction extends AbstractParserAction { this.nodeFactory = nodeFactory; this.parserFactory = parserFactory; } + + + public void initializeTranslationUnit(IScanner scanner, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index) { + tu = nodeFactory.newTranslationUnit(); + tu.setIndex(index); + + // add built-in names to the scope + if (builtinBindingsProvider != null) { + IScope tuScope = tu.getScope(); + IBinding[] bindings = builtinBindingsProvider.getBuiltinBindings(tuScope); + try { + for (IBinding binding : bindings) { + ASTInternal.addBinding(tuScope, binding); + } + } catch (DOMException e) { + LRParserPlugin.logError(e); + } + } + + if(tu instanceof ASTTranslationUnit) { + ((ASTTranslationUnit)tu).setLocationResolver(scanner.getLocationResolver()); + } + } public void consumeTranslationUnit() { - // can't close the outermost scope - // the outermost scope may be empty if there are no tokens in the file - IASTTranslationUnit tu = nodeFactory.newTranslationUnit(); + if(tu == null) + tu = nodeFactory.newTranslationUnit(); + // can't close the outermost scope for(Object o : astStack.topScope()) { tu.addDeclaration((IASTDeclaration)o); } + while(!astStack.isEmpty()) { + astStack.pop(); + } // this is the same way that the DOM parser computes the length IASTDeclaration[] declarations = tu.getDeclarations(); - if (declarations.length != 0) { + if(declarations.length != 0) { IASTNode d = declarations[declarations.length-1]; ParserUtil.setOffsetAndLength(tu, 0, offset(d) + length(d)); } @@ -146,7 +181,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction { * * @see AbstractGNUSourceCodeParser#resolveAmbiguities() */ - private void resolveAmbiguityNodes(IASTTranslationUnit tu) { + private static void resolveAmbiguityNodes(IASTTranslationUnit tu) { if (tu instanceof ASTTranslationUnit) { ((ASTTranslationUnit)tu).resolveAmbiguities(); } @@ -156,7 +191,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction { * Consumes a single identifier token. */ public void consumeIdentifierName() { - astStack.push(createName(parser.getRightIToken())); + astStack.push(createName(stream.getRightIToken())); } @@ -173,10 +208,10 @@ public abstract class BuildASTParserAction extends AbstractParserAction { // attempt to also parse the tokens as an expression IASTExpressionStatement expressionStatement = null; if(decl instanceof IASTSimpleDeclaration) { - List expressionTokens = parser.getRuleTokens(); + List expressionTokens = stream.getRuleTokens(); expressionTokens = expressionTokens.subList(0, expressionTokens.size()-1); // remove the semicolon at the end - IParser expressionParser = parserFactory.getExpressionParser(parser); + ISecondaryParser expressionParser = parserFactory.getExpressionParser(stream, options); IASTExpression expr = runSecondaryParser(expressionParser, expressionTokens); if(expr != null) { // the parse may fail @@ -186,7 +221,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction { } - List tokens = parser.getRuleTokens(); + List tokens = stream.getRuleTokens(); IASTNode result; if(expressionStatement == null) @@ -253,7 +288,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction { * @see ICPPASTLiteralExpression */ public void consumeExpressionLiteral(int kind) { - IToken token = parser.getRightIToken(); + IToken token = stream.getRightIToken(); String rep = token.toString(); // Strip the quotes from string literals, this is just to be consistent @@ -280,7 +315,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction { public void consumeExpressionID() { - IASTName name = createName(parser.getLeftIToken()); + IASTName name = createName(stream.getLeftIToken()); IASTIdExpression expr = nodeFactory.newIdExpression(name); setOffsetAndLength(expr); astStack.push(expr); @@ -353,7 +388,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction { IASTExpression alternateExpr = null; if(operator == IASTCastExpression.op_cast) { // don't reparse for dynamic_cast etc as those are not ambiguous // try parsing as non-cast to resolve ambiguities - IParser secondaryParser = parserFactory.getNoCastExpressionParser(parser); + ISecondaryParser secondaryParser = parserFactory.getNoCastExpressionParser(stream, options); alternateExpr = runSecondaryParser(secondaryParser); } @@ -393,7 +428,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction { setOffsetAndLength(expr); // try parsing as an expression to resolve ambiguities - IParser secondaryParser = parserFactory.getSizeofExpressionParser(parser); + ISecondaryParser secondaryParser = parserFactory.getSizeofExpressionParser(stream, options); IASTExpression alternateExpr = runSecondaryParser(secondaryParser); if(alternateExpr == null) @@ -439,7 +474,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction { */ public void consumeStatementLabeled() { IASTStatement body = (IASTStatement) astStack.pop(); - IASTName label = createName(parser.getLeftIToken()); + IASTName label = createName(stream.getLeftIToken()); IASTLabelStatement stat = nodeFactory.newLabelStatement(label, body); setOffsetAndLength(stat); @@ -474,7 +509,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction { IASTStatement body = (IASTStatement) astStack.pop(); IASTDefaultStatement stat = nodeFactory.newDefaultStatement(); - List tokens = parser.getRuleTokens(); + List tokens = stream.getRuleTokens(); IToken defaultToken = tokens.get(0); IToken colonToken = tokens.get(1); ParserUtil.setOffsetAndLength(stat, offset(defaultToken), offset(colonToken) - offset(defaultToken) + 1); @@ -548,7 +583,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction { * jump_statement ::= goto goto_identifier ';' */ public void consumeStatementGoto() { - IASTName name = createName(parser.getRuleTokens().get(1)); + IASTName name = createName(stream.getRuleTokens().get(1)); IASTGotoStatement gotoStat = nodeFactory.newGotoStatement(name); setOffsetAndLength(gotoStat); astStack.push(gotoStat); @@ -599,7 +634,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction { declarator = (IASTDeclarator) astStack.pop(); else { declarator = nodeFactory.newDeclarator(nodeFactory.newName()); - ParserUtil.setOffsetAndLength(declarator, parser.getRightIToken().getEndOffset(), 0); + ParserUtil.setOffsetAndLength(declarator, stream.getRightIToken().getEndOffset(), 0); } IASTDeclSpecifier declSpecifier = (IASTDeclSpecifier) astStack.pop(); @@ -664,7 +699,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction { * ::= 'asm' '(' 'stringlit' ')' ';' */ public void consumeDeclarationASM() { - String s = parser.getRuleTokens().get(2).toString(); + String s = stream.getRuleTokens().get(2).toString(); IASTASMDeclaration asm = nodeFactory.newASMDeclaration(s); setOffsetAndLength(asm); @@ -691,7 +726,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction { */ public void consumeParameterDeclarationWithoutDeclarator() { // offsets need to be calculated differently in this case - final int endOffset = parser.getRightIToken().getEndOffset(); + final int endOffset = stream.getRightIToken().getEndOffset(); IASTName name = nodeFactory.newName(); ParserUtil.setOffsetAndLength(name, endOffset, 0); @@ -911,7 +946,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction { * | 'enum' enum_identifier '{' enumerator_list_opt '}' */ public void consumeTypeSpecifierEnumeration(boolean hasIdent) { - IASTName name = (hasIdent) ? createName(parser.getRuleTokens().get(1)) : nodeFactory.newName(); + IASTName name = (hasIdent) ? createName(stream.getRuleTokens().get(1)) : nodeFactory.newName(); IASTEnumerationSpecifier enumSpec = nodeFactory.newEnumerationSpecifier(name); @@ -928,7 +963,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction { * | enum_identifier '=' constant_expression */ public void consumeEnumerator(boolean hasInitializer) { - IASTName name = createName(parser.getLeftIToken()); + IASTName name = createName(stream.getLeftIToken()); IASTExpression value = null; if(hasInitializer) diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ISecondaryParserFactory.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ISecondaryParserFactory.java index b0ed1bc9478..066ff1f90cb 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ISecondaryParserFactory.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ISecondaryParserFactory.java @@ -10,9 +10,11 @@ *******************************************************************************/ package org.eclipse.cdt.core.dom.lrparser.action; +import java.util.Set; + import org.eclipse.cdt.core.dom.ast.IASTExpression; import org.eclipse.cdt.core.dom.lrparser.IParser; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser; /** @@ -28,20 +30,20 @@ public interface ISecondaryParserFactory { /** * Get the parser that will recognize expressions. */ - IParser getExpressionParser(IParserActionTokenProvider parser); + ISecondaryParser getExpressionParser(ITokenStream stream, Set options); /** * Expression parser that does not recognize cast expressions, * used to disambiguate casts. */ - IParser getNoCastExpressionParser(IParserActionTokenProvider parser); + ISecondaryParser getNoCastExpressionParser(ITokenStream stream, Set options); /** * Expression parser that treats all sizeof and typeid expressions * as unary expressions. */ - IParser getSizeofExpressionParser(IParserActionTokenProvider parser); + ISecondaryParser getSizeofExpressionParser(ITokenStream stream, Set options); } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/IParserActionTokenProvider.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ITokenStream.java similarity index 93% rename from lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/IParserActionTokenProvider.java rename to lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ITokenStream.java index 5ef0f12631d..9012e63c9ad 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/IParserActionTokenProvider.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ITokenStream.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006, 2008 IBM Corporation and others. + * Copyright (c) 2006, 2009 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -8,7 +8,7 @@ * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ -package org.eclipse.cdt.core.dom.lrparser; +package org.eclipse.cdt.core.dom.lrparser.action; import java.util.List; @@ -28,7 +28,7 @@ import lpg.lpgjavaruntime.IToken; * * @author Mike Kucera */ -public interface IParserActionTokenProvider { +public interface ITokenStream { /** * Returns the tokens that were parsed to recognized 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 45457c831ca..c85bb2e3577 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 @@ -61,8 +61,8 @@ import org.eclipse.cdt.core.dom.ast.c.ICASTTypeIdInitializerExpression; import org.eclipse.cdt.core.dom.ast.c.ICASTTypedefNameSpecifier; import org.eclipse.cdt.core.dom.ast.c.ICNodeFactory; import org.eclipse.cdt.core.dom.ast.gnu.c.ICASTKnRFunctionDeclarator; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; import org.eclipse.cdt.core.dom.lrparser.action.BuildASTParserAction; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.core.dom.lrparser.action.ISecondaryParserFactory; import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; import org.eclipse.cdt.core.dom.lrparser.action.ParserUtil; @@ -94,7 +94,7 @@ public class C99BuildASTParserAction extends BuildASTParserAction { * @param orderedTerminalSymbols When an instance of this class is created for a parser * that parsers token kinds will be mapped back to the base C99 parser's token kinds. */ - public C99BuildASTParserAction(IParserActionTokenProvider parser, ScopedStack astStack, ICNodeFactory nodeFactory, ISecondaryParserFactory parserFactory) { + public C99BuildASTParserAction(ITokenStream parser, ScopedStack astStack, ICNodeFactory nodeFactory, ISecondaryParserFactory parserFactory) { super(parser, astStack, nodeFactory, parserFactory); this.nodeFactory = nodeFactory; @@ -135,7 +135,7 @@ public class C99BuildASTParserAction extends BuildASTParserAction { * postfix_expression ::= postfix_expression '->' ident */ public void consumeExpressionFieldReference(boolean isPointerDereference) { - IASTName name = createName(parser.getRightIToken()); + IASTName name = createName(stream.getRightIToken()); IASTExpression owner = (IASTExpression) astStack.pop(); IASTFieldReference expr = nodeFactory.newFieldReference(name, owner); expr.setIsPointerDereference(isPointerDereference); @@ -289,7 +289,7 @@ public class C99BuildASTParserAction extends BuildASTParserAction { IASTName[] names = astStack.topScope().toArray(new IASTName[0]); declarator.setParameterNames(names); astStack.closeScope(); - int endOffset = endOffset(parser.getRightIToken()); + int endOffset = endOffset(stream.getRightIToken()); addFunctionModifier(declarator, endOffset); } @@ -300,7 +300,7 @@ public class C99BuildASTParserAction extends BuildASTParserAction { * | identifier_list ',' 'identifier' */ public void consumeIdentifierKnR() { - IASTName name = createName(parser.getRightIToken()); + IASTName name = createName(stream.getRightIToken()); astStack.push(name); } @@ -313,7 +313,7 @@ public class C99BuildASTParserAction extends BuildASTParserAction { */ public void consumePointer() { IASTPointer pointer = nodeFactory.newPointer(); - IToken star = parser.getRightIToken(); + IToken star = stream.getRightIToken(); ParserUtil.setOffsetAndLength(pointer, star); astStack.push(pointer); } @@ -362,7 +362,7 @@ public class C99BuildASTParserAction extends BuildASTParserAction { } if(hasDeclarator) { - addFunctionModifier(declarator, endOffset(parser.getRightIToken())); + addFunctionModifier(declarator, endOffset(stream.getRightIToken())); } else { setOffsetAndLength(declarator); @@ -402,7 +402,7 @@ public class C99BuildASTParserAction extends BuildASTParserAction { * designator ::= '.' 'identifier' */ public void consumeDesignatorField() { - IASTName name = createName(parser.getRightIToken()); + IASTName name = createName(stream.getRightIToken()); ICASTFieldDesignator designator = nodeFactory.newFieldDesignator(name); setOffsetAndLength(designator); astStack.push(designator); @@ -476,7 +476,7 @@ public class C99BuildASTParserAction extends BuildASTParserAction { List declarators = (hasDeclaratorList) ? astStack.closeScope() : Collections.emptyList(); IASTDeclSpecifier declSpecifier = (IASTDeclSpecifier) astStack.pop(); - List ruleTokens = parser.getRuleTokens(); + List ruleTokens = stream.getRuleTokens(); if(ruleTokens.size() == 1 && baseKind(ruleTokens.get(0)) == TK_EndOfCompletion) return; // do not generate nodes for extra EOC tokens @@ -498,7 +498,7 @@ public class C99BuildASTParserAction extends BuildASTParserAction { */ public void consumeDeclarationEmpty() { // Don't generate declaration nodes for extra EOC tokens - if(baseKind(parser.getLeftIToken()) == C99Parsersym.TK_EndOfCompletion) + if(baseKind(stream.getLeftIToken()) == C99Parsersym.TK_EndOfCompletion) return; IASTDeclSpecifier declSpecifier = nodeFactory.newSimpleDeclSpecifier(); @@ -535,12 +535,12 @@ public class C99BuildASTParserAction extends BuildASTParserAction { public void consumeTypeSpecifierComposite(boolean hasName) { int key = 0; - switch(baseKind(parser.getLeftIToken())) { + switch(baseKind(stream.getLeftIToken())) { case TK_struct: key = IASTCompositeTypeSpecifier.k_struct; case TK_union: key = IASTCompositeTypeSpecifier.k_union; } - IASTName name = (hasName) ? createName(parser.getRuleTokens().get(1)) : nodeFactory.newName(); + IASTName name = (hasName) ? createName(stream.getRuleTokens().get(1)) : nodeFactory.newName(); ICASTCompositeTypeSpecifier typeSpec = nodeFactory.newCompositeTypeSpecifier(key, name); @@ -560,7 +560,7 @@ public class C99BuildASTParserAction extends BuildASTParserAction { * enum_specifier ::= 'enum' enum_identifier */ public void consumeTypeSpecifierElaborated(int kind) { - IASTName name = createName(parser.getRuleTokens().get(1)); + IASTName name = createName(stream.getRuleTokens().get(1)); IASTElaboratedTypeSpecifier typeSpec = nodeFactory.newElaboratedTypeSpecifier(kind, name); setOffsetAndLength(typeSpec); astStack.push(typeSpec); @@ -604,7 +604,7 @@ public class C99BuildASTParserAction extends BuildASTParserAction { // bug 234463, fix for content assist to work in this case int TK_EOC = TK_EndOfCompletion; // TODO: change this in the grammar file - List tokens = parser.getRuleTokens(); + List tokens = stream.getRuleTokens(); if(matchTokens(tokens, tokenMap, TK_for, TK_LeftParen, TK_Completion, TK_EOC, TK_EOC, TK_EOC, TK_EOC)) { IASTName name = createName(tokens.get(2)); diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99SecondaryParserFactory.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99SecondaryParserFactory.java index 83e0eef10f4..19f44755d8d 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99SecondaryParserFactory.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99SecondaryParserFactory.java @@ -10,10 +10,13 @@ *******************************************************************************/ package org.eclipse.cdt.core.dom.lrparser.action.c99; +import java.util.Set; + import org.eclipse.cdt.core.dom.ast.IASTExpression; import org.eclipse.cdt.core.dom.lrparser.IParser; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser; import org.eclipse.cdt.core.dom.lrparser.action.ISecondaryParserFactory; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99ExpressionParser; import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99NoCastExpressionParser; import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99SizeofExpressionParser; @@ -27,15 +30,15 @@ public class C99SecondaryParserFactory implements ISecondaryParserFactory { } - public IParser getExpressionParser(IParserActionTokenProvider parser) { - return new C99ExpressionParser(parser); + public ISecondaryParser getExpressionParser(ITokenStream stream, Set options) { + return new C99ExpressionParser(stream, options); } - public IParser getNoCastExpressionParser(IParserActionTokenProvider parser) { - return new C99NoCastExpressionParser(parser); + public ISecondaryParser getNoCastExpressionParser(ITokenStream stream, Set options) { + return new C99NoCastExpressionParser(stream, options); } - public IParser getSizeofExpressionParser(IParserActionTokenProvider parser) { - return new C99SizeofExpressionParser(parser); + public ISecondaryParser getSizeofExpressionParser(ITokenStream stream, Set options) { + return new C99SizeofExpressionParser(stream, options); } } \ No newline at end of file diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java index 74179e0518e..4f0163fb70f 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 @@ -88,10 +88,10 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTUsingDirective; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTVisibilityLabel; import org.eclipse.cdt.core.dom.ast.cpp.ICPPNodeFactory; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCompositeTypeSpecifier.ICPPASTBaseSpecifier; -import org.eclipse.cdt.core.dom.lrparser.IParser; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser; import org.eclipse.cdt.core.dom.lrparser.LPGTokenAdapter; import org.eclipse.cdt.core.dom.lrparser.action.BuildASTParserAction; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; import org.eclipse.cdt.core.dom.lrparser.action.ParserUtil; import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack; @@ -104,7 +104,6 @@ import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTAmbiguousDeclarator; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTAmbiguousExpression; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTAmbiguousStatement; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTAmbiguousTemplateArgument; -import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTQualifiedName; import org.eclipse.cdt.internal.core.dom.parser.cpp.OverloadableOperator; /** @@ -134,7 +133,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * @param orderedTerminalSymbols When an instance of this class is created for a parser * that parsers token kinds will be mapped back to the base C99 parser's token kinds. */ - public CPPBuildASTParserAction(IParserActionTokenProvider parser, ScopedStack astStack, ICPPNodeFactory nodeFactory, ICPPSecondaryParserFactory parserFactory) { + public CPPBuildASTParserAction(ITokenStream parser, ScopedStack astStack, ICPPNodeFactory nodeFactory, ICPPSecondaryParserFactory parserFactory) { super(parser, astStack, nodeFactory, parserFactory); this.nodeFactory = nodeFactory; @@ -408,7 +407,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { */ public void consumeTemplateArgumentTypeId() { // TODO is this necessary? It should be able to tell if it looks like an id expression - IParser secondaryParser = parserFactory.getExpressionParser(parser); + ISecondaryParser secondaryParser = parserFactory.getExpressionParser(stream, options); IASTExpression result = runSecondaryParser(secondaryParser); // The grammar rule allows assignment_expression, but the ambiguity @@ -459,7 +458,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * ::= 'operator' overloadable_operator */ public void consumeOperatorName() { - List tokens = parser.getRuleTokens(); + List tokens = stream.getRuleTokens(); tokens = tokens.subList(1, tokens.size()); OverloadableOperator operator = getOverloadableOperator(tokens); @@ -515,7 +514,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * ::= '~' identifier_token */ public void consumeDestructorName() { - char[] chars = ("~" + parser.getRightIToken()).toCharArray(); //$NON-NLS-1$ + char[] chars = ("~" + stream.getRightIToken()).toCharArray(); //$NON-NLS-1$ IASTName name = nodeFactory.newName(chars); setOffsetAndLength(name); @@ -535,7 +534,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { IASTName newName = nodeFactory.newName(newChars); - int offset = offset(parser.getLeftIToken()); + int offset = offset(stream.getLeftIToken()); int length = offset - endOffset(oldName); ParserUtil.setOffsetAndLength(newName, offset, length); @@ -627,7 +626,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { // bug 234463, fix for content assist to work in this case int TK_EOC = TK_EndOfCompletion; // TODO: change this in the grammar file - List tokens = parser.getRuleTokens(); + List tokens = stream.getRuleTokens(); if(matchTokens(tokens, tokenMap, TK_for, TK_LeftParen, TK_Completion, TK_EOC, TK_EOC, TK_EOC, TK_EOC)) { IASTName name = createName(tokens.get(2)); @@ -763,13 +762,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { ParserUtil.setOffsetAndLength(qualifiedName, startOffset, endOffset - startOffset); for(IASTName name : reverseIterable(names)) qualifiedName.addName(name); - - if(qualifiedName instanceof CPPASTQualifiedName) { - // compute the signature, find the tokens that make up the name - List nameTokens = ParserUtil.tokenOffsetSubList(parser.getRuleTokens(), startOffset, endOffset); - String signature = createStringRepresentation(nameTokens); - ((CPPASTQualifiedName)qualifiedName).setSignature(signature); - } // there must be a dummy name in the AST after the last double colon, this happens with pointer to member names if(endsWithColonColon) { @@ -780,39 +772,9 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { return qualifiedName; } + - private String createStringRepresentation(List nameTokens) { - StringBuilder sb = new StringBuilder(); - IToken prev = null; - for(IToken t : nameTokens) { - if(needSpaceBetween(prev, t)) - sb.append(' '); - sb.append(t.toString()); - prev = t; - } - return sb.toString(); - } - - - private boolean needSpaceBetween(IToken prev, IToken iter) { - // this logic was copied from BasicTokenDuple.createCharArrayRepresentation() - if(prev == null) - return false; - - int prevKind = baseKind(prev); - int iterKind = baseKind(iter); - - return prevKind != TK_ColonColon && - prevKind != TK_identifier && - prevKind != TK_LT && - prevKind != TK_Tilde && - iterKind != TK_GT && - prevKind != TK_LeftBracket && - iterKind != TK_RightBracket && - iterKind != TK_ColonColon; - } - /** * Consumes grammar sub-rules of the following form: * @@ -879,7 +841,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { public void consumeNamespaceAliasDefinition() { IASTName qualifiedName = subRuleQualifiedName(false); - IASTName alias = createName(parser.getRuleTokens().get(1)); + IASTName alias = createName(stream.getRuleTokens().get(1)); ICPPASTNamespaceAlias namespaceAlias = nodeFactory.newNamespaceAlias(alias, qualifiedName); setOffsetAndLength(namespaceAlias); @@ -922,7 +884,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * | 'extern' 'stringlit' declaration */ public void consumeLinkageSpecification() { - String name = parser.getRuleTokens().get(1).toString(); + String name = stream.getRuleTokens().get(1).toString(); ICPPASTLinkageSpecification linkageSpec = nodeFactory.newLinkageSpecification(name); for(Object declaration : astStack.closeScope()) @@ -1122,7 +1084,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { } // the only way there could be a typename token - for(IToken token : parser.getRuleTokens()) { + for(IToken token : stream.getRuleTokens()) { if(baseKind(token) == TK_typename) { declSpec.setIsTypename(true); break; @@ -1142,7 +1104,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { */ public void consumeTypeSpecifierElaborated(boolean hasOptionalTemplateKeyword) { IASTName name = subRuleQualifiedName(hasOptionalTemplateKeyword); - int kind = getElaboratedTypeSpecifier(parser.getLeftIToken()); + int kind = getElaboratedTypeSpecifier(stream.getLeftIToken()); IASTElaboratedTypeSpecifier typeSpecifier = nodeFactory.newElaboratedTypeSpecifier(kind, name); @@ -1172,7 +1134,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { List declarators = hasDeclaratorList ? astStack.closeScope() : Collections.emptyList(); ICPPASTDeclSpecifier declSpec = (ICPPASTDeclSpecifier) astStack.pop(); // may be null - List ruleTokens = parser.getRuleTokens(); + List ruleTokens = stream.getRuleTokens(); IToken nameToken = null; @@ -1184,7 +1146,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { // In the case that a single completion token is parsed then it needs // to be interpreted as a named type specifier for content assist to work. else if(matchTokens(ruleTokens, tokenMap, TK_Completion, TK_EndOfCompletion)) { - IASTName name = createName(parser.getLeftIToken()); + IASTName name = createName(stream.getLeftIToken()); declSpec = nodeFactory.newTypedefNameSpecifier(name); ParserUtil.setOffsetAndLength(declSpec, offset(name), length(name)); declarators = Collections.emptyList(); // throw away the bogus declarator @@ -1193,7 +1155,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { // can happen if implicit int is used else if(declSpec == null) { declSpec = nodeFactory.newSimpleDeclSpecifier(); - ParserUtil.setOffsetAndLength(declSpec, parser.getLeftIToken().getStartOffset(), 0); + ParserUtil.setOffsetAndLength(declSpec, stream.getLeftIToken().getStartOffset(), 0); } @@ -1213,7 +1175,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { for(IToken t : ruleTokens.subList(0, ruleTokens.size()-1)) setSpecifier(declSpec, t); - int offset = offset(parser.getLeftIToken()); + int offset = offset(stream.getLeftIToken()); int length = endOffset(ruleTokens.get(ruleTokens.size()-2)) - offset; ParserUtil.setOffsetAndLength(declSpec, offset, length); @@ -1253,7 +1215,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { IASTDeclarator nested = declarator.getNestedDeclarator(); ICPPASTSimpleDeclSpecifier simpleDeclSpec = nodeFactory.newSimpleDeclSpecifier(); // empty - ParserUtil.setOffsetAndLength(simpleDeclSpec, parser.getLeftIToken().getStartOffset(), 0); + ParserUtil.setOffsetAndLength(simpleDeclSpec, stream.getLeftIToken().getStartOffset(), 0); if(!classNames.isEmpty() && nested != null && ParserUtil.isSameName(name, classNames.getLast())) { @@ -1314,7 +1276,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { if(!(declarator instanceof IASTFunctionDeclarator)) return; - IParser secondaryParser = parserFactory.getNoFunctionDeclaratorParser(parser); + ISecondaryParser secondaryParser = parserFactory.getNoFunctionDeclaratorParser(stream, options); IASTDeclarator notFunctionDeclarator = runSecondaryParser(secondaryParser); if(notFunctionDeclarator == null) @@ -1405,7 +1367,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { */ @SuppressWarnings("unchecked") public void consumeClassHead(boolean hasNestedNameSpecifier) { - int key = getCompositeTypeSpecifier(parser.getLeftIToken()); + int key = getCompositeTypeSpecifier(stream.getLeftIToken()); List baseSpecifiers = astStack.closeScope(); // may be null, but if it is then hasNestedNameSpecifier == false IASTName className = (IASTName) astStack.pop(); @@ -1491,7 +1453,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { int endOffset = endOffset(nestedNames.getFirst()); // temporary // find the last double colon by searching for it - for(IToken t : reverseIterable(parser.getRuleTokens())) { + for(IToken t : reverseIterable(stream.getRuleTokens())) { if(baseKind(t) == TK_ColonColon) { endOffset = endOffset(t); break; @@ -1556,7 +1518,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { } if(hasDeclarator) { - int endOffset = endOffset(parser.getRightIToken()); + int endOffset = endOffset(stream.getRightIToken()); addFunctionModifier(declarator, endOffset); } else { @@ -1571,7 +1533,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { */ public void consumeAbstractDeclaratorEmpty() { IASTName name = nodeFactory.newName(); - ParserUtil.setOffsetAndLength(name, offset(parser.getLeftIToken())+1, 0); + ParserUtil.setOffsetAndLength(name, offset(stream.getLeftIToken())+1, 0); IASTDeclarator declarator = nodeFactory.newDeclarator(name); setOffsetAndLength(declarator); astStack.push(declarator); @@ -1610,7 +1572,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { if(declSpec == null) { // can happen if implicit int is used declSpec = nodeFactory.newSimpleDeclSpecifier(); - ParserUtil.setOffsetAndLength(declSpec, parser.getLeftIToken().getStartOffset(), 0); + ParserUtil.setOffsetAndLength(declSpec, stream.getLeftIToken().getStartOffset(), 0); } else if(disambiguateToConstructor(declSpec, declarator)) { declSpec = (IASTDeclSpecifier) astStack.pop(); @@ -1689,7 +1651,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { if(name == null) name = nodeFactory.newName(); - int type = getTemplateParameterType(parser.getLeftIToken()); + int type = getTemplateParameterType(stream.getLeftIToken()); ICPPASTSimpleTypeTemplateParameter templateParameter = nodeFactory.newSimpleTypeTemplateParameter(type, name, typeId); @@ -1723,7 +1685,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * Yes its a hack. */ public void consumeTemplateParamterDeclaration() { - IParser typeParameterParser = parserFactory.getTemplateTypeParameterParser(parser); + ISecondaryParser typeParameterParser = parserFactory.getTemplateTypeParameterParser(stream, options); IASTNode alternate = runSecondaryParser(typeParameterParser); if(alternate == null) diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPSecondaryParserFactory.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPSecondaryParserFactory.java index 1448d3e5fb8..ff5e558529b 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPSecondaryParserFactory.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPSecondaryParserFactory.java @@ -10,11 +10,14 @@ *******************************************************************************/ package org.eclipse.cdt.core.dom.lrparser.action.cpp; +import java.util.Set; + import org.eclipse.cdt.core.dom.ast.IASTDeclarator; import org.eclipse.cdt.core.dom.ast.IASTExpression; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateParameter; import org.eclipse.cdt.core.dom.lrparser.IParser; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPExpressionParser; import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPNoCastExpressionParser; import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPNoFunctionDeclaratorParser; @@ -31,24 +34,24 @@ public class CPPSecondaryParserFactory implements ICPPSecondaryParserFactory { } - public IParser getTemplateTypeParameterParser(IParserActionTokenProvider parser) { - return new CPPTemplateTypeParameterParser(parser); + public ISecondaryParser getTemplateTypeParameterParser(ITokenStream stream, Set options) { + return new CPPTemplateTypeParameterParser(stream, options); } - public IParser getNoFunctionDeclaratorParser(IParserActionTokenProvider parser) { - return new CPPNoFunctionDeclaratorParser(parser); + public ISecondaryParser getNoFunctionDeclaratorParser(ITokenStream stream, Set options) { + return new CPPNoFunctionDeclaratorParser(stream, options); } - public IParser getExpressionParser(IParserActionTokenProvider parser) { - return new CPPExpressionParser(parser); + public ISecondaryParser getExpressionParser(ITokenStream stream, Set options) { + return new CPPExpressionParser(stream, options); } - public IParser getNoCastExpressionParser(IParserActionTokenProvider parser) { - return new CPPNoCastExpressionParser(parser); + public ISecondaryParser getNoCastExpressionParser(ITokenStream stream, Set options) { + return new CPPNoCastExpressionParser(stream, options); } - public IParser getSizeofExpressionParser(IParserActionTokenProvider parser) { - return new CPPSizeofExpressionParser(parser); + public ISecondaryParser getSizeofExpressionParser(ITokenStream stream, Set options) { + return new CPPSizeofExpressionParser(stream, options); } } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/ICPPSecondaryParserFactory.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/ICPPSecondaryParserFactory.java index c22032b84cc..b8394658428 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/ICPPSecondaryParserFactory.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/ICPPSecondaryParserFactory.java @@ -10,11 +10,14 @@ *******************************************************************************/ package org.eclipse.cdt.core.dom.lrparser.action.cpp; +import java.util.Set; + import org.eclipse.cdt.core.dom.ast.IASTDeclarator; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateParameter; import org.eclipse.cdt.core.dom.lrparser.IParser; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser; import org.eclipse.cdt.core.dom.lrparser.action.ISecondaryParserFactory; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; /** @@ -24,8 +27,8 @@ import org.eclipse.cdt.core.dom.lrparser.action.ISecondaryParserFactory; */ public interface ICPPSecondaryParserFactory extends ISecondaryParserFactory { - IParser getTemplateTypeParameterParser(IParserActionTokenProvider parser); + ISecondaryParser getTemplateTypeParameterParser(ITokenStream stream, Set options); - IParser getNoFunctionDeclaratorParser(IParserActionTokenProvider parser); + ISecondaryParser getNoFunctionDeclaratorParser(ITokenStream stream, Set options); } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCBuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCBuildASTParserAction.java index ad5b85070e2..59386843018 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCBuildASTParserAction.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCBuildASTParserAction.java @@ -20,7 +20,7 @@ import org.eclipse.cdt.core.dom.ast.c.ICASTFieldDesignator; import org.eclipse.cdt.core.dom.ast.c.ICASTSimpleDeclSpecifier; import org.eclipse.cdt.core.dom.ast.c.ICNodeFactory; import org.eclipse.cdt.core.dom.ast.gnu.c.IGCCASTArrayRangeDesignator; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack; import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction; @@ -30,7 +30,7 @@ public class GCCBuildASTParserAction extends GNUBuildASTParserAction { private C99BuildASTParserAction baseAction; - public GCCBuildASTParserAction(IParserActionTokenProvider parser, ScopedStack astStack, ICNodeFactory nodeFactory) { + public GCCBuildASTParserAction(ITokenStream parser, ScopedStack astStack, ICNodeFactory nodeFactory) { super(parser, astStack, nodeFactory); this.nodeFactory = nodeFactory; } @@ -45,7 +45,7 @@ public class GCCBuildASTParserAction extends GNUBuildASTParserAction { * ::= identifier_token ':' */ public void consumeDesignatorField() { - IASTName name = createName(parser.getLeftIToken()); + IASTName name = createName(stream.getLeftIToken()); ICASTFieldDesignator designator = nodeFactory.newFieldDesignator(name); setOffsetAndLength(designator); astStack.push(designator); diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCSecondaryParserFactory.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCSecondaryParserFactory.java index 1fdc3ee6f08..7c7afbe1a33 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCSecondaryParserFactory.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCSecondaryParserFactory.java @@ -10,10 +10,13 @@ *******************************************************************************/ package org.eclipse.cdt.core.dom.lrparser.action.gnu; +import java.util.Set; + import org.eclipse.cdt.core.dom.ast.IASTExpression; import org.eclipse.cdt.core.dom.lrparser.IParser; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser; import org.eclipse.cdt.core.dom.lrparser.action.ISecondaryParserFactory; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99ExpressionParser; import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99NoCastExpressionParser; import org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCSizeofExpressionParser; @@ -27,15 +30,15 @@ public class GCCSecondaryParserFactory implements ISecondaryParserFactory { } - public IParser getExpressionParser(IParserActionTokenProvider parser) { - return new C99ExpressionParser(parser); + public ISecondaryParser getExpressionParser(ITokenStream stream, Set options) { + return new C99ExpressionParser(stream, options); } - public IParser getNoCastExpressionParser(IParserActionTokenProvider parser) { - return new C99NoCastExpressionParser(parser); + public ISecondaryParser getNoCastExpressionParser(ITokenStream stream, Set options) { + return new C99NoCastExpressionParser(stream, options); } - public IParser getSizeofExpressionParser(IParserActionTokenProvider parser) { - return new GCCSizeofExpressionParser(parser); + public ISecondaryParser getSizeofExpressionParser(ITokenStream stream, Set options) { + return new GCCSizeofExpressionParser(stream, options); } } \ No newline at end of file diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GNUBuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GNUBuildASTParserAction.java index 6ec310b20cd..215cba3f846 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GNUBuildASTParserAction.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GNUBuildASTParserAction.java @@ -19,8 +19,8 @@ import org.eclipse.cdt.core.dom.ast.IASTCompoundStatement; import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.dom.ast.INodeFactory; import org.eclipse.cdt.core.dom.ast.gnu.IGNUASTCompoundStatementExpression; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; import org.eclipse.cdt.core.dom.lrparser.action.AbstractParserAction; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack; import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; import org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym; @@ -31,7 +31,7 @@ public class GNUBuildASTParserAction extends AbstractParserAction { private final TokenMap tokenMap; - public GNUBuildASTParserAction(IParserActionTokenProvider parser, ScopedStack astStack, INodeFactory nodeFactory) { + public GNUBuildASTParserAction(ITokenStream parser, ScopedStack astStack, INodeFactory nodeFactory) { super(parser, astStack); this.nodeFactory = nodeFactory; @@ -64,7 +64,7 @@ public class GNUBuildASTParserAction extends AbstractParserAction { * */ public void consumeDeclarationASM() { - List tokens = parser.getRuleTokens(); + List tokens = stream.getRuleTokens(); int firstToken = 2; if(tokenMap.mapKind(tokens.get(1).getKind()) == GCCParsersym.TK_volatile) diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GPPBuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GPPBuildASTParserAction.java index 18ec92f5185..541d49c8703 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GPPBuildASTParserAction.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GPPBuildASTParserAction.java @@ -20,7 +20,7 @@ import org.eclipse.cdt.core.dom.ast.IASTExpression; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTSimpleDeclSpecifier; import org.eclipse.cdt.core.dom.ast.cpp.ICPPNodeFactory; import org.eclipse.cdt.core.dom.ast.gnu.cpp.IGPPASTSimpleDeclSpecifier; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack; import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPBuildASTParserAction; import org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym; @@ -32,7 +32,7 @@ public class GPPBuildASTParserAction extends GNUBuildASTParserAction { private CPPBuildASTParserAction baseAction; - public GPPBuildASTParserAction(IParserActionTokenProvider parser, ScopedStack astStack, ICPPNodeFactory nodeFactory) { + public GPPBuildASTParserAction(ITokenStream parser, ScopedStack astStack, ICPPNodeFactory nodeFactory) { super(parser, astStack, nodeFactory); this.nodeFactory = nodeFactory; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GPPSecondaryParserFactory.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GPPSecondaryParserFactory.java index 4e59e9e5a31..e2df0454417 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GPPSecondaryParserFactory.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GPPSecondaryParserFactory.java @@ -10,11 +10,14 @@ *******************************************************************************/ package org.eclipse.cdt.core.dom.lrparser.action.gnu; +import java.util.Set; + import org.eclipse.cdt.core.dom.ast.IASTDeclarator; import org.eclipse.cdt.core.dom.ast.IASTExpression; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateParameter; import org.eclipse.cdt.core.dom.lrparser.IParser; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.core.dom.lrparser.action.cpp.ICPPSecondaryParserFactory; import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPExpressionParser; import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPNoCastExpressionParser; @@ -32,24 +35,24 @@ public class GPPSecondaryParserFactory implements ICPPSecondaryParserFactory { } - public IParser getTemplateTypeParameterParser(IParserActionTokenProvider parser) { - return new CPPTemplateTypeParameterParser(parser); + public ISecondaryParser getTemplateTypeParameterParser(ITokenStream stream, Set options) { + return new CPPTemplateTypeParameterParser(stream, options); } - public IParser getNoFunctionDeclaratorParser(IParserActionTokenProvider parser) { - return new CPPNoFunctionDeclaratorParser(parser); + public ISecondaryParser getNoFunctionDeclaratorParser(ITokenStream stream, Set options) { + return new CPPNoFunctionDeclaratorParser(stream, options); } - public IParser getExpressionParser(IParserActionTokenProvider parser) { - return new CPPExpressionParser(parser); + public ISecondaryParser getExpressionParser(ITokenStream stream, Set options) { + return new CPPExpressionParser(stream, options); } - public IParser getNoCastExpressionParser(IParserActionTokenProvider parser) { - return new CPPNoCastExpressionParser(parser); + public ISecondaryParser getNoCastExpressionParser(ITokenStream stream, Set options) { + return new CPPNoCastExpressionParser(stream, options); } - public IParser getSizeofExpressionParser(IParserActionTokenProvider parser) { - return new GPPSizeofExpressionParser(parser); + public ISecondaryParser getSizeofExpressionParser(ITokenStream stream, Set options) { + return new GPPSizeofExpressionParser(stream, options); } } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/c99/C99Language.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/c99/C99Language.java index 3bcb06dff68..98d12a2dc92 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/c99/C99Language.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/c99/C99Language.java @@ -10,17 +10,19 @@ *******************************************************************************/ package org.eclipse.cdt.core.dom.lrparser.c99; +import java.util.Set; + import org.eclipse.cdt.core.dom.ILinkage; import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage; -import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap; import org.eclipse.cdt.core.dom.lrparser.IParser; import org.eclipse.cdt.core.dom.lrparser.ScannerExtensionConfiguration; +import org.eclipse.cdt.core.dom.lrparser.IParser.Options; import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider; import org.eclipse.cdt.core.dom.parser.IScannerExtensionConfiguration; import org.eclipse.cdt.core.dom.parser.c.ANSICParserExtensionConfiguration; -import org.eclipse.cdt.core.model.IContributedModelBuilder; -import org.eclipse.cdt.core.model.ITranslationUnit; +import org.eclipse.cdt.core.index.IIndex; +import org.eclipse.cdt.core.parser.IScanner; import org.eclipse.cdt.core.parser.ParserLanguage; import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parser; @@ -40,24 +42,16 @@ public class C99Language extends BaseExtensibleLanguage { return DEFAULT; } + @Override - protected IParser getParser() { - return new C99Parser(); - } - - @Override - protected IDOMTokenMap getTokenMap() { - return DOMToC99TokenMap.DEFAULT_MAP; + protected IParser getParser(IScanner scanner, IIndex index, Set options) { + return new C99Parser(scanner, DOMToC99TokenMap.DEFAULT_MAP, getBuiltinBindingsProvider(), index, options); } @Override protected IScannerExtensionConfiguration getScannerExtensionConfiguration() { return ScannerExtensionConfiguration.createC(); } - - public IContributedModelBuilder createModelBuilder(@SuppressWarnings("unused") ITranslationUnit tu) { - return null; - } public String getId() { return ID; @@ -72,8 +66,7 @@ public class C99Language extends BaseExtensibleLanguage { return ParserLanguage.C; } - @Override - protected IBuiltinBindingsProvider getBuiltinBindingsProvider() { + private IBuiltinBindingsProvider getBuiltinBindingsProvider() { return new ANSICParserExtensionConfiguration().getBuiltinBindingsProvider(); } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/cpp/ISOCPPLanguage.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/cpp/ISOCPPLanguage.java index 0c514b89d3d..4638bd1c5b2 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/cpp/ISOCPPLanguage.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/cpp/ISOCPPLanguage.java @@ -10,17 +10,18 @@ *******************************************************************************/ package org.eclipse.cdt.core.dom.lrparser.cpp; +import java.util.Set; + import org.eclipse.cdt.core.dom.ILinkage; import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage; -import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap; import org.eclipse.cdt.core.dom.lrparser.IParser; import org.eclipse.cdt.core.dom.lrparser.ScannerExtensionConfiguration; import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider; import org.eclipse.cdt.core.dom.parser.IScannerExtensionConfiguration; import org.eclipse.cdt.core.dom.parser.cpp.ANSICPPParserExtensionConfiguration; -import org.eclipse.cdt.core.model.IContributedModelBuilder; -import org.eclipse.cdt.core.model.ITranslationUnit; +import org.eclipse.cdt.core.index.IIndex; +import org.eclipse.cdt.core.parser.IScanner; import org.eclipse.cdt.core.parser.ParserLanguage; import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParser; @@ -40,13 +41,8 @@ public class ISOCPPLanguage extends BaseExtensibleLanguage { } @Override - protected IParser getParser() { - return new CPPParser(); - } - - @Override - protected IDOMTokenMap getTokenMap() { - return DOMToISOCPPTokenMap.DEFAULT_MAP; + protected IParser getParser(IScanner scanner, IIndex index, Set options) { + return new CPPParser(scanner, DOMToISOCPPTokenMap.DEFAULT_MAP, getBuiltinBindingsProvider(), index, options); } @Override @@ -54,10 +50,6 @@ public class ISOCPPLanguage extends BaseExtensibleLanguage { return ScannerExtensionConfiguration.createCPP(); } - public IContributedModelBuilder createModelBuilder(@SuppressWarnings("unused") ITranslationUnit tu) { - return null; - } - public String getId() { return ID; } @@ -71,7 +63,6 @@ public class ISOCPPLanguage extends BaseExtensibleLanguage { return ParserLanguage.CPP; } - @Override protected IBuiltinBindingsProvider getBuiltinBindingsProvider() { return new ANSICPPParserExtensionConfiguration().getBuiltinBindingsProvider(); } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/gnu/GCCLanguage.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/gnu/GCCLanguage.java index 9d69cf40345..a83deee3510 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/gnu/GCCLanguage.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/gnu/GCCLanguage.java @@ -10,17 +10,18 @@ *******************************************************************************/ package org.eclipse.cdt.core.dom.lrparser.gnu; +import java.util.Set; + import org.eclipse.cdt.core.dom.ILinkage; import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage; -import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap; import org.eclipse.cdt.core.dom.lrparser.IParser; import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider; import org.eclipse.cdt.core.dom.parser.IScannerExtensionConfiguration; import org.eclipse.cdt.core.dom.parser.c.GCCParserExtensionConfiguration; import org.eclipse.cdt.core.dom.parser.c.GCCScannerExtensionConfiguration; -import org.eclipse.cdt.core.model.IContributedModelBuilder; -import org.eclipse.cdt.core.model.ITranslationUnit; +import org.eclipse.cdt.core.index.IIndex; +import org.eclipse.cdt.core.parser.IScanner; import org.eclipse.cdt.core.parser.ParserLanguage; import org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParser; @@ -40,23 +41,14 @@ public class GCCLanguage extends BaseExtensibleLanguage { } @Override - protected IParser getParser() { - return new GCCParser(); - } - - @Override - protected IDOMTokenMap getTokenMap() { - return DOMToGCCTokenMap.DEFAULT_MAP; + protected IParser getParser(IScanner scanner, IIndex index, Set options) { + return new GCCParser(scanner, DOMToGCCTokenMap.DEFAULT_MAP, getBuiltinBindingsProvider(), index, options); } @Override protected IScannerExtensionConfiguration getScannerExtensionConfiguration() { return GCCScannerExtensionConfiguration.getInstance(); } - - public IContributedModelBuilder createModelBuilder(@SuppressWarnings("unused") ITranslationUnit tu) { - return null; - } public String getId() { return ID; @@ -71,7 +63,6 @@ public class GCCLanguage extends BaseExtensibleLanguage { return ParserLanguage.C; } - @Override protected IBuiltinBindingsProvider getBuiltinBindingsProvider() { return new GCCParserExtensionConfiguration().getBuiltinBindingsProvider(); } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/gnu/GPPLanguage.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/gnu/GPPLanguage.java index 7bf49dcca13..533a44e943b 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/gnu/GPPLanguage.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/gnu/GPPLanguage.java @@ -10,17 +10,18 @@ *******************************************************************************/ package org.eclipse.cdt.core.dom.lrparser.gnu; +import java.util.Set; + import org.eclipse.cdt.core.dom.ILinkage; import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage; -import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap; import org.eclipse.cdt.core.dom.lrparser.IParser; import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider; import org.eclipse.cdt.core.dom.parser.IScannerExtensionConfiguration; import org.eclipse.cdt.core.dom.parser.cpp.GPPParserExtensionConfiguration; import org.eclipse.cdt.core.dom.parser.cpp.GPPScannerExtensionConfiguration; -import org.eclipse.cdt.core.model.IContributedModelBuilder; -import org.eclipse.cdt.core.model.ITranslationUnit; +import org.eclipse.cdt.core.index.IIndex; +import org.eclipse.cdt.core.parser.IScanner; import org.eclipse.cdt.core.parser.ParserLanguage; import org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParser; @@ -40,23 +41,14 @@ public class GPPLanguage extends BaseExtensibleLanguage { } @Override - protected IParser getParser() { - return new GPPParser(); - } - - @Override - protected IDOMTokenMap getTokenMap() { - return DOMToGPPTokenMap.DEFAULT_MAP; + protected IParser getParser(IScanner scanner, IIndex index, Set options) { + return new GPPParser(scanner, DOMToGPPTokenMap.DEFAULT_MAP, getBuiltinBindingsProvider(), index, options); } @Override protected IScannerExtensionConfiguration getScannerExtensionConfiguration() { return GPPScannerExtensionConfiguration.getInstance(); } - - public IContributedModelBuilder createModelBuilder(@SuppressWarnings("unused") ITranslationUnit tu) { - return null; - } public String getId() { return ID; @@ -71,7 +63,6 @@ public class GPPLanguage extends BaseExtensibleLanguage { return ParserLanguage.CPP; } - @Override protected IBuiltinBindingsProvider getBuiltinBindingsProvider() { return new GPPParserExtensionConfiguration().getBuiltinBindingsProvider(); } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParser.java index a0bc2fc7b89..a72b879f6cb 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParser.java @@ -17,19 +17,28 @@ import lpg.lpgjavaruntime.*; import java.util.*; import org.eclipse.cdt.core.dom.ast.*; +import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter; +import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap; import org.eclipse.cdt.core.dom.lrparser.IParser; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.ITokenCollector; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack; +import org.eclipse.cdt.core.parser.IScanner; +import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider; +import org.eclipse.cdt.core.index.IIndex; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; +import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser; import org.eclipse.cdt.internal.core.dom.parser.c.CNodeFactory; import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction; import org.eclipse.cdt.core.dom.lrparser.action.c99.C99SecondaryParserFactory; -public class C99ExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser< IASTExpression > +public class C99ExpressionParser extends PrsStream implements RuleAction, ITokenStream, + ITokenCollector, IParser< IASTExpression > + , ISecondaryParser< IASTExpression > { private static ParseTable prs = new C99ExpressionParserprs(); private FixedBacktrackingParser btParser; @@ -167,7 +176,11 @@ public class C99ExpressionParser extends PrsStream implements RuleAction , IPars private C99BuildASTParserAction action; private IASTCompletionNode compNode; -public C99ExpressionParser() { // constructor + +public C99ExpressionParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Set options) { + initActions(options); + action.initializeTranslationUnit(scanner, builtinBindingsProvider, index); + CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap); } private void initActions(Set options) { @@ -186,10 +199,9 @@ public void addToken(IToken token) { } -public IASTExpression parse(Set options) { +public IASTExpression parse() { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(options); final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse @@ -232,12 +244,12 @@ public void setTokens(List tokens) { addToken(new Token(null, 0, 0, C99ExpressionParsersym.TK_EOF_TOKEN)); } -public C99ExpressionParser(IParserActionTokenProvider parser) { // constructor +public C99ExpressionParser(ITokenStream parser, Set options) { // constructor for creating secondary parser + initActions(options); tokenMap = new TokenMap(C99ExpressionParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols()); } - public void ruleAction(int ruleNumber) { switch (ruleNumber) @@ -250,1011 +262,1017 @@ public C99ExpressionParser(IParserActionTokenProvider parser) { // constructor } // - // Rule 12: literal ::= integer + // Rule 2: ::= $Empty // - case 12: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break; + case 2: { action. consumeEmpty(); break; } // - // Rule 13: literal ::= floating + // Rule 13: literal ::= integer // - case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break; + case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break; } // - // Rule 14: literal ::= charconst + // Rule 14: literal ::= floating // - case 14: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break; + case 14: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break; } // - // Rule 15: literal ::= stringlit + // Rule 15: literal ::= charconst // - case 15: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break; + case 15: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break; } // - // Rule 17: primary_expression ::= primary_expression_id + // Rule 16: literal ::= stringlit // - case 17: { action. consumeExpressionID(); break; + case 16: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break; } // - // Rule 18: primary_expression ::= ( expression ) + // Rule 18: primary_expression ::= primary_expression_id // - case 18: { action. consumeExpressionBracketed(); break; + case 18: { action. consumeExpressionID(); break; } // - // Rule 21: postfix_expression ::= postfix_expression [ expression ] + // Rule 19: primary_expression ::= ( expression ) // - case 21: { action. consumeExpressionArraySubscript(); break; + case 19: { action. consumeExpressionBracketed(); break; } // - // Rule 22: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 22: postfix_expression ::= postfix_expression [ expression ] // - case 22: { action. consumeExpressionFunctionCall(); break; + case 22: { action. consumeExpressionArraySubscript(); break; } // - // Rule 23: postfix_expression ::= postfix_expression . member_name + // Rule 23: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 23: { action. consumeExpressionFieldReference(false); break; + case 23: { action. consumeExpressionFunctionCall(); break; } // - // Rule 24: postfix_expression ::= postfix_expression -> member_name + // Rule 24: postfix_expression ::= postfix_expression . member_name // - case 24: { action. consumeExpressionFieldReference(true); break; + case 24: { action. consumeExpressionFieldReference(false); break; } // - // Rule 25: postfix_expression ::= postfix_expression ++ + // Rule 25: postfix_expression ::= postfix_expression -> member_name // - case 25: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; + case 25: { action. consumeExpressionFieldReference(true); break; } // - // Rule 26: postfix_expression ::= postfix_expression -- + // Rule 26: postfix_expression ::= postfix_expression ++ // - case 26: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; + case 26: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 27: postfix_expression ::= ( type_id ) { initializer_list comma_opt } + // Rule 27: postfix_expression ::= postfix_expression -- // - case 27: { action. consumeExpressionTypeIdInitializer(); break; + case 27: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 32: unary_expression ::= ++ unary_expression + // Rule 28: postfix_expression ::= ( type_id ) { initializer_list comma_opt } // - case 32: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; + case 28: { action. consumeExpressionTypeIdInitializer(); break; } // - // Rule 33: unary_expression ::= -- unary_expression + // Rule 33: unary_expression ::= ++ unary_expression // - case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; + case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 34: unary_expression ::= & cast_expression + // Rule 34: unary_expression ::= -- unary_expression // - case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; + case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 35: unary_expression ::= * cast_expression + // Rule 35: unary_expression ::= & cast_expression // - case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; + case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 36: unary_expression ::= + cast_expression + // Rule 36: unary_expression ::= * cast_expression // - case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; + case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 37: unary_expression ::= - cast_expression + // Rule 37: unary_expression ::= + cast_expression // - case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; + case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 38: unary_expression ::= ~ cast_expression + // Rule 38: unary_expression ::= - cast_expression // - case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; + case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 39: unary_expression ::= ! cast_expression + // Rule 39: unary_expression ::= ~ cast_expression // - case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; + case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 40: unary_expression ::= sizeof unary_expression + // Rule 40: unary_expression ::= ! cast_expression // - case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; + case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 41: unary_expression ::= sizeof ( type_id ) + // Rule 41: unary_expression ::= sizeof unary_expression // - case 41: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break; + case 41: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 43: cast_expression ::= ( type_id ) cast_expression + // Rule 42: unary_expression ::= sizeof ( type_id ) // - case 43: { action. consumeExpressionCast(IASTCastExpression.op_cast); break; + case 42: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break; } // - // Rule 45: multiplicative_expression ::= multiplicative_expression * cast_expression + // Rule 44: cast_expression ::= ( type_id ) cast_expression // - case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break; + case 44: { action. consumeExpressionCast(IASTCastExpression.op_cast); break; } // - // Rule 46: multiplicative_expression ::= multiplicative_expression / cast_expression + // Rule 46: multiplicative_expression ::= multiplicative_expression * cast_expression // - case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break; + case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break; } // - // Rule 47: multiplicative_expression ::= multiplicative_expression % cast_expression + // Rule 47: multiplicative_expression ::= multiplicative_expression / cast_expression // - case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break; + case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break; } // - // Rule 49: additive_expression ::= additive_expression + multiplicative_expression + // Rule 48: multiplicative_expression ::= multiplicative_expression % cast_expression // - case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break; + case 48: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break; } // - // Rule 50: additive_expression ::= additive_expression - multiplicative_expression + // Rule 50: additive_expression ::= additive_expression + multiplicative_expression // - case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break; + case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break; } // - // Rule 52: shift_expression ::= shift_expression << additive_expression + // Rule 51: additive_expression ::= additive_expression - multiplicative_expression // - case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break; + case 51: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break; } // - // Rule 53: shift_expression ::= shift_expression >> additive_expression + // Rule 53: shift_expression ::= shift_expression << additive_expression // - case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break; + case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break; } // - // Rule 55: relational_expression ::= relational_expression < shift_expression + // Rule 54: shift_expression ::= shift_expression >> additive_expression // - case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break; + case 54: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break; } // - // Rule 56: relational_expression ::= relational_expression > shift_expression + // Rule 56: relational_expression ::= relational_expression < shift_expression // - case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break; + case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break; } // - // Rule 57: relational_expression ::= relational_expression <= shift_expression + // Rule 57: relational_expression ::= relational_expression > shift_expression // - case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break; + case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break; } // - // Rule 58: relational_expression ::= relational_expression >= shift_expression + // Rule 58: relational_expression ::= relational_expression <= shift_expression // - case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break; + case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break; } // - // Rule 60: equality_expression ::= equality_expression == relational_expression + // Rule 59: relational_expression ::= relational_expression >= shift_expression // - case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break; + case 59: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break; } // - // Rule 61: equality_expression ::= equality_expression != relational_expression + // Rule 61: equality_expression ::= equality_expression == relational_expression // - case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break; + case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break; } // - // Rule 63: AND_expression ::= AND_expression & equality_expression + // Rule 62: equality_expression ::= equality_expression != relational_expression // - case 63: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break; + case 62: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break; } // - // Rule 65: exclusive_OR_expression ::= exclusive_OR_expression ^ AND_expression + // Rule 64: and_expression ::= and_expression & equality_expression // - case 65: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break; + case 64: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break; } // - // Rule 67: inclusive_OR_expression ::= inclusive_OR_expression | exclusive_OR_expression + // Rule 66: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 67: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break; + case 66: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break; } // - // Rule 69: logical_AND_expression ::= logical_AND_expression && inclusive_OR_expression + // Rule 68: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 69: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break; + case 68: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break; } // - // Rule 71: logical_OR_expression ::= logical_OR_expression || logical_AND_expression + // Rule 70: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 71: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break; + case 70: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break; } // - // Rule 73: conditional_expression ::= logical_OR_expression ? expression : conditional_expression + // Rule 72: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 73: { action. consumeExpressionConditional(); break; + case 72: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break; } // - // Rule 75: assignment_expression ::= unary_expression = assignment_expression + // Rule 74: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; + case 74: { action. consumeExpressionConditional(); break; } // - // Rule 76: assignment_expression ::= unary_expression *= assignment_expression + // Rule 76: assignment_expression ::= unary_expression = assignment_expression // - case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break; + case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; } // - // Rule 77: assignment_expression ::= unary_expression /= assignment_expression + // Rule 77: assignment_expression ::= unary_expression *= assignment_expression // - case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break; + case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 78: assignment_expression ::= unary_expression %= assignment_expression + // Rule 78: assignment_expression ::= unary_expression /= assignment_expression // - case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break; + case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break; } // - // Rule 79: assignment_expression ::= unary_expression += assignment_expression + // Rule 79: assignment_expression ::= unary_expression %= assignment_expression // - case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break; + case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break; } // - // Rule 80: assignment_expression ::= unary_expression -= assignment_expression + // Rule 80: assignment_expression ::= unary_expression += assignment_expression // - case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break; + case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break; } // - // Rule 81: assignment_expression ::= unary_expression <<= assignment_expression + // Rule 81: assignment_expression ::= unary_expression -= assignment_expression // - case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break; + case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break; } // - // Rule 82: assignment_expression ::= unary_expression >>= assignment_expression + // Rule 82: assignment_expression ::= unary_expression <<= assignment_expression // - case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break; + case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 83: assignment_expression ::= unary_expression &= assignment_expression + // Rule 83: assignment_expression ::= unary_expression >>= assignment_expression // - case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break; + case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 84: assignment_expression ::= unary_expression ^= assignment_expression + // Rule 84: assignment_expression ::= unary_expression &= assignment_expression // - case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break; + case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 85: assignment_expression ::= unary_expression |= assignment_expression + // Rule 85: assignment_expression ::= unary_expression ^= assignment_expression // - case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break; + case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 88: expression_list ::= expression_list_actual + // Rule 86: assignment_expression ::= unary_expression |= assignment_expression // - case 88: { action. consumeExpressionList(); break; + case 86: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 90: expression_list_opt ::= $Empty + // Rule 89: expression_list ::= expression_list_actual // - case 90: { action. consumeEmpty(); break; + case 89: { action. consumeExpressionList(); break; } // - // Rule 100: statement ::= ERROR_TOKEN + // Rule 91: expression_list_opt ::= $Empty // - case 100: { action. consumeStatementProblem(); break; + case 91: { action. consumeEmpty(); break; } // - // Rule 101: labeled_statement ::= identifier_token : statement + // Rule 101: statement ::= ERROR_TOKEN // - case 101: { action. consumeStatementLabeled(); break; + case 101: { action. consumeStatementProblem(); break; } // - // Rule 102: labeled_statement ::= case constant_expression : statement + // Rule 102: labeled_statement ::= identifier_token : statement // - case 102: { action. consumeStatementCase(); break; + case 102: { action. consumeStatementLabeled(); break; } // - // Rule 103: labeled_statement ::= default : statement + // Rule 103: labeled_statement ::= case constant_expression : statement // - case 103: { action. consumeStatementDefault(); break; + case 103: { action. consumeStatementCase(); break; } // - // Rule 104: compound_statement ::= { } + // Rule 104: labeled_statement ::= default : statement // - case 104: { action. consumeStatementCompoundStatement(false); break; + case 104: { action. consumeStatementDefault(); break; } // - // Rule 105: compound_statement ::= { block_item_list } + // Rule 105: compound_statement ::= { } // - case 105: { action. consumeStatementCompoundStatement(true); break; + case 105: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 109: block_item ::= declaration + // Rule 106: compound_statement ::= { block_item_list } // - case 109: { action. consumeStatementDeclarationWithDisambiguation(); break; + case 106: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 110: expression_statement ::= ; + // Rule 110: block_item ::= declaration // - case 110: { action. consumeStatementNull(); break; + case 110: { action. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 111: expression_statement ::= expression_in_statement ; + // Rule 111: expression_statement ::= ; // - case 111: { action. consumeStatementExpression(); break; + case 111: { action. consumeStatementNull(); break; } // - // Rule 112: selection_statement ::= if ( expression ) statement + // Rule 112: expression_statement ::= expression_in_statement ; // - case 112: { action. consumeStatementIf(false); break; + case 112: { action. consumeStatementExpression(); break; } // - // Rule 113: selection_statement ::= if ( expression ) statement else statement + // Rule 113: selection_statement ::= if ( expression ) statement // - case 113: { action. consumeStatementIf(true); break; + case 113: { action. consumeStatementIf(false); break; } // - // Rule 114: selection_statement ::= switch ( expression ) statement + // Rule 114: selection_statement ::= if ( expression ) statement else statement // - case 114: { action. consumeStatementSwitch(); break; + case 114: { action. consumeStatementIf(true); break; } // - // Rule 116: expression_opt ::= $Empty + // Rule 115: selection_statement ::= switch ( expression ) statement // - case 116: { action. consumeEmpty(); break; + case 115: { action. consumeStatementSwitch(); break; } // - // Rule 117: iteration_statement ::= do statement while ( expression ) ; + // Rule 117: expression_opt ::= $Empty // - case 117: { action. consumeStatementDoLoop(); break; + case 117: { action. consumeEmpty(); break; } // - // Rule 118: iteration_statement ::= while ( expression ) statement + // Rule 118: iteration_statement ::= do statement while ( expression ) ; // - case 118: { action. consumeStatementWhileLoop(); break; + case 118: { action. consumeStatementDoLoop(); break; } // - // Rule 119: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement + // Rule 119: iteration_statement ::= while ( expression ) statement // - case 119: { action. consumeStatementForLoop(); break; + case 119: { action. consumeStatementWhileLoop(); break; } // - // Rule 120: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement + // Rule 120: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement // case 120: { action. consumeStatementForLoop(); break; } // - // Rule 121: jump_statement ::= goto identifier_token ; + // Rule 121: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement // - case 121: { action. consumeStatementGoto(); break; + case 121: { action. consumeStatementForLoop(); break; } // - // Rule 122: jump_statement ::= continue ; + // Rule 122: jump_statement ::= goto identifier_token ; // - case 122: { action. consumeStatementContinue(); break; + case 122: { action. consumeStatementGoto(); break; } // - // Rule 123: jump_statement ::= break ; + // Rule 123: jump_statement ::= continue ; // - case 123: { action. consumeStatementBreak(); break; + case 123: { action. consumeStatementContinue(); break; } // - // Rule 124: jump_statement ::= return ; + // Rule 124: jump_statement ::= break ; // - case 124: { action. consumeStatementReturn(false); break; + case 124: { action. consumeStatementBreak(); break; } // - // Rule 125: jump_statement ::= return expression ; + // Rule 125: jump_statement ::= return ; // - case 125: { action. consumeStatementReturn(true); break; + case 125: { action. consumeStatementReturn(false); break; } // - // Rule 126: declaration ::= declaration_specifiers ; + // Rule 126: jump_statement ::= return expression ; // - case 126: { action. consumeDeclarationSimple(false); break; + case 126: { action. consumeStatementReturn(true); break; } // - // Rule 127: declaration ::= declaration_specifiers init_declarator_list ; + // Rule 127: declaration ::= declaration_specifiers ; // - case 127: { action. consumeDeclarationSimple(true); break; + case 127: { action. consumeDeclarationSimple(false); break; } // - // Rule 128: declaration_specifiers ::= simple_declaration_specifiers + // Rule 128: declaration ::= declaration_specifiers init_declarator_list ; // - case 128: { action. consumeDeclarationSpecifiersSimple(); break; + case 128: { action. consumeDeclarationSimple(true); break; } // - // Rule 129: declaration_specifiers ::= struct_or_union_declaration_specifiers + // Rule 129: declaration_specifiers ::= simple_declaration_specifiers // - case 129: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; + case 129: { action. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 130: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 130: declaration_specifiers ::= struct_or_union_declaration_specifiers // case 130: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; } // - // Rule 131: declaration_specifiers ::= enum_declaration_specifiers + // Rule 131: declaration_specifiers ::= elaborated_declaration_specifiers // case 131: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; } // - // Rule 132: declaration_specifiers ::= typdef_name_declaration_specifiers + // Rule 132: declaration_specifiers ::= enum_declaration_specifiers // - case 132: { action. consumeDeclarationSpecifiersTypedefName(); break; + case 132: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; } // - // Rule 157: init_declarator ::= complete_declarator = initializer + // Rule 133: declaration_specifiers ::= typdef_name_declaration_specifiers // - case 157: { action. consumeDeclaratorWithInitializer(true); break; + case 133: { action. consumeDeclarationSpecifiersTypedefName(); break; } // - // Rule 159: storage_class_specifier ::= storage_class_specifier_token + // Rule 158: init_declarator ::= complete_declarator = initializer // - case 159: { action. consumeToken(); break; + case 158: { action. consumeDeclaratorWithInitializer(true); break; } // - // Rule 165: simple_type_specifier ::= simple_type_specifier_token + // Rule 160: storage_class_specifier ::= storage_class_specifier_token // - case 165: { action. consumeToken(); break; + case 160: { action. consumeToken(); break; } // - // Rule 178: type_name_specifier ::= identifier_token + // Rule 166: simple_type_specifier ::= simple_type_specifier_token // - case 178: { action. consumeToken(); break; + case 166: { action. consumeToken(); break; } // - // Rule 179: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { struct_declaration_list_opt } + // Rule 179: type_name_specifier ::= identifier_token // - case 179: { action. consumeTypeSpecifierComposite(false); break; + case 179: { action. consumeToken(); break; } // - // Rule 180: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { struct_declaration_list_opt } + // Rule 180: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { struct_declaration_list_opt } // - case 180: { action. consumeTypeSpecifierComposite(true); break; + case 180: { action. consumeTypeSpecifierComposite(false); break; } // - // Rule 185: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token + // Rule 181: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { struct_declaration_list_opt } // - case 185: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break; + case 181: { action. consumeTypeSpecifierComposite(true); break; } // - // Rule 186: elaborated_specifier ::= union elaborated_specifier_hook identifier_token + // Rule 186: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token // - case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break; + case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break; } // - // Rule 187: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token + // Rule 187: elaborated_specifier ::= union elaborated_specifier_hook identifier_token // - case 187: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break; + case 187: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break; } // - // Rule 193: struct_declaration ::= specifier_qualifier_list struct_declarator_list ; + // Rule 188: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token // - case 193: { action. consumeStructDeclaration(true); break; + case 188: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break; } // - // Rule 194: struct_declaration ::= specifier_qualifier_list ; + // Rule 194: struct_declaration ::= specifier_qualifier_list struct_declarator_list ; // - case 194: { action. consumeStructDeclaration(false); break; + case 194: { action. consumeStructDeclaration(true); break; } // - // Rule 195: struct_declaration ::= ERROR_TOKEN + // Rule 195: struct_declaration ::= specifier_qualifier_list ; // - case 195: { action. consumeDeclarationProblem(); break; + case 195: { action. consumeStructDeclaration(false); break; } // - // Rule 201: struct_declarator ::= : constant_expression + // Rule 196: struct_declaration ::= ERROR_TOKEN // - case 201: { action. consumeBitField(false); break; + case 196: { action. consumeDeclarationProblem(); break; } // - // Rule 202: struct_declarator ::= declarator : constant_expression + // Rule 202: struct_declarator ::= : constant_expression // - case 202: { action. consumeBitField(true); break; + case 202: { action. consumeBitField(false); break; } // - // Rule 203: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } + // Rule 203: struct_declarator ::= declarator : constant_expression // - case 203: { action. consumeTypeSpecifierEnumeration(false); break; + case 203: { action. consumeBitField(true); break; } // - // Rule 204: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } + // Rule 204: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } // - case 204: { action. consumeTypeSpecifierEnumeration(true); break; + case 204: { action. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 210: enumerator ::= identifier_token + // Rule 205: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } // - case 210: { action. consumeEnumerator(false); break; + case 205: { action. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 211: enumerator ::= identifier_token = constant_expression + // Rule 211: enumerator ::= identifier_token // - case 211: { action. consumeEnumerator(true); break; + case 211: { action. consumeEnumerator(false); break; } // - // Rule 212: type_qualifier ::= type_qualifier_token + // Rule 212: enumerator ::= identifier_token = constant_expression // - case 212: { action. consumeToken(); break; + case 212: { action. consumeEnumerator(true); break; } // - // Rule 216: function_specifier ::= inline + // Rule 213: type_qualifier ::= type_qualifier_token // - case 216: { action. consumeToken(); break; + case 213: { action. consumeToken(); break; } // - // Rule 218: declarator ::= pointer_seq direct_declarator + // Rule 217: function_specifier ::= inline // - case 218: { action. consumeDeclaratorWithPointer(true); break; + case 217: { action. consumeToken(); break; } // - // Rule 223: basic_direct_declarator ::= declarator_id_name + // Rule 219: declarator ::= pointer_seq direct_declarator // - case 223: { action. consumeDirectDeclaratorIdentifier(); break; + case 219: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 224: basic_direct_declarator ::= ( declarator ) + // Rule 224: basic_direct_declarator ::= declarator_id_name // - case 224: { action. consumeDirectDeclaratorBracketed(); break; + case 224: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 225: declarator_id_name ::= identifier + // Rule 225: basic_direct_declarator ::= ( declarator ) // - case 225: { action. consumeIdentifierName(); break; + case 225: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 226: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 226: declarator_id_name ::= identifier // - case 226: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 226: { action. consumeIdentifierName(); break; } // - // Rule 227: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 227: array_direct_declarator ::= basic_direct_declarator array_modifier // case 227: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 229: function_direct_declarator ::= basic_direct_declarator ( parameter_type_list ) + // Rule 228: array_direct_declarator ::= array_direct_declarator array_modifier // - case 229: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; + case 228: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 230: function_direct_declarator ::= basic_direct_declarator ( ) + // Rule 230: function_direct_declarator ::= basic_direct_declarator ( parameter_type_list ) // - case 230: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; + case 230: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; } // - // Rule 232: function_declarator ::= pointer_seq function_direct_declarator + // Rule 231: function_direct_declarator ::= basic_direct_declarator ( ) // - case 232: { action. consumeDeclaratorWithPointer(true); break; + case 231: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; } // - // Rule 233: knr_direct_declarator ::= basic_direct_declarator ( identifier_list ) + // Rule 233: function_declarator ::= pointer_seq function_direct_declarator // - case 233: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break; + case 233: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 235: knr_function_declarator ::= pointer_seq knr_direct_declarator + // Rule 234: knr_direct_declarator ::= basic_direct_declarator ( identifier_list ) // - case 235: { action. consumeDeclaratorWithPointer(true); break; + case 234: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break; } // - // Rule 236: identifier_list ::= identifier + // Rule 236: knr_function_declarator ::= pointer_seq knr_direct_declarator // - case 236: { action. consumeIdentifierKnR(); break; + case 236: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 237: identifier_list ::= identifier_list , identifier + // Rule 237: identifier_list ::= identifier // case 237: { action. consumeIdentifierKnR(); break; } // - // Rule 238: array_modifier ::= [ ] + // Rule 238: identifier_list ::= identifier_list , identifier // - case 238: { action. consumeDirectDeclaratorArrayModifier(false); break; + case 238: { action. consumeIdentifierKnR(); break; } // - // Rule 239: array_modifier ::= [ array_modifier_type_qualifiers ] + // Rule 239: array_modifier ::= [ ] // - case 239: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break; + case 239: { action. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 240: array_modifier ::= [ assignment_expression ] + // Rule 240: array_modifier ::= [ array_modifier_type_qualifiers ] // - case 240: { action. consumeDirectDeclaratorArrayModifier(true); break; + case 240: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break; } // - // Rule 241: array_modifier ::= [ array_modifier_type_qualifiers assignment_expression ] + // Rule 241: array_modifier ::= [ assignment_expression ] // - case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break; + case 241: { action. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 242: array_modifier ::= [ static assignment_expression ] + // Rule 242: array_modifier ::= [ array_modifier_type_qualifiers assignment_expression ] // - case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break; + case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break; } // - // Rule 243: array_modifier ::= [ static array_modifier_type_qualifiers assignment_expression ] + // Rule 243: array_modifier ::= [ static assignment_expression ] // - case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; + case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break; } // - // Rule 244: array_modifier ::= [ array_modifier_type_qualifiers static assignment_expression ] + // Rule 244: array_modifier ::= [ static array_modifier_type_qualifiers assignment_expression ] // case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; } // - // Rule 245: array_modifier ::= [ * ] + // Rule 245: array_modifier ::= [ array_modifier_type_qualifiers static assignment_expression ] // - case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break; + case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; } // - // Rule 246: array_modifier ::= [ array_modifier_type_qualifiers * ] + // Rule 246: array_modifier ::= [ * ] // - case 246: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break; + case 246: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break; } // - // Rule 248: pointer_seq ::= pointer_hook * + // Rule 247: array_modifier ::= [ array_modifier_type_qualifiers * ] // - case 248: { action. consumePointer(); break; + case 247: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break; } // - // Rule 249: pointer_seq ::= pointer_seq pointer_hook * + // Rule 249: pointer_seq ::= pointer_hook * pointer_hook // case 249: { action. consumePointer(); break; } // - // Rule 250: pointer_seq ::= pointer_hook * type_qualifier_list + // Rule 250: pointer_seq ::= pointer_seq pointer_hook * pointer_hook // - case 250: { action. consumePointerTypeQualifierList(); break; + case 250: { action. consumePointer(); break; } // - // Rule 251: pointer_seq ::= pointer_seq pointer_hook * type_qualifier_list + // Rule 251: pointer_seq ::= pointer_hook * pointer_hook type_qualifier_list // case 251: { action. consumePointerTypeQualifierList(); break; } // - // Rule 255: parameter_type_list ::= parameter_list + // Rule 252: pointer_seq ::= pointer_seq pointer_hook * pointer_hook type_qualifier_list // - case 255: { action. consumeEmpty(); break; + case 252: { action. consumePointerTypeQualifierList(); break; } // - // Rule 256: parameter_type_list ::= parameter_list , ... + // Rule 256: parameter_type_list ::= parameter_list // - case 256: { action. consumePlaceHolder(); break; + case 256: { action. consumeEmpty(); break; } // - // Rule 257: parameter_type_list ::= ... + // Rule 257: parameter_type_list ::= parameter_list , ... // case 257: { action. consumePlaceHolder(); break; } // - // Rule 260: parameter_declaration ::= declaration_specifiers complete_parameter_declarator + // Rule 258: parameter_type_list ::= ... // - case 260: { action. consumeParameterDeclaration(); break; + case 258: { action. consumePlaceHolder(); break; } // - // Rule 261: parameter_declaration ::= declaration_specifiers + // Rule 261: parameter_declaration ::= declaration_specifiers complete_parameter_declarator // - case 261: { action. consumeParameterDeclarationWithoutDeclarator(); break; + case 261: { action. consumeParameterDeclaration(); break; } // - // Rule 264: type_id ::= specifier_qualifier_list + // Rule 262: parameter_declaration ::= declaration_specifiers // - case 264: { action. consumeTypeId(false); break; + case 262: { action. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 265: type_id ::= specifier_qualifier_list abstract_declarator + // Rule 265: type_id ::= specifier_qualifier_list // - case 265: { action. consumeTypeId(true); break; + case 265: { action. consumeTypeId(false); break; } // - // Rule 267: abstract_declarator ::= pointer_seq + // Rule 266: type_id ::= specifier_qualifier_list abstract_declarator // - case 267: { action. consumeDeclaratorWithPointer(false); break; + case 266: { action. consumeTypeId(true); break; } // - // Rule 268: abstract_declarator ::= pointer_seq direct_abstract_declarator + // Rule 268: abstract_declarator ::= pointer_seq // case 268: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 272: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 269: abstract_declarator ::= pointer_seq direct_abstract_declarator // - case 272: { action. consumeDirectDeclaratorBracketed(); break; + case 269: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 273: array_direct_abstract_declarator ::= array_modifier + // Rule 273: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 273: { action. consumeDirectDeclaratorArrayDeclarator(false); break; + case 273: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 274: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 274: array_direct_abstract_declarator ::= array_modifier // - case 274: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 274: { action. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 275: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 275: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // case 275: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 276: function_direct_abstract_declarator ::= ( ) + // Rule 276: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 276: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break; + case 276: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 277: function_direct_abstract_declarator ::= ( ) + // + case 277: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break; } // - // Rule 277: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( ) + // Rule 278: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( ) // - case 277: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; + case 278: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; } // - // Rule 278: function_direct_abstract_declarator ::= ( parameter_type_list ) + // Rule 279: function_direct_abstract_declarator ::= ( parameter_type_list ) // - case 278: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break; + case 279: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break; } // - // Rule 279: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_type_list ) + // Rule 280: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_type_list ) // - case 279: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; + case 280: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; } // - // Rule 280: initializer ::= assignment_expression + // Rule 281: initializer ::= assignment_expression // - case 280: { action. consumeInitializer(); break; + case 281: { action. consumeInitializer(); break; } // - // Rule 281: initializer ::= start_initializer_list { initializer_list comma_opt } end_initializer_list - // - case 281: { action. consumeInitializerList(); break; - } - - // - // Rule 282: initializer ::= { } + // Rule 282: initializer ::= start_initializer_list { initializer_list comma_opt } end_initializer_list // case 282: { action. consumeInitializerList(); break; } // - // Rule 283: start_initializer_list ::= $Empty + // Rule 283: initializer ::= { } // - case 283: { action. initializerListStart(); break; + case 283: { action. consumeInitializerList(); break; } // - // Rule 284: end_initializer_list ::= $Empty + // Rule 284: start_initializer_list ::= $Empty // - case 284: { action. initializerListEnd(); break; + case 284: { action. initializerListStart(); break; } // - // Rule 289: designated_initializer ::= designation = initializer + // Rule 285: end_initializer_list ::= $Empty // - case 289: { action. consumeInitializerDesignated(); break; + case 285: { action. initializerListEnd(); break; } // - // Rule 293: designator_base ::= [ constant_expression ] + // Rule 290: designated_initializer ::= designation = initializer // - case 293: { action. consumeDesignatorArray(); break; + case 290: { action. consumeInitializerDesignated(); break; } // - // Rule 294: designator_base ::= . identifier_token + // Rule 294: designator_base ::= [ constant_expression ] // - case 294: { action. consumeDesignatorField(); break; + case 294: { action. consumeDesignatorArray(); break; } // - // Rule 295: designator ::= [ constant_expression ] + // Rule 295: designator_base ::= . identifier_token // - case 295: { action. consumeDesignatorArray(); break; + case 295: { action. consumeDesignatorField(); break; } // - // Rule 296: designator ::= . identifier_token + // Rule 296: designator ::= [ constant_expression ] // - case 296: { action. consumeDesignatorField(); break; + case 296: { action. consumeDesignatorArray(); break; } // - // Rule 297: translation_unit ::= external_declaration_list + // Rule 297: designator ::= . identifier_token // - case 297: { action. consumeTranslationUnit(); break; + case 297: { action. consumeDesignatorField(); break; + } + + // + // Rule 298: translation_unit ::= external_declaration_list + // + case 298: { action. consumeTranslationUnit(); break; } // - // Rule 298: translation_unit ::= $Empty + // Rule 299: translation_unit ::= $Empty // - case 298: { action. consumeTranslationUnit(); break; + case 299: { action. consumeTranslationUnit(); break; } // - // Rule 303: external_declaration ::= ; + // Rule 304: external_declaration ::= ; // - case 303: { action. consumeDeclarationEmpty(); break; + case 304: { action. consumeDeclarationEmpty(); break; } // - // Rule 304: external_declaration ::= ERROR_TOKEN + // Rule 305: external_declaration ::= ERROR_TOKEN // - case 304: { action. consumeDeclarationProblem(); break; + case 305: { action. consumeDeclarationProblem(); break; } // - // Rule 307: function_definition ::= declaration_specifiers function_declarator function_body + // Rule 308: function_definition ::= declaration_specifiers function_declarator function_body // - case 307: { action. consumeFunctionDefinition(true); break; + case 308: { action. consumeFunctionDefinition(true); break; } // - // Rule 308: function_definition ::= function_declarator function_body + // Rule 309: function_definition ::= function_declarator function_body // - case 308: { action. consumeFunctionDefinition(false); break; + case 309: { action. consumeFunctionDefinition(false); break; } // - // Rule 309: function_definition ::= declaration_specifiers knr_function_declarator declaration_list compound_statement + // Rule 310: function_definition ::= declaration_specifiers knr_function_declarator declaration_list compound_statement // - case 309: { action. consumeFunctionDefinitionKnR(); break; + case 310: { action. consumeFunctionDefinitionKnR(); break; } // - // Rule 310: function_body ::= { } + // Rule 311: function_body ::= { } // - case 310: { action. consumeStatementCompoundStatement(false); break; + case 311: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 311: function_body ::= { block_item_list } + // Rule 312: function_body ::= { block_item_list } // - case 311: { action. consumeStatementCompoundStatement(true); break; + case 312: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 313: expression_parser_start ::= ERROR_TOKEN + // Rule 314: expression_parser_start ::= ERROR_TOKEN // - case 313: { action. consumeEmpty(); break; + case 314: { action. consumeEmpty(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParserprs.java index 5619b866554..ec33f1d5a73 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParserprs.java @@ -34,184 +34,185 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 public interface BaseCheck { public final static short baseCheck[] = {0, - 0,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3,1,1, - 4,4,3,3,2,2,8,1,0,1, - 1,2,2,2,2,2,2,2,2,2, - 4,1,4,1,3,3,3,1,3,3, - 1,3,3,1,3,3,3,3,1,3, - 3,1,3,1,3,1,3,1,3,1, - 3,1,5,1,3,3,3,3,3,3, - 3,3,3,3,3,1,1,2,1,0, - 1,3,1,1,1,1,1,1,1,1, - 3,4,3,2,4,1,2,1,1,1, - 2,5,7,5,1,0,7,5,9,8, - 3,2,2,2,3,2,4,2,2,2, - 2,2,1,1,1,1,2,1,2,2, - 2,1,2,2,1,2,2,1,2,2, - 1,2,2,1,3,1,3,1,1,1, + 0,0,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,3,1, + 1,4,4,3,3,2,2,8,1,0, + 1,1,2,2,2,2,2,2,2,2, + 2,4,1,4,1,3,3,3,1,3, + 3,1,3,3,1,3,3,3,3,1, + 3,3,1,3,1,3,1,3,1,3, + 1,3,1,5,1,3,3,3,3,3, + 3,3,3,3,3,3,1,1,2,1, + 0,1,3,1,1,1,1,1,1,1, + 1,3,4,3,2,4,1,2,1,1, + 1,2,5,7,5,1,0,7,5,9, + 8,3,2,2,2,3,2,4,2,2, + 2,2,2,1,1,1,1,2,1,2, + 2,2,1,2,2,1,2,2,1,2, + 2,1,2,2,1,3,1,3,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,6,8, - 0,0,1,1,3,3,3,0,1,0, - 1,2,4,2,1,1,1,3,1,1, - 2,3,7,8,0,1,0,1,3,1, - 3,1,1,1,1,1,1,3,1,1, - 1,1,1,3,1,2,2,1,5,3, - 1,3,5,1,3,1,3,2,4,3, - 5,4,6,6,3,5,1,2,3,4, - 5,0,1,2,1,3,1,1,3,2, - 1,1,1,1,2,1,2,3,1,1, - 1,3,1,2,2,2,3,4,5,1, - 7,3,0,0,1,1,3,3,4,1, - 1,2,3,2,3,2,1,0,1,2, - 1,1,1,1,1,2,4,3,6,2, - 4,1,1,-37,0,0,0,0,0,0, - 0,0,0,0,-2,0,0,0,0,0, - 0,0,0,0,-159,0,0,-117,0,-4, + 1,1,1,1,1,1,1,1,1,6, + 8,0,0,1,1,3,3,3,0,1, + 0,1,2,4,2,1,1,1,3,1, + 1,2,3,7,8,0,1,0,1,3, + 1,3,1,1,1,1,1,1,3,1, + 1,1,1,1,3,1,2,2,1,5, + 3,1,3,5,1,3,1,3,2,4, + 3,5,4,6,6,3,5,1,3,4, + 5,6,0,1,2,1,3,1,1,3, + 2,1,1,1,1,2,1,2,3,1, + 1,1,3,1,2,2,2,3,4,5, + 1,7,3,0,0,1,1,3,3,4, + 1,1,2,3,2,3,2,1,0,1, + 2,1,1,1,1,1,2,4,3,6, + 2,4,1,1,-37,0,0,0,0,0, + 0,0,0,0,0,-159,0,0,0,0, + 0,0,0,0,0,-2,0,0,-4,-76, + -71,-77,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,-117, + 0,-118,0,-140,-14,0,0,0,0,0, + -5,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,-14,-76, - -165,-79,-118,0,0,0,0,0,0,-5, + 0,0,0,0,0,-187,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-56,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,0,0,-38,0,0,0,0,0, - 0,0,0,0,-119,0,0,-187,0,0, + 0,0,0,0,-196,0,0,-16,0,0, + 0,0,-30,0,0,-39,0,0,0,0, + 0,0,0,0,0,-31,0,0,-160,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-160,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-56, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-39,0,0, - 0,0,0,0,0,0,0,-120,0,0, - -16,0,0,0,0,-177,-17,0,-6,0, - 0,0,0,0,0,0,0,0,-74,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-121, - 0,-18,0,-183,0,0,0,0,0,0, - 0,0,0,0,-201,0,0,0,0,0, - 0,0,0,0,-3,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-52,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-71,0,-110,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-128,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-132,0,-144, - 0,-55,0,0,0,0,0,0,0,0, - 0,0,-107,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-27,0, - 0,0,0,0,0,0,0,0,0,-125, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-162,0,-19,0,-185,0,0,0, - 0,0,0,-7,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-57,0,0, - 0,0,0,0,0,0,0,0,-34,0, - 0,0,0,0,0,0,0,0,-58,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-59, - 0,0,0,0,0,0,0,0,0,0, - -35,0,0,0,0,0,0,0,0,0, - -60,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-61,0,0,0,0,0,0,0,0, - 0,0,-68,0,0,0,0,0,0,0, - 0,0,-62,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-63,0,0,0,0,0,0, - 0,0,0,0,-69,0,0,0,0,0, - 0,0,0,0,-64,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-65,0,0,0,0, - 0,0,0,0,0,0,-70,0,0,0, - 0,0,0,0,0,0,-66,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-67,0,0, - 0,0,0,0,0,0,0,0,-114,0, - 0,0,0,0,0,0,0,0,-145,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-146, - 0,0,0,0,0,0,0,0,0,0, - -130,0,0,0,0,0,0,0,0,0, - -163,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -186,0,0,0,0,0,0,0,0,0, - 0,-20,0,0,0,0,0,0,0,0, - -12,0,0,0,0,0,0,0,-8,0, - 0,0,0,0,0,0,-194,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-202,0,0,0, - 0,0,0,0,0,0,0,-80,0,0, - 0,0,0,0,0,0,-13,0,0,0, - 0,0,0,0,-9,0,0,0,0,0, - 0,0,-210,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-122,0,0,0,0,0,0,0, - 0,0,0,-131,0,0,0,0,0,0, - 0,0,-30,0,0,-21,-82,-22,-176,0, - -136,-113,0,0,0,0,0,0,0,0, - -112,0,-77,-149,-126,-135,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-83,0,0,0,0, - -23,0,-167,-32,-153,-87,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -24,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-53,0, - 0,0,0,0,0,0,0,0,0,-174, - 0,0,0,-116,0,-129,0,0,0,0, - 0,0,-138,-25,0,0,0,0,0,0, - 0,-158,0,0,0,0,-73,0,0,-191, - 0,-26,-88,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-49,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -141,-31,0,0,0,0,0,0,0,0, - -89,0,-90,-91,-92,0,-193,0,-50,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-51,0,0,0,0,0,0,0,0, - 0,0,-209,0,-143,0,0,-93,0,-111, - -127,0,0,0,-154,0,-200,-206,-150,-147, - 0,-43,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-94,-95,-96,0,0, - 0,-44,0,0,0,0,0,0,0,0, - 0,0,-45,0,0,0,0,0,0,0, - 0,0,0,-46,0,0,0,0,0,0, - 0,0,0,0,0,0,-47,0,0,0, - 0,0,0,0,0,0,-48,0,0,0, - 0,0,0,0,0,0,-204,-75,-78,-10, - 0,0,0,0,0,0,0,0,0,-11, - 0,0,0,0,0,0,0,-152,0,-151, - 0,0,-97,0,-168,0,0,0,0,-169, - 0,0,0,0,0,0,0,-211,-36,-164, - 0,0,0,0,0,0,0,0,0,0, - 0,-98,0,0,-157,0,-148,0,0,0, - 0,0,0,0,0,0,0,-85,0,-179, - 0,0,0,0,0,0,0,0,-139,-99, - 0,0,0,0,0,-40,0,0,0,0, - 0,0,0,-100,-101,-102,0,-41,0,0, - 0,0,0,0,0,-42,0,0,0,0, - 0,0,0,-72,0,0,0,0,0,0, - 0,-115,-188,-15,-172,-28,-195,0,-1,0, - -166,-175,0,0,0,0,0,0,0,0, - -207,0,0,-212,0,0,0,-103,0,0, - 0,-33,0,0,0,0,0,-29,0,0, - -180,0,0,-170,0,0,0,0,0,0, - 0,0,0,0,0,-173,0,-104,0,0, - -81,0,0,0,0,0,0,0,-192,-197, - 0,-84,0,-205,0,-171,0,-105,0,0, - -86,-156,0,0,-198,-108,-106,0,0,0, + 0,0,0,0,0,0,0,0,0,-74, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-184,-189,-190,-178,0,-196,0,0, - 0,-134,0,0,0,0,0,-109,0,0, - 0,0,0,-54,-199,-124,0,-133,0,0, - 0,0,-137,-142,0,-155,0,-161,0,-181, - -182,-203,-208,0,0,0,0,0,0,0, + -17,-107,0,0,-12,0,0,0,0,0, + 0,0,0,0,-119,0,-18,0,-6,0, + 0,0,0,0,0,0,0,0,-183,0, + 0,0,0,0,0,0,0,0,0,-34, + 0,0,0,0,0,0,0,0,0,-3, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -52,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-85,0,-110,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-82, + -19,-128,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-132,0,-129,0,-53,0,0,0, + 0,0,0,0,0,0,0,-20,0,0, + 0,-165,0,-125,0,0,0,0,-35,-79, + 0,0,0,0,-49,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-21,0,0,0,0, + 0,-120,0,0,0,0,0,0,-7,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-27,0,0,0,0,0,0,0, + 0,0,0,-68,0,0,0,0,0,0, + 0,0,0,-57,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-58,0,0,0,0,0, + 0,0,0,0,0,-69,0,0,0,0, + 0,0,0,0,0,-59,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-60,0,0,0, + 0,0,0,0,0,0,0,-70,0,0, + 0,0,0,0,0,0,0,-61,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-62,0, + 0,0,0,0,0,0,0,0,0,-114, + 0,0,0,0,0,0,0,0,0,-63, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -64,0,0,0,0,0,0,0,0,0, + 0,-130,0,0,0,0,0,0,0,0, + 0,-65,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-66,0,0,0,0,0,0,0, + 0,0,0,-154,0,0,0,0,0,0, + 0,0,0,-67,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-122,0,0,0,0,0, + 0,0,0,0,0,-171,0,0,0,0, + 0,0,0,0,0,-145,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-146,0,0,0, + 0,0,0,0,0,0,0,-22,0,0, + 0,0,0,0,0,0,0,-163,0,0, + 0,0,0,0,0,0,0,0,-80,0, + 0,0,0,0,0,0,0,-186,0,0, + 0,0,0,0,0,0,0,0,-83,0, + 0,0,0,0,0,0,0,-13,0,0, + 0,0,0,0,0,-8,0,0,0,0, + 0,0,0,-195,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-204,0,0,0,0,0,0, + 0,0,0,0,-139,0,0,0,0,0, + 0,0,0,-135,0,-121,0,0,-162,0, + 0,-23,-164,-185,0,-73,-24,-174,-78,-212, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-131, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-25,-143, + 0,0,0,0,0,0,0,-152,-200,-149, + 0,-207,0,0,0,0,0,0,0,0, + 0,-177,0,0,0,0,0,0,-136,0, + 0,-33,0,0,0,0,-189,0,0,0, + -87,0,0,0,0,0,0,0,0,0, + -192,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-176,-203,0,0,0, + 0,0,0,0,-47,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-180,0,-26,-88,0,0,-89, + -90,0,0,0,0,0,-50,0,0,0, + 0,0,0,0,0,0,0,-199,0,-51, + 0,0,0,0,0,0,0,0,0,0, + -193,0,0,0,-211,-91,0,-92,-93,0, + 0,0,-94,-194,0,0,-43,0,0,0, + 0,0,0,0,0,0,0,-44,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-198,-158,0,-95, + -96,0,0,-45,0,0,0,0,0,0, + 0,0,0,0,-46,0,0,0,0,0, + 0,0,0,0,0,-48,0,0,0,0, + 0,0,0,0,0,-206,0,0,-138,-111, + -116,-75,-127,-201,-147,-97,0,0,-98,0, + -150,0,0,-113,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-151,-213, + -81,0,0,0,0,0,0,0,-148,0, + 0,0,0,0,0,0,-141,-99,-100,0, + -101,-102,0,0,0,-103,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -9,0,0,0,0,0,0,0,-10,0, + 0,0,0,0,0,0,-11,0,0,0, + 0,0,0,0,-36,-40,0,0,0,0, + 0,0,0,-144,-157,0,-41,0,0,0, + 0,0,0,0,0,0,-104,-169,-105,-106, + 0,-42,0,0,0,0,0,0,0,-72, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-115,-15,-173,-172,-28,-166,-29,-167, + -32,-170,0,0,0,0,0,0,0,0, + 0,0,-184,-175,-202,0,-208,0,0,0, + 0,0,0,0,0,0,0,-214,-109,0, + -124,0,-84,0,0,0,0,0,0,0, + 0,0,0,-86,0,0,0,0,0,0, + 0,-108,0,0,0,0,0,-156,0,-190, + 0,0,0,0,-191,0,0,-133,0,-1, + 0,0,0,0,0,0,-178,0,0,-134, + 0,-197,0,-137,0,-112,-142,0,0,0, + 0,-179,0,-155,0,0,0,0,-126,0, + -209,0,0,-161,0,0,0,0,0,0, + 0,-181,-182,-205,0,-153,0,-54,0,-210, + 0,0,0,0,0,-168,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-188, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,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; @@ -221,185 +222,186 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 public interface BaseAction { public final static char baseAction[] = { - 87,11,24,24,21,21,32,32,70,70, - 1,1,2,2,2,2,3,3,3,4, - 5,5,5,5,5,5,5,5,51,51, - 71,6,6,6,6,6,6,6,6,6, - 6,6,7,7,8,8,8,8,9,9, - 9,10,10,10,12,12,12,12,12,13, - 13,13,14,14,15,15,16,16,17,17, - 18,18,19,19,20,20,20,20,20,20, - 20,20,20,20,20,20,101,41,33,88, - 88,73,73,47,102,102,102,102,102,102, - 102,103,103,103,104,104,109,109,110,110, - 105,105,106,106,106,112,112,107,107,107, - 107,108,108,108,108,108,111,111,25,25, - 25,25,25,27,27,27,79,79,74,74, - 74,74,75,75,75,76,76,76,77,77, - 77,78,78,78,113,113,114,114,115,28, - 30,30,30,30,30,52,54,54,54,54, - 54,54,54,54,54,54,54,54,64,61, - 61,89,90,65,65,62,62,62,66,80, - 80,81,81,67,67,67,42,91,91,82, - 83,83,83,63,63,92,84,84,85,85, - 68,68,22,23,23,23,29,48,48,34, - 34,34,34,37,37,39,35,35,36,40, - 40,116,116,38,117,117,93,93,26,26, - 26,26,26,26,26,26,26,86,49,49, - 49,49,31,56,56,55,55,55,57,57, - 50,50,94,94,60,60,58,58,58,43, - 43,43,44,45,45,45,46,46,46,46, - 53,53,53,59,95,72,72,72,72,69, - 96,97,97,98,98,99,99,118,118,119, - 119,120,120,120,120,122,122,121,121,121, - 123,123,87,87,1,1273,16,20,17,369, - 1272,44,497,491,695,44,532,1146,1022,1191, - 1148,1254,1211,74,91,738,134,212,65,1166, - 172,136,133,135,159,432,19,16,20,17, - 369,1272,44,497,491,695,397,532,1146,1022, - 1191,1148,1254,1211,74,280,138,27,165,663, - 365,738,634,161,186,142,145,148,151,1078, - 524,19,16,20,17,369,40,340,1449,372, - 1631,1642,1651,1196,134,212,274,694,285,144, - 133,135,159,282,1714,501,19,16,20,17, - 369,42,44,1311,286,161,185,1529,478,19, - 16,20,17,369,1272,44,497,491,695,397, - 532,1146,1022,1191,1148,1254,1211,74,280,326, - 19,16,20,17,369,1272,44,497,491,695, - 397,532,1146,1022,1191,1148,1254,1211,74,280, - 501,19,16,20,17,369,42,44,497,491, - 695,285,532,1146,1022,1191,1628,1714,501,19, - 16,20,17,369,42,44,1313,286,352,1713, - 1640,21,287,1718,1490,291,739,154,1714,501, - 19,16,20,17,369,42,39,1270,288,275, - 19,16,20,17,369,1272,44,497,491,695, - 1161,532,1146,1022,1191,1148,1254,1211,74,1350, - 161,187,6,238,455,19,16,20,17,369, - 1272,44,497,491,695,723,532,1146,1022,1191, - 1148,1254,1211,74,280,501,19,16,20,17, - 369,1272,44,497,491,695,194,532,1146,1022, - 1191,1148,1254,1211,74,91,501,19,16,20, - 17,369,42,44,497,491,695,289,532,1146, - 1022,1544,282,1714,570,19,16,20,17,369, - 1272,44,497,491,695,1165,532,1146,1022,1191, - 1148,1254,1211,74,1351,193,21,299,19,16, - 20,17,369,1272,44,497,491,695,340,532, - 1146,1022,1191,1148,1254,1211,74,1360,189,178, - 52,239,501,19,16,20,17,369,42,44, - 497,491,695,13,532,1146,1022,1191,1148,1598, - 134,212,253,212,345,136,133,135,159,501, - 19,16,20,17,369,1272,44,497,491,695, - 596,532,1146,1022,1191,1148,1254,1211,74,92, - 138,640,165,161,294,69,1475,161,296,142, - 145,148,151,1078,501,19,16,20,17,369, - 42,38,1449,372,1631,1642,1651,1196,501,19, - 16,20,17,369,1272,44,497,491,695,727, - 532,1146,1022,1191,1148,1254,1211,74,85,501, - 19,16,20,17,369,1272,44,497,491,695, - 1564,532,1146,1022,1191,1148,1254,1211,74,84, - 501,19,16,20,17,369,1272,44,497,491, - 695,727,532,1146,1022,1191,1148,1254,1211,74, - 83,501,19,16,20,17,369,1272,44,497, - 491,695,18,532,1146,1022,1191,1148,1254,1211, - 74,82,501,19,16,20,17,369,1272,44, - 497,491,695,727,532,1146,1022,1191,1148,1254, - 1211,74,81,501,19,16,20,17,369,1272, - 44,497,491,695,1648,532,1146,1022,1191,1148, - 1254,1211,74,80,501,19,16,20,17,369, - 1272,44,497,491,695,727,532,1146,1022,1191, - 1148,1254,1211,74,79,501,19,16,20,17, - 369,1272,44,497,491,695,1657,532,1146,1022, - 1191,1148,1254,1211,74,78,501,19,16,20, - 17,369,1272,44,497,491,695,727,532,1146, - 1022,1191,1148,1254,1211,74,77,501,19,16, - 20,17,369,1272,44,497,491,695,22,532, - 1146,1022,1191,1148,1254,1211,74,76,501,19, - 16,20,17,369,1272,44,497,491,695,727, - 532,1146,1022,1191,1148,1254,1211,74,75,501, - 19,16,20,17,369,1272,44,497,491,695, - 272,532,1146,1022,1191,1148,1254,1211,74,1480, - 501,19,16,20,17,369,1272,44,497,491, - 695,727,532,1146,1022,1191,1148,1254,1211,74, - 1614,501,19,16,20,17,369,42,44,497, - 491,695,278,532,1146,1022,1191,1148,1254,1211, - 93,501,19,16,20,17,369,42,44,497, - 491,695,67,532,1146,1022,1191,1148,1254,1211, - 93,547,19,16,20,17,369,33,1683,501, - 19,16,20,17,369,42,37,501,19,16, - 20,17,369,42,44,497,491,695,1688,532, - 1146,1022,1191,1148,1254,1211,93,501,19,16, - 20,17,369,42,44,497,491,695,125,532, - 1146,1022,1191,1148,1254,1211,93,547,19,16, - 20,17,369,32,211,501,19,16,20,17, - 369,42,36,501,19,16,20,17,369,42, - 44,497,491,695,201,532,1146,1022,1191,1148, - 1254,1211,93,501,19,16,20,17,369,42, - 44,497,491,695,151,532,1146,1022,1191,1148, - 1254,1211,73,161,30,1468,144,250,219,738, - 202,13,357,19,16,20,17,369,42,35, - 273,52,1652,673,711,52,157,338,217,1359, - 220,1470,222,223,228,1575,245,266,1163,370, - 271,179,262,253,212,276,413,253,212,275, - 273,191,263,52,605,710,189,178,217,1359, - 220,1470,222,223,228,555,638,266,1163,370, - 271,319,1646,373,24,253,212,1246,134,212, - 1134,1246,939,137,133,135,159,89,260,501, - 19,16,20,17,369,42,44,497,491,695, - 198,532,1146,1545,735,259,638,617,139,1573, - 165,949,415,13,281,1692,1716,143,146,149, - 152,1078,552,1720,1262,277,273,70,254,212, - 247,1706,554,593,218,1359,220,1470,222,223, - 228,1644,897,268,1163,370,271,501,19,16, - 20,17,369,42,44,497,491,695,1698,532, - 1473,13,161,30,217,1359,220,1470,222,223, - 228,156,371,350,415,460,1656,738,1722,501, - 19,16,20,17,369,42,44,497,491,695, - 208,1502,501,19,16,20,17,369,42,44, - 497,491,695,247,1530,647,1611,1721,483,203, - 282,282,197,199,1644,727,1193,738,738,682, - 282,545,501,19,16,20,17,369,42,44, - 497,491,1314,23,240,242,279,217,1359,220, - 1470,222,223,228,241,227,686,194,324,180, - 204,1722,501,19,16,20,17,369,42,44, - 497,491,1315,501,19,16,20,17,369,42, - 44,497,491,1348,501,19,16,20,17,369, - 42,44,497,491,1386,198,199,501,19,16, - 20,17,369,42,44,497,1387,501,19,16, - 20,17,369,42,44,497,1388,484,717,232, - 501,19,16,20,17,369,42,35,1644,1572, - 501,19,16,20,17,369,42,34,70,276, - 701,134,212,575,273,684,141,133,135,159, - 282,217,1359,220,1470,222,223,228,748,241, - 736,266,1163,370,271,1646,226,254,212,1698, - 1267,140,50,165,243,13,939,357,19,16, - 20,17,369,42,35,273,1520,1240,437,1706, - 552,1720,218,1359,220,1470,222,223,228,742, - 57,246,266,1163,370,271,501,19,16,20, - 17,369,42,47,323,428,104,265,501,19, - 16,20,17,369,42,46,501,19,16,20, - 17,369,42,45,408,19,16,20,17,369, - 42,43,307,718,13,307,13,161,1720,380, - 335,13,13,638,530,314,638,314,208,292, - 555,738,418,1685,211,254,212,1134,513,196, - 1134,196,13,1698,1639,1721,1698,87,13,87, - 488,745,87,555,282,771,1489,771,1489,314, - 312,1656,258,1594,1240,258,735,981,656,1708, - 981,643,1708,196,729,87,813,1684,244,745, - 742,87,672,592,70,209,727,230,97,771, - 1489,681,48,134,212,727,242,351,147,133, - 135,159,1317,638,134,212,325,224,855,150, - 133,135,159,134,212,1698,229,196,153,133, - 135,159,273,282,110,142,95,1706,282,281, - 1358,1591,615,1488,496,638,638,638,532,268, - 1163,370,271,638,13,577,590,293,377,1134, - 196,196,295,509,751,555,754,1134,392,191, - 755,761,236,767,1789,1789,233,496,496,1789, - 1789,1789,1149,1686,258,1789,1789,87,1789,1655, - 1789,1708,258,1789,1789,1546,1789,1355,1789,1708, - 1789,1789,191,192,1789,1789,1789,1789,1789,1789, - 1789,1789,1789,1789,1789,1357,1686,1789,1789,1789, - 1789,1789,1789,1789,1789,1789,1789,1705,1789,0, - 19,178,0,1,2014,0,1,2025,0 + 87,11,101,24,24,21,21,32,32,70, + 70,1,1,2,2,2,2,3,3,3, + 4,5,5,5,5,5,5,5,5,51, + 51,71,6,6,6,6,6,6,6,6, + 6,6,6,7,7,8,8,8,8,9, + 9,9,10,10,10,12,12,12,12,12, + 13,13,13,14,14,15,15,16,16,17, + 17,18,18,19,19,20,20,20,20,20, + 20,20,20,20,20,20,20,102,41,33, + 88,88,73,73,47,103,103,103,103,103, + 103,103,104,104,104,105,105,110,110,111, + 111,106,106,107,107,107,113,113,108,108, + 108,108,109,109,109,109,109,112,112,25, + 25,25,25,25,28,28,28,79,79,74, + 74,74,74,75,75,75,76,76,76,77, + 77,77,78,78,78,114,114,115,115,116, + 29,31,31,31,31,31,52,54,54,54, + 54,54,54,54,54,54,54,54,54,64, + 61,61,89,90,65,65,62,62,62,66, + 80,80,81,81,67,67,67,42,91,91, + 82,83,83,83,63,63,92,84,84,85, + 85,68,68,22,23,23,23,30,48,48, + 34,34,34,34,37,37,39,35,35,36, + 40,40,117,117,38,118,118,93,93,26, + 26,26,26,26,26,26,26,26,86,49, + 49,49,49,27,56,56,55,55,55,57, + 57,50,50,94,94,60,60,58,58,58, + 43,43,43,44,45,45,45,46,46,46, + 46,53,53,53,59,95,72,72,72,72, + 69,96,97,97,98,98,99,99,119,119, + 120,120,121,121,121,121,123,123,122,122, + 122,124,124,87,87,1,1307,17,21,18, + 375,1306,45,531,468,641,738,547,716,678, + 1162,1048,1209,1167,75,92,44,135,213,172, + 365,282,673,137,134,136,160,501,20,17, + 21,18,375,43,45,531,468,641,28,547, + 716,678,1162,1048,1496,22,275,139,276,166, + 65,1154,161,187,694,663,143,146,149,152, + 1069,524,20,17,21,18,375,41,339,1169, + 690,1471,1623,1634,1251,432,20,17,21,18, + 375,1306,45,531,468,641,374,547,716,678, + 1162,1048,1209,1167,75,281,478,20,17,21, + 18,375,1306,45,531,468,641,374,547,716, + 678,1162,1048,1209,1167,75,281,501,20,17, + 21,18,375,43,45,531,468,641,286,547, + 716,678,1162,1557,1677,501,20,17,21,18, + 375,43,45,1310,287,161,1702,1145,21,286, + 1694,1163,292,161,31,1677,501,20,17,21, + 18,375,43,45,1311,287,161,31,1387,326, + 20,17,21,18,375,1306,45,531,468,641, + 374,547,716,678,1162,1048,1209,1167,75,281, + 275,20,17,21,18,375,1306,45,531,468, + 641,1676,547,716,678,1162,1048,1209,1167,75, + 1430,154,13,210,239,547,20,17,21,18, + 375,34,288,395,25,161,186,6,1677,501, + 20,17,21,18,375,43,40,24,289,455, + 20,17,21,18,375,1306,45,531,468,641, + 727,547,716,678,1162,1048,1209,1167,75,281, + 501,20,17,21,18,375,1306,45,531,468, + 641,1570,547,716,678,1162,1048,1209,1167,75, + 92,501,20,17,21,18,375,43,45,531, + 468,641,290,547,716,678,1489,437,1677,570, + 20,17,21,18,375,1306,45,531,468,641, + 1689,547,716,678,1162,1048,1209,1167,75,1433, + 250,69,299,20,17,21,18,375,1306,45, + 531,468,641,339,547,716,678,1162,1048,1209, + 1167,75,1435,189,179,596,240,501,20,17, + 21,18,375,43,45,531,468,641,67,547, + 716,1491,738,1156,70,135,213,255,213,727, + 634,137,134,136,160,501,20,17,21,18, + 375,43,45,531,468,641,372,547,1436,722, + 19,1544,135,213,283,139,144,166,145,134, + 136,160,352,1674,143,146,149,152,1069,501, + 20,17,21,18,375,43,39,1169,690,1471, + 1623,1634,1251,501,20,17,21,18,375,1306, + 45,531,468,641,727,547,716,678,1162,1048, + 1209,1167,75,93,501,20,17,21,18,375, + 1306,45,531,468,641,1559,547,716,678,1162, + 1048,1209,1167,75,86,501,20,17,21,18, + 375,1306,45,531,468,641,727,547,716,678, + 1162,1048,1209,1167,75,85,501,20,17,21, + 18,375,1306,45,531,468,641,1560,547,716, + 678,1162,1048,1209,1167,75,84,501,20,17, + 21,18,375,1306,45,531,468,641,727,547, + 716,678,1162,1048,1209,1167,75,83,501,20, + 17,21,18,375,1306,45,531,468,641,23, + 547,716,678,1162,1048,1209,1167,75,82,501, + 20,17,21,18,375,1306,45,531,468,641, + 727,547,716,678,1162,1048,1209,1167,75,81, + 501,20,17,21,18,375,1306,45,531,468, + 641,273,547,716,678,1162,1048,1209,1167,75, + 80,501,20,17,21,18,375,1306,45,531, + 468,641,727,547,716,678,1162,1048,1209,1167, + 75,79,501,20,17,21,18,375,1306,45, + 531,468,641,279,547,716,678,1162,1048,1209, + 1167,75,78,501,20,17,21,18,375,1306, + 45,531,468,641,727,547,716,678,1162,1048, + 1209,1167,75,77,501,20,17,21,18,375, + 1306,45,531,468,641,280,547,716,678,1162, + 1048,1209,1167,75,76,501,20,17,21,18, + 375,1306,45,531,468,641,727,547,716,678, + 1162,1048,1209,1167,75,74,501,20,17,21, + 18,375,1306,45,531,468,641,225,547,716, + 678,1162,1048,1209,1167,75,1558,501,20,17, + 21,18,375,1306,45,531,468,641,219,547, + 716,678,1162,1048,1209,1167,75,1592,501,20, + 17,21,18,375,43,45,531,468,641,125, + 547,716,678,1162,1048,1209,1167,94,501,20, + 17,21,18,375,43,45,531,468,641,413, + 547,716,678,1162,1048,1209,1167,94,547,20, + 17,21,18,375,33,1603,501,20,17,21, + 18,375,43,38,501,20,17,21,18,375, + 43,45,531,468,641,1672,547,716,678,1162, + 1048,1209,1167,94,501,20,17,21,18,375, + 43,45,531,468,641,742,547,716,678,1162, + 1048,1209,1167,94,157,545,161,188,370,161, + 295,212,191,736,161,297,70,319,198,232, + 501,20,17,21,18,375,43,45,531,468, + 641,202,547,716,678,1162,1048,1209,1167,94, + 151,135,213,1619,274,1621,326,142,134,136, + 160,1218,219,1441,221,1469,223,224,229,281, + 70,269,342,340,272,1642,274,203,70,727, + 711,141,70,166,218,1441,221,1469,223,224, + 229,1586,739,267,342,340,272,1590,263,13, + 230,277,13,1261,1684,1619,274,684,264,1619, + 1648,189,179,580,218,1441,221,1469,223,224, + 229,247,293,267,342,340,272,1168,1006,255, + 213,1470,1222,135,213,88,738,723,880,138, + 134,136,160,341,261,501,20,17,21,18, + 375,43,45,531,1390,218,1441,221,1469,223, + 224,229,195,140,745,166,554,593,180,1704, + 156,350,144,147,150,153,1069,501,20,17, + 21,18,375,43,45,531,468,641,718,1439, + 501,20,17,21,18,375,43,45,531,468, + 641,745,1488,198,200,247,415,194,460,483, + 255,213,1277,686,738,1354,1222,501,20,17, + 21,18,375,43,45,531,468,1346,501,20, + 17,21,18,375,43,45,531,468,1348,218, + 1441,221,1469,223,224,229,204,742,552,1702, + 194,324,1607,1704,501,20,17,21,18,375, + 43,45,531,468,1349,501,20,17,21,18, + 375,43,45,531,468,1353,501,20,17,21, + 18,375,43,45,531,1391,484,199,200,13, + 282,735,717,282,577,282,575,1222,1691,50, + 1388,682,1670,1583,357,20,17,21,18,375, + 43,36,278,277,241,234,209,243,274,242, + 218,1441,221,1469,223,224,229,228,246,701, + 748,643,1304,1703,1006,267,342,340,272,357, + 20,17,21,18,375,43,36,13,57,323, + 880,428,104,135,213,227,513,1621,682,148, + 134,136,160,247,219,1441,221,1469,223,224, + 229,501,20,17,21,18,375,43,37,501, + 20,17,21,18,375,43,36,501,20,17, + 21,18,375,43,35,241,501,20,17,21, + 18,375,43,48,638,13,1166,501,20,17, + 21,18,375,43,47,1716,1682,656,282,97, + 351,274,501,20,17,21,18,375,43,46, + 408,20,17,21,18,375,43,44,267,342, + 340,272,244,307,13,735,307,13,13,13, + 647,605,282,266,663,315,1650,663,315,416, + 315,1730,580,282,13,738,231,738,1190,197, + 1619,1190,197,1619,197,1655,245,88,211,532, + 88,590,88,672,90,689,1535,294,689,1535, + 689,1535,1642,259,681,1168,259,181,922,205, + 1658,922,242,1658,570,135,213,754,48,796, + 110,151,134,136,160,142,135,213,377,663, + 380,663,154,134,136,160,663,95,274,1621, + 615,580,282,197,509,1190,52,751,663,838, + 197,663,552,1702,754,269,342,340,272,52, + 1232,738,197,88,392,1190,296,1232,254,213, + 259,313,755,761,236,1219,710,1658,13,1232, + 767,254,213,282,1798,192,52,663,1798,580, + 259,1798,192,1618,1798,964,1798,1658,1276,1667, + 52,1190,665,1798,193,1605,1667,1798,254,213, + 1798,88,1798,1434,1798,665,1798,336,1798,1492, + 209,1798,254,213,1798,1798,260,1798,1798,1798, + 1798,1798,642,1798,1798,1798,1341,1703,1798,1798, + 1798,1798,1247,1798,1798,1016,1798,1798,1798,1798, + 1798,1798,1798,1798,1798,1798,1328,1798,0,20, + 179,0,1,2024,0,1,2035,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -503,88 +505,88 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 public interface TermAction { public final static char termAction[] = {0, - 1789,1799,1574,1800,1450,59,2002,2003,2004,1095, - 1039,1460,1,1087,1031,380,1801,1802,1803,1804, - 51,704,499,1951,1952,1950,2005,1953,1949,478, - 405,1956,1961,1960,1958,1959,1957,1962,1963,1955, - 1964,1965,1966,1789,1518,1186,1147,1789,1,61, - 1,1789,190,1,1,1,60,2002,2003,2004, - 1414,1403,1392,1362,1789,1799,64,1800,54,252, - 1,1,1,1,1,1,1151,1287,1,1, + 1798,1809,1584,1810,1519,60,2012,2013,2014,1511, + 1106,1527,1,1098,535,381,1811,1812,1813,1814, + 52,729,549,1961,1962,1960,2015,1963,1959,476, + 455,1966,1971,1970,1968,1969,1967,1972,1973,1965, + 1974,1975,1976,1798,617,1089,640,1798,1,62, + 1,1798,191,1,1,1,61,2012,2013,2014, + 1405,1394,1368,1357,1798,1809,65,1810,55,253, + 1,1,1,1,1,1,1239,695,1,1, 1,1,1,1,1,1,1,1,1,1, - 190,1,1,1,1789,1,41,1,1984,189, - 1,1,1,1789,1414,1403,1392,1362,653,1, - 1786,1414,1403,1392,1362,1427,1437,1,1,1, - 1,1,1,1779,181,1,1,1,1,1, - 1,1,1,1,1,1,1,189,1,1, - 1,1789,1,62,1,1984,190,1,1,1, - 261,2014,1164,48,1,50,182,1556,2046,1556, - 1789,1799,1123,1800,1,1,1,1,1,1, - 509,88,1,1,1,1,1,1,1,1, - 1,1,1,1,190,1,1,1,1789,1799, - 66,1800,1984,53,2002,2003,2004,267,2014,1164, - 669,252,478,405,1332,1319,1548,1536,1548,1536, - 284,1951,1952,1950,2005,1953,1949,509,68,1956, - 1961,1960,1958,1959,1957,1962,1963,1955,1964,1965, - 1966,128,1518,1186,1147,200,1789,2002,2003,2004, - 264,267,1448,1448,1,252,1,2014,1447,184, - 2862,1789,2862,1229,1951,1952,1950,2005,1953,1949, - 509,509,1956,1961,1960,1958,1959,1957,1962,1963, - 1955,1964,1965,1966,1,1799,1574,1800,1152,1792, - 70,1789,576,1095,1039,1460,1792,1087,1031,380, - 1801,1802,1803,1804,1103,704,499,594,1789,1799, - 1574,1800,1507,1792,1789,1067,1,1095,1039,1460, - 252,1087,1031,380,1801,1802,1803,1804,72,704, - 499,970,67,52,1791,1,1799,1574,1800,1450, - 28,1791,478,405,1095,1039,1460,2855,1087,1031, - 380,1801,1802,1803,1804,460,704,499,1791,49, - 1789,1789,1799,1556,1800,2046,1789,1799,1574,1800, - 1450,1792,653,1253,270,1095,1039,1460,28,1087, - 1031,380,1801,1802,1803,1804,255,704,499,1789, - 1,1,1,1,509,1229,642,1704,1,1, - 1,1789,1,1,1,1,1,1,1,1789, - 1,1,1548,1536,1789,1195,1791,1789,1799,1574, - 1800,1450,183,2866,58,2866,1095,1039,1460,653, - 1087,1031,380,1801,1802,1803,1804,65,704,499, - 2102,1,1799,1574,1800,1450,205,2872,1287,2872, - 1095,1039,1460,2855,1087,1031,380,1801,1802,1803, - 1804,534,704,499,1789,1799,1574,1800,1450,57, - 1789,1427,1437,1095,1039,1460,2855,1087,1031,380, - 1801,1802,1803,1804,1789,704,499,1,1799,1574, - 1800,1450,56,1,2014,1447,1095,1039,1460,2855, - 1087,1031,380,1801,1802,1803,1804,1789,704,499, - 1789,1799,1574,1800,1450,1789,1427,1437,1789,1095, - 1039,1460,71,1087,1031,380,1801,1802,1803,1804, - 1505,704,499,1789,1799,1576,1800,1450,1789,1427, - 1437,1789,1095,1039,1460,680,1087,1031,380,1801, - 1802,1803,1804,1789,704,499,1789,1799,1608,1800, - 1450,207,1799,42,1800,1095,1039,1460,1789,1087, - 1031,380,1801,1802,1803,1804,1789,704,499,1, - 1799,1574,1800,1450,63,1789,1789,460,1095,1039, - 1460,1794,1087,1031,380,1801,1802,1803,1804,1789, - 704,499,19,1345,1780,248,1780,1780,178,178, - 178,1,1,1,1,1723,1793,206,1577,90, - 1577,1789,1780,928,1,178,178,178,178,178, - 178,1789,1780,907,886,865,844,823,781,802, - 760,739,718,129,90,1332,1319,247,1789,2002, - 2003,2004,130,2002,2003,2004,249,1789,2002,2003, - 2004,1789,1,1,1,69,1951,1952,1950,2005, - 1953,1949,31,2046,1194,1951,1952,1950,2005,1953, - 1949,131,269,1789,1244,1814,1815,2002,2003,2004, - 132,219,1602,250,1789,55,2002,2003,2004,2002, - 2003,2004,509,1789,1951,1952,1950,2005,1953,1949, - 221,509,1626,1951,1952,1950,2005,1953,1949,1, - 1,1783,1164,991,1302,1794,1,251,1448,576, - 509,1794,1789,2002,2003,2004,1789,1798,1789,1143, - 509,1794,1427,1437,1,290,509,1789,1,1794, - 1793,29,1796,1798,29,693,1793,252,2014,1447, - 1789,1343,283,1789,210,1011,1793,1301,2045,188, - 206,1789,1581,188,1793,1582,1789,2026,1789,188, - 439,184,1789,1817,1789,183,1789,1789,1789,1789, - 1795,205,1789,1789,1789,1789,1789,697,1797,2710, - 1789,1789,1789,1789,1789,1301,1789,1789,1789,1789, - 1789,1789,1789,1789,1797,1789,1789,1789,1789,1789, - 1789,1789,1789,1789,1047 + 191,1,1,1,1798,1,42,1,1994,190, + 1,1,1,1798,1405,1394,1368,1357,532,1, + 1795,1405,1394,1368,1357,1285,1416,1,1,1, + 1,1,1,1788,182,1,1,1,1,1, + 1,1,1,1,1,1,1,190,1,1, + 1,1798,1,63,1,1994,191,1,1,1, + 262,2024,1220,49,1,51,183,1562,2056,1562, + 1798,1809,995,1810,1,1,1,1,1,1, + 510,89,1,1,1,1,1,1,1,1, + 1,1,1,1,191,1,1,1,1798,1809, + 67,1810,1994,54,2012,2013,2014,268,2024,1220, + 743,253,476,455,1330,1317,1547,1536,1547,1536, + 285,1961,1962,1960,2015,1963,1959,510,69,1966, + 1971,1970,1968,1969,1967,1972,1973,1965,1974,1975, + 1976,129,617,1089,640,201,1798,2012,2013,2014, + 265,268,1432,1432,1,253,1,2024,1426,185, + 2872,1798,2872,667,1961,1962,1960,2015,1963,1959, + 510,510,1966,1971,1970,1968,1969,1967,1972,1973, + 1965,1974,1975,1976,1,1809,1584,1810,1444,1802, + 71,1798,601,1511,1106,1527,1802,1098,535,381, + 1811,1812,1813,1814,1170,729,549,619,1798,1809, + 1584,1810,1479,1802,1798,1134,1,1511,1106,1527, + 253,1098,535,381,1811,1812,1813,1814,73,729, + 549,1037,68,53,1801,1,1809,1584,1810,1519, + 29,1801,476,455,1511,1106,1527,2865,1098,535, + 381,1811,1812,1813,1814,437,729,549,1801,50, + 1798,1798,1809,1562,1810,2056,1798,1809,1584,1810, + 1519,1802,532,1429,271,1511,1106,1527,29,1098, + 535,381,1811,1812,1813,1814,256,729,549,1798, + 1,1,1,1,510,667,347,1708,1,1, + 1,1798,1,1,1,1,1,1,1,1798, + 1,1,1547,1536,1798,1706,1801,1798,1809,1584, + 1810,1519,184,2876,59,2876,1511,1106,1527,532, + 1098,535,381,1811,1812,1813,1814,66,729,549, + 2112,1,1809,1584,1810,1519,206,2882,695,2882, + 1511,1106,1527,2865,1098,535,381,1811,1812,1813, + 1814,559,729,549,1798,1809,1584,1810,1519,58, + 1798,1285,1416,1511,1106,1527,2865,1098,535,381, + 1811,1812,1813,1814,1798,729,549,1,1809,1584, + 1810,1519,57,1,2024,1426,1511,1106,1527,2865, + 1098,535,381,1811,1812,1813,1814,1798,729,549, + 1798,1809,1584,1810,1519,1798,1285,1416,1798,1511, + 1106,1527,72,1098,535,381,1811,1812,1813,1814, + 1545,729,549,1798,1809,1587,1810,1519,1798,1285, + 1416,1798,1511,1106,1527,684,1098,535,381,1811, + 1812,1813,1814,1798,729,549,1798,1809,1589,1810, + 1519,208,1809,43,1810,1511,1106,1527,1798,1098, + 535,381,1811,1812,1813,1814,1798,729,549,1, + 1809,1584,1810,1519,64,1798,1798,437,1511,1106, + 1527,1804,1098,535,381,1811,1812,1813,1814,1798, + 729,549,20,1210,1789,248,1789,1789,179,179, + 179,2012,2013,2014,1,1710,1803,207,465,91, + 465,1798,1789,974,1,179,179,179,179,179, + 179,1798,1789,953,932,911,890,869,827,848, + 806,785,764,130,91,1330,1317,249,1798,2012, + 2013,2014,131,1,1,1,250,1798,2012,2013, + 2014,1798,1,1,1,70,1961,1962,1960,2015, + 1963,1959,32,2056,1591,1961,1962,1960,2015,1963, + 1959,132,270,1798,1431,1824,1825,2012,2013,2014, + 133,220,1242,251,1798,56,2012,2013,2014,2012, + 2013,2014,510,1798,1961,1962,1960,2015,1963,1959, + 222,510,1585,1961,1962,1960,2015,1963,1959,1, + 1,1792,1220,1058,486,1804,1,252,1432,601, + 510,1804,1798,2012,2013,2014,1798,1808,1798,473, + 510,1804,1285,1416,1,291,510,1798,1,1804, + 1803,30,1806,1808,30,1159,1803,253,2024,1426, + 1798,1345,284,1798,211,1078,1803,1487,2055,189, + 207,1798,1588,189,1803,1604,1798,2036,1798,189, + 489,185,1798,1827,1798,184,1798,1798,1798,1798, + 1805,206,1798,1798,1798,1798,1798,1164,1807,2720, + 1798,1798,1798,1798,1798,1487,1798,1798,1798,1798, + 1798,1798,1798,1798,1807,1798,1798,1798,1798,1798, + 1798,1798,1798,1798,1114 }; }; public final static char termAction[] = TermAction.termAction; @@ -592,28 +594,28 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 public interface Asb { public final static char asb[] = {0, - 370,1,83,41,83,83,83,83,83,83, - 83,83,83,3,329,403,400,407,405,413, - 411,415,414,417,416,10,83,329,329,254, - 254,150,83,221,221,282,329,83,83,83, - 83,83,83,83,83,83,83,83,83,83, - 83,83,83,83,83,83,83,83,83,83, - 83,83,83,83,83,83,83,221,221,221, - 45,52,286,77,224,219,218,257,269,66, - 269,66,66,269,66,269,343,175,400,400, - 405,405,405,405,403,403,411,407,407,414, - 413,294,416,415,388,68,50,282,286,100, - 45,366,81,221,300,227,66,254,254,66, - 254,83,50,286,277,366,45,80,77,221, - 280,343,220,229,68,120,68,169,171,297, - 147,68,277,366,83,83,45,81,224,289, - 288,286,229,221,68,120,169,169,147,48, - 431,254,83,296,147,50,366,277,45,45, - 221,300,227,280,120,147,70,120,169,171, - 428,171,52,45,254,83,50,277,229,120, - 72,171,147,83,254,45,171,221,220,147, - 424,83,423,96,286,147,147,255,72,83, - 96,171 + 410,1,76,41,76,76,76,76,76,76, + 76,76,76,3,350,23,20,27,25,33, + 31,35,34,37,36,9,76,350,350,270, + 270,391,76,231,231,142,350,76,76,76, + 76,76,76,76,76,76,76,76,76,76, + 76,76,76,76,76,76,76,76,76,76, + 76,76,76,76,76,76,76,231,231,231, + 45,52,146,70,240,229,228,117,129,66, + 129,66,66,129,66,129,364,185,20,20, + 25,25,25,25,23,23,31,27,27,34, + 33,279,36,35,281,68,50,142,146,93, + 45,387,74,231,321,243,66,270,270,66, + 270,76,50,146,137,387,45,73,70,231, + 140,364,230,245,68,155,68,234,236,114, + 182,68,137,137,76,76,45,74,240,274, + 273,146,245,231,68,155,234,234,182,48, + 431,270,76,113,182,50,137,387,45,45, + 231,321,243,140,155,182,148,155,234,236, + 428,236,52,45,270,76,50,387,137,245, + 155,150,236,182,76,270,45,236,137,231, + 230,182,317,76,316,89,146,182,182,271, + 150,76,89,236 }; }; public final static char asb[] = Asb.asb; @@ -621,49 +623,49 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 public interface Asr { public final static byte asr[] = {0, - 80,0,66,20,2,52,67,13,14,11, - 4,9,10,53,54,47,48,55,56,57, - 58,61,62,63,64,65,68,69,43,60, - 70,71,72,73,74,76,75,77,78,79, + 80,0,20,2,52,67,13,14,60,70, + 71,72,73,74,76,75,77,78,79,4, + 53,54,9,10,48,47,55,56,57,58, + 61,62,11,63,64,65,43,66,68,69, 59,30,80,29,50,5,0,5,43,20, 52,13,14,11,4,9,10,21,22,15, - 2,16,17,18,19,1,3,12,0,66, - 5,4,1,2,59,0,6,7,8,23, - 50,5,16,17,18,19,3,13,14,11, - 9,10,21,22,15,4,2,1,0,6, - 7,8,2,16,17,18,19,1,3,13, - 14,11,4,9,10,21,22,15,0,24, - 31,6,32,44,25,33,26,34,35,27, - 7,36,37,23,45,28,46,38,39,8, - 40,41,42,1,3,51,5,43,0,5, - 30,15,16,17,18,19,1,3,2,13, - 14,11,4,9,10,21,22,0,1,3, - 5,43,29,0,7,23,28,8,27,26, + 2,16,17,18,19,1,3,12,0,6, + 7,8,23,50,5,16,17,18,19,3, + 13,14,11,9,10,21,22,15,4,2, + 1,0,6,7,8,2,16,17,18,19, + 1,3,13,14,11,4,9,10,21,22, + 15,0,60,20,52,0,39,31,36,34, + 35,33,32,37,38,40,41,42,59,66, + 28,25,23,24,27,26,6,7,8,29, + 1,5,30,2,20,4,0,66,5,4, + 1,2,59,0,24,31,6,32,44,25, + 33,26,34,35,27,7,36,37,23,45, + 28,46,38,39,8,40,41,42,1,3, + 51,5,43,0,7,23,28,8,27,26, 25,6,24,52,67,13,14,11,9,10, 53,54,47,48,55,56,57,58,61,62, 63,64,65,68,69,60,70,71,72,73, 74,75,76,77,78,79,4,2,20,29, - 30,5,0,4,2,20,30,5,24,31, - 6,32,44,25,33,26,34,35,27,7, - 36,37,23,45,28,46,38,39,8,40, - 41,42,49,3,1,0,39,31,36,34, - 35,33,32,37,38,40,41,42,59,66, - 28,25,23,24,27,26,6,7,8,29, - 1,5,30,2,20,4,0,2,5,29, - 30,66,20,59,0,60,20,52,0,4, - 24,31,6,32,44,25,33,26,34,35, - 27,7,36,37,23,45,28,46,38,39, - 8,40,41,42,1,3,49,0,15,16, - 17,18,19,2,13,14,11,4,9,10, - 21,22,1,3,44,45,46,39,31,36, - 34,35,33,32,37,38,40,41,42,28, - 25,23,24,27,26,6,7,8,0,15, + 30,5,0,1,3,5,43,29,0,4, + 2,20,30,5,24,31,6,32,44,25, + 33,26,34,35,27,7,36,37,23,45, + 28,46,38,39,8,40,41,42,49,3, + 1,0,2,5,29,30,66,20,59,0, + 11,4,9,10,53,54,47,48,55,56, + 57,58,61,62,63,64,65,68,69,60, + 70,71,72,73,74,75,76,77,78,79, + 50,30,43,80,12,59,66,5,29,0, + 4,24,31,6,32,44,25,33,26,34, + 35,27,7,36,37,23,45,28,46,38, + 39,8,40,41,42,1,3,49,0,15, + 16,17,18,19,2,13,14,11,4,9, + 10,21,22,1,3,44,45,46,39,31, + 36,34,35,33,32,37,38,40,41,42, + 28,25,23,24,27,26,6,7,8,0, + 5,30,15,16,17,18,19,1,3,2, + 13,14,11,4,9,10,21,22,0,15, 16,17,18,19,1,3,2,13,14,11, - 4,9,10,21,22,51,0,60,70,71, - 72,73,74,75,76,77,78,79,12,4, - 53,54,9,10,48,47,55,56,57,58, - 61,62,11,63,64,65,50,30,43,80, - 68,69,59,66,5,29,0,5,29,43, + 4,9,10,21,22,51,0,5,29,43, 60,0 }; }; @@ -672,28 +674,28 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 public interface Nasb { public final static byte nasb[] = {0, - 99,37,18,37,18,18,18,18,18,18, - 18,18,18,37,95,37,37,37,37,37, - 37,37,37,37,37,37,18,95,95,40, - 40,53,96,71,71,79,1,18,18,18, - 18,18,18,18,18,18,18,18,18,18, - 18,18,18,96,18,18,18,18,18,18, - 18,18,18,18,18,18,18,71,71,71, - 25,18,75,23,78,11,11,61,62,38, - 62,86,86,62,85,62,56,37,37,37, - 37,37,37,37,37,37,37,37,37,37, - 37,37,37,37,37,37,49,108,37,27, - 25,42,24,71,90,70,7,7,7,7, - 7,18,16,37,49,42,25,24,73,71, - 45,30,37,92,51,49,37,49,88,13, - 49,37,49,42,18,18,25,24,44,11, - 11,75,92,71,37,104,49,7,9,15, - 37,7,18,83,9,49,42,73,25,25, - 71,90,70,64,49,9,20,116,7,88, - 37,37,17,25,7,18,16,73,112,104, - 47,88,9,18,7,25,88,71,71,9, - 21,18,37,47,75,9,9,37,47,18, - 66,102 + 111,39,20,39,20,20,20,20,20,20, + 20,20,20,39,90,39,39,39,39,39, + 39,39,39,39,39,39,20,90,90,15, + 15,94,91,78,78,81,1,20,20,20, + 20,20,20,20,20,20,20,20,20,20, + 20,20,20,91,20,20,20,20,20,20, + 20,20,20,20,20,20,20,78,78,78, + 24,20,50,22,80,11,11,74,75,42, + 75,27,27,75,26,75,69,39,39,39, + 39,39,39,39,39,39,39,39,39,39, + 39,39,39,39,39,39,64,99,39,29, + 24,118,23,78,85,77,7,7,7,7, + 7,20,18,39,57,118,24,23,40,78, + 60,32,39,87,46,64,39,64,44,13, + 64,39,57,64,20,20,24,23,59,11, + 11,50,87,78,39,103,64,7,9,17, + 39,7,20,48,9,64,64,118,24,24, + 78,85,77,53,64,9,66,114,7,44, + 39,39,19,24,7,20,18,118,40,107, + 103,62,44,9,20,7,24,44,40,78, + 78,9,67,20,39,62,50,9,9,39, + 62,20,55,97 }; }; public final static byte nasb[] = Nasb.nasb; @@ -702,17 +704,17 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 public interface Nasr { public final static char nasr[] = {0, 79,77,76,65,75,74,1,0,32,0, - 26,0,97,0,69,11,59,5,0,11, - 70,0,11,5,24,0,5,11,0,79, - 78,77,76,65,75,74,0,89,0,71, - 0,56,0,21,45,44,37,35,11,0, - 90,0,11,88,0,65,61,62,63,64, - 52,27,0,45,44,37,35,31,0,11, - 21,0,22,0,31,49,0,21,44,45, - 11,0,99,0,92,66,0,51,0,31, - 49,11,25,0,42,11,41,0,11,87, - 0,95,0,81,11,42,0,45,44,31, - 0,93,11,25,0,11,42,67,0 + 26,0,97,0,71,0,69,11,59,5, + 0,11,5,24,0,92,66,0,5,11, + 0,79,78,77,76,65,75,74,0,22, + 0,89,0,51,0,90,0,99,0,27, + 49,0,45,44,37,35,27,0,21,45, + 44,37,35,11,0,11,70,0,65,61, + 62,63,64,52,28,0,11,21,0,21, + 44,45,11,0,27,49,11,25,0,42, + 11,41,0,11,88,0,95,0,45,44, + 27,0,81,11,42,0,93,11,25,0, + 11,87,0,11,42,67,0,56,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -738,18 +740,18 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, 100,0,0,0,102,106,107,108,109,110, - 0,111,112,113,114,115,116,117,118,119, - 97,129,0,96,122,150,128,0,0,0, - 0,98,0,146,148,0,149,0,0,0, - 101,141,159,160,161,0,121,137,147,156, - 0,131,136,0,151,154,155,158,0,104, - 132,133,134,135,138,0,140,145,162,99, - 103,105,120,123,124,125,126,127,130,0, - 139,143,0,0,144,153,95,0,0,0, - 142,0,152,157,0,163,164,0,165,0, + 0,111,112,113,114,115,116,117,0,118, + 97,128,0,96,121,149,0,127,0,0, + 0,98,0,145,147,0,148,0,0,0, + 101,140,158,159,160,0,120,136,146,155, + 0,130,135,0,150,153,154,157,0,104, + 131,132,133,134,137,0,139,144,161,99, + 103,105,119,122,123,124,125,126,129,0, + 138,142,0,0,143,152,95,0,0,0, + 141,0,151,156,0,162,163,0,164,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0 + 0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -779,9 +781,9 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 public interface ScopeLhs { public final static char scopeLhs[] = { - 63,61,5,63,26,26,61,53,106,46, + 63,61,5,63,26,26,61,53,107,46, 26,40,46,26,67,6,5,5,19,99, - 98,44,26,37,3,69,67,7,107,5, + 98,44,26,37,3,69,67,7,108,5, 67,40,38,40 }; }; @@ -812,20 +814,20 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 public interface ScopeRhs { public final static char scopeRhs[] = {0, - 140,20,0,96,0,189,104,0,31,136, + 140,20,0,96,0,189,104,0,31,135, 0,144,165,104,12,152,0,98,0,0, 148,104,2,137,0,97,0,148,104,2, 0,151,2,0,113,23,179,104,20,0, 113,179,104,23,20,0,113,23,20,0, 113,179,104,20,0,113,20,0,130,0, - 2,0,152,97,0,2,97,0,148,104, - 2,130,0,2,0,151,97,0,141,2, + 2,0,151,97,0,2,97,0,148,104, + 2,130,0,2,0,150,97,0,141,2, 0,144,177,104,12,94,185,44,0,98, 0,144,177,104,12,185,44,0,135,0, - 99,0,184,104,135,0,104,135,0,142, + 99,0,184,104,135,0,104,135,0,141, 99,0,173,104,12,183,94,182,158,0, - 173,104,12,182,158,0,195,85,0,77, - 2,101,97,99,0,195,114,134,2,89, + 173,104,12,182,158,0,196,85,0,77, + 2,101,97,99,0,196,114,134,2,89, 0,53,0,0,134,69,111,0,29,118, 0,153,2,0,97,107,0,153,2,15, 0,144,165,104,12,114,153,2,0,97, @@ -838,15 +840,15 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 public interface ScopeState { public final static char scopeState[] = {0, - 1490,0,1685,1686,1652,0,397,0,1488,1343, - 1447,1270,1240,1164,1134,0,638,1196,314,0, - 1470,1359,1163,370,1240,1164,1134,1656,1448,1489, - 0,1087,1031,380,1507,1152,1564,460,642,1229, - 576,1332,1319,1287,1437,1427,1414,1403,1392,1362, - 1556,1548,1536,478,405,1460,1450,1095,1039,704, - 499,1103,1067,1047,1011,991,970,949,617,1123, - 594,509,928,907,886,865,844,823,802,781, - 760,739,718,314,669,555,534,418,439,345, + 1163,0,1655,1667,1648,0,374,0,1470,1345, + 1426,1261,1168,1220,1190,0,663,1251,315,0, + 1469,1441,342,340,1168,1220,1190,1642,1432,1535, + 0,1098,535,381,1479,1444,1570,437,347,667, + 601,1330,1317,695,1416,1285,1405,1394,1368,1357, + 1562,1547,1536,476,455,1527,1519,1511,1106,729, + 549,1170,1134,1114,1078,1058,1037,1016,642,995, + 619,510,974,953,932,911,890,869,848,827, + 806,785,764,315,743,580,559,416,489,395, 0 }; }; @@ -865,18 +867,18 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 134,114,104,20,2,138,137,167,168,158, 169,46,45,170,44,171,172,94,101,101, 103,103,103,103,102,102,106,105,105,108, - 107,134,110,109,114,114,12,142,124,23, + 107,134,110,109,114,114,12,142,120,23, 113,104,4,151,104,2,182,159,159,185, - 159,59,104,124,4,104,113,179,149,148, + 159,59,104,120,4,104,113,179,149,148, 118,104,150,104,94,12,94,12,165,104, - 12,152,4,104,179,23,113,4,2,128, + 12,152,4,120,179,23,113,4,2,128, 130,104,29,148,183,104,12,104,144,29, - 189,52,20,190,104,12,104,149,113,113, + 189,52,20,190,104,12,120,104,113,113, 141,104,2,142,12,173,135,174,104,177, - 94,178,60,140,52,20,104,149,104,104, - 104,177,144,60,29,140,165,148,186,173, - 184,59,141,2,104,144,144,29,29,59, - 142,125 + 94,178,60,140,52,20,104,104,149,104, + 104,104,177,144,60,29,140,165,149,148, + 186,173,184,59,141,2,104,144,144,29, + 29,59,142,125 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -997,12 +999,11 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 "shift_expression", "relational_expression", "equality_expression", - "AND_expression", - "exclusive_OR_expression", - "inclusive_OR_expression", - "logical_AND_expression", - "logical_OR_expression", - "conditional_expression", + "and_expression", + "exclusive_or_expression", + "inclusive_or_expression", + "logical_and_expression", + "logical_or_expression", "assignment_expression", "expression_list_actual", "constant_expression", @@ -1072,20 +1073,20 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 212, + NUM_STATES = 214, NT_OFFSET = 93, - LA_STATE_OFFSET = 2102, + LA_STATE_OFFSET = 2112, MAX_LA = 2, - NUM_RULES = 313, - NUM_NONTERMINALS = 123, - NUM_SYMBOLS = 216, + NUM_RULES = 314, + NUM_NONTERMINALS = 124, + NUM_SYMBOLS = 217, SEGMENT_SIZE = 8192, - START_STATE = 1579, + START_STATE = 1660, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 80, EOLT_SYMBOL = 80, - ACCEPT_ACTION = 1779, - ERROR_ACTION = 1789; + ACCEPT_ACTION = 1788, + ERROR_ACTION = 1798; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParser.java index 41b85c47625..b480dbab101 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParser.java @@ -17,19 +17,28 @@ import lpg.lpgjavaruntime.*; import java.util.*; import org.eclipse.cdt.core.dom.ast.*; +import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter; +import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap; import org.eclipse.cdt.core.dom.lrparser.IParser; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.ITokenCollector; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack; +import org.eclipse.cdt.core.parser.IScanner; +import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider; +import org.eclipse.cdt.core.index.IIndex; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; +import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser; import org.eclipse.cdt.internal.core.dom.parser.c.CNodeFactory; import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction; import org.eclipse.cdt.core.dom.lrparser.action.c99.C99SecondaryParserFactory; -public class C99NoCastExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser< IASTExpression > +public class C99NoCastExpressionParser extends PrsStream implements RuleAction, ITokenStream, + ITokenCollector, IParser< IASTExpression > + , ISecondaryParser< IASTExpression > { private static ParseTable prs = new C99NoCastExpressionParserprs(); private FixedBacktrackingParser btParser; @@ -167,7 +176,11 @@ public class C99NoCastExpressionParser extends PrsStream implements RuleAction , private C99BuildASTParserAction action; private IASTCompletionNode compNode; -public C99NoCastExpressionParser() { // constructor + +public C99NoCastExpressionParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Set options) { + initActions(options); + action.initializeTranslationUnit(scanner, builtinBindingsProvider, index); + CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap); } private void initActions(Set options) { @@ -186,10 +199,9 @@ public void addToken(IToken token) { } -public IASTExpression parse(Set options) { +public IASTExpression parse() { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(options); final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse @@ -232,12 +244,12 @@ public void setTokens(List tokens) { addToken(new Token(null, 0, 0, C99NoCastExpressionParsersym.TK_EOF_TOKEN)); } -public C99NoCastExpressionParser(IParserActionTokenProvider parser) { // constructor +public C99NoCastExpressionParser(ITokenStream parser, Set options) { // constructor for creating secondary parser + initActions(options); tokenMap = new TokenMap(C99NoCastExpressionParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols()); } - public void ruleAction(int ruleNumber) { switch (ruleNumber) @@ -250,1005 +262,1011 @@ public C99NoCastExpressionParser(IParserActionTokenProvider parser) { // constr } // - // Rule 12: literal ::= integer + // Rule 2: ::= $Empty // - case 12: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break; + case 2: { action. consumeEmpty(); break; } // - // Rule 13: literal ::= floating + // Rule 13: literal ::= integer // - case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break; + case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break; } // - // Rule 14: literal ::= charconst + // Rule 14: literal ::= floating // - case 14: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break; + case 14: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break; } // - // Rule 15: literal ::= stringlit + // Rule 15: literal ::= charconst // - case 15: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break; + case 15: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break; } // - // Rule 17: primary_expression ::= primary_expression_id + // Rule 16: literal ::= stringlit // - case 17: { action. consumeExpressionID(); break; + case 16: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break; } // - // Rule 18: primary_expression ::= ( expression ) + // Rule 18: primary_expression ::= primary_expression_id // - case 18: { action. consumeExpressionBracketed(); break; + case 18: { action. consumeExpressionID(); break; } // - // Rule 21: postfix_expression ::= postfix_expression [ expression ] + // Rule 19: primary_expression ::= ( expression ) // - case 21: { action. consumeExpressionArraySubscript(); break; + case 19: { action. consumeExpressionBracketed(); break; } // - // Rule 22: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 22: postfix_expression ::= postfix_expression [ expression ] // - case 22: { action. consumeExpressionFunctionCall(); break; + case 22: { action. consumeExpressionArraySubscript(); break; } // - // Rule 23: postfix_expression ::= postfix_expression . member_name + // Rule 23: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 23: { action. consumeExpressionFieldReference(false); break; + case 23: { action. consumeExpressionFunctionCall(); break; } // - // Rule 24: postfix_expression ::= postfix_expression -> member_name + // Rule 24: postfix_expression ::= postfix_expression . member_name // - case 24: { action. consumeExpressionFieldReference(true); break; + case 24: { action. consumeExpressionFieldReference(false); break; } // - // Rule 25: postfix_expression ::= postfix_expression ++ + // Rule 25: postfix_expression ::= postfix_expression -> member_name // - case 25: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; + case 25: { action. consumeExpressionFieldReference(true); break; } // - // Rule 26: postfix_expression ::= postfix_expression -- + // Rule 26: postfix_expression ::= postfix_expression ++ // - case 26: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; + case 26: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 27: postfix_expression ::= ( type_id ) { initializer_list comma_opt } + // Rule 27: postfix_expression ::= postfix_expression -- // - case 27: { action. consumeExpressionTypeIdInitializer(); break; + case 27: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 32: unary_expression ::= ++ unary_expression + // Rule 28: postfix_expression ::= ( type_id ) { initializer_list comma_opt } // - case 32: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; + case 28: { action. consumeExpressionTypeIdInitializer(); break; } // - // Rule 33: unary_expression ::= -- unary_expression + // Rule 33: unary_expression ::= ++ unary_expression // - case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; + case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 34: unary_expression ::= & cast_expression + // Rule 34: unary_expression ::= -- unary_expression // - case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; + case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 35: unary_expression ::= * cast_expression + // Rule 35: unary_expression ::= & cast_expression // - case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; + case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 36: unary_expression ::= + cast_expression + // Rule 36: unary_expression ::= * cast_expression // - case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; + case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 37: unary_expression ::= - cast_expression + // Rule 37: unary_expression ::= + cast_expression // - case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; + case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 38: unary_expression ::= ~ cast_expression + // Rule 38: unary_expression ::= - cast_expression // - case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; + case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 39: unary_expression ::= ! cast_expression + // Rule 39: unary_expression ::= ~ cast_expression // - case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; + case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 40: unary_expression ::= sizeof unary_expression + // Rule 40: unary_expression ::= ! cast_expression // - case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; + case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 41: unary_expression ::= sizeof ( type_id ) + // Rule 41: unary_expression ::= sizeof unary_expression // - case 41: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break; + case 41: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 44: multiplicative_expression ::= multiplicative_expression * cast_expression + // Rule 42: unary_expression ::= sizeof ( type_id ) // - case 44: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break; + case 42: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break; } // - // Rule 45: multiplicative_expression ::= multiplicative_expression / cast_expression + // Rule 45: multiplicative_expression ::= multiplicative_expression * cast_expression // - case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break; + case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break; } // - // Rule 46: multiplicative_expression ::= multiplicative_expression % cast_expression + // Rule 46: multiplicative_expression ::= multiplicative_expression / cast_expression // - case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break; + case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break; } // - // Rule 48: additive_expression ::= additive_expression + multiplicative_expression + // Rule 47: multiplicative_expression ::= multiplicative_expression % cast_expression // - case 48: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break; + case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break; } // - // Rule 49: additive_expression ::= additive_expression - multiplicative_expression + // Rule 49: additive_expression ::= additive_expression + multiplicative_expression // - case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break; + case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break; } // - // Rule 51: shift_expression ::= shift_expression << additive_expression + // Rule 50: additive_expression ::= additive_expression - multiplicative_expression // - case 51: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break; + case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break; } // - // Rule 52: shift_expression ::= shift_expression >> additive_expression + // Rule 52: shift_expression ::= shift_expression << additive_expression // - case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break; + case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break; } // - // Rule 54: relational_expression ::= relational_expression < shift_expression + // Rule 53: shift_expression ::= shift_expression >> additive_expression // - case 54: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break; + case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break; } // - // Rule 55: relational_expression ::= relational_expression > shift_expression + // Rule 55: relational_expression ::= relational_expression < shift_expression // - case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break; + case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break; } // - // Rule 56: relational_expression ::= relational_expression <= shift_expression + // Rule 56: relational_expression ::= relational_expression > shift_expression // - case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break; + case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break; } // - // Rule 57: relational_expression ::= relational_expression >= shift_expression + // Rule 57: relational_expression ::= relational_expression <= shift_expression // - case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break; + case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break; } // - // Rule 59: equality_expression ::= equality_expression == relational_expression + // Rule 58: relational_expression ::= relational_expression >= shift_expression // - case 59: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break; + case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break; } // - // Rule 60: equality_expression ::= equality_expression != relational_expression + // Rule 60: equality_expression ::= equality_expression == relational_expression // - case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break; + case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break; } // - // Rule 62: AND_expression ::= AND_expression & equality_expression + // Rule 61: equality_expression ::= equality_expression != relational_expression // - case 62: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break; + case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break; } // - // Rule 64: exclusive_OR_expression ::= exclusive_OR_expression ^ AND_expression + // Rule 63: and_expression ::= and_expression & equality_expression // - case 64: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break; + case 63: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break; } // - // Rule 66: inclusive_OR_expression ::= inclusive_OR_expression | exclusive_OR_expression + // Rule 65: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 66: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break; + case 65: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break; } // - // Rule 68: logical_AND_expression ::= logical_AND_expression && inclusive_OR_expression + // Rule 67: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 68: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break; + case 67: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break; } // - // Rule 70: logical_OR_expression ::= logical_OR_expression || logical_AND_expression + // Rule 69: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 70: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break; + case 69: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break; } // - // Rule 72: conditional_expression ::= logical_OR_expression ? expression : conditional_expression + // Rule 71: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 72: { action. consumeExpressionConditional(); break; + case 71: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break; } // - // Rule 74: assignment_expression ::= unary_expression = assignment_expression + // Rule 73: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 74: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; + case 73: { action. consumeExpressionConditional(); break; } // - // Rule 75: assignment_expression ::= unary_expression *= assignment_expression + // Rule 75: assignment_expression ::= unary_expression = assignment_expression // - case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break; + case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; } // - // Rule 76: assignment_expression ::= unary_expression /= assignment_expression + // Rule 76: assignment_expression ::= unary_expression *= assignment_expression // - case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break; + case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 77: assignment_expression ::= unary_expression %= assignment_expression + // Rule 77: assignment_expression ::= unary_expression /= assignment_expression // - case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break; + case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break; } // - // Rule 78: assignment_expression ::= unary_expression += assignment_expression + // Rule 78: assignment_expression ::= unary_expression %= assignment_expression // - case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break; + case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break; } // - // Rule 79: assignment_expression ::= unary_expression -= assignment_expression + // Rule 79: assignment_expression ::= unary_expression += assignment_expression // - case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break; + case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break; } // - // Rule 80: assignment_expression ::= unary_expression <<= assignment_expression + // Rule 80: assignment_expression ::= unary_expression -= assignment_expression // - case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break; + case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break; } // - // Rule 81: assignment_expression ::= unary_expression >>= assignment_expression + // Rule 81: assignment_expression ::= unary_expression <<= assignment_expression // - case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break; + case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 82: assignment_expression ::= unary_expression &= assignment_expression + // Rule 82: assignment_expression ::= unary_expression >>= assignment_expression // - case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break; + case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 83: assignment_expression ::= unary_expression ^= assignment_expression + // Rule 83: assignment_expression ::= unary_expression &= assignment_expression // - case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break; + case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 84: assignment_expression ::= unary_expression |= assignment_expression + // Rule 84: assignment_expression ::= unary_expression ^= assignment_expression // - case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break; + case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 87: expression_list ::= expression_list_actual + // Rule 85: assignment_expression ::= unary_expression |= assignment_expression // - case 87: { action. consumeExpressionList(); break; + case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 89: expression_list_opt ::= $Empty + // Rule 88: expression_list ::= expression_list_actual // - case 89: { action. consumeEmpty(); break; + case 88: { action. consumeExpressionList(); break; } // - // Rule 99: statement ::= ERROR_TOKEN + // Rule 90: expression_list_opt ::= $Empty // - case 99: { action. consumeStatementProblem(); break; + case 90: { action. consumeEmpty(); break; } // - // Rule 100: labeled_statement ::= identifier_token : statement + // Rule 100: statement ::= ERROR_TOKEN // - case 100: { action. consumeStatementLabeled(); break; + case 100: { action. consumeStatementProblem(); break; } // - // Rule 101: labeled_statement ::= case constant_expression : statement + // Rule 101: labeled_statement ::= identifier_token : statement // - case 101: { action. consumeStatementCase(); break; + case 101: { action. consumeStatementLabeled(); break; } // - // Rule 102: labeled_statement ::= default : statement + // Rule 102: labeled_statement ::= case constant_expression : statement // - case 102: { action. consumeStatementDefault(); break; + case 102: { action. consumeStatementCase(); break; } // - // Rule 103: compound_statement ::= { } + // Rule 103: labeled_statement ::= default : statement // - case 103: { action. consumeStatementCompoundStatement(false); break; + case 103: { action. consumeStatementDefault(); break; } // - // Rule 104: compound_statement ::= { block_item_list } + // Rule 104: compound_statement ::= { } // - case 104: { action. consumeStatementCompoundStatement(true); break; + case 104: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 108: block_item ::= declaration + // Rule 105: compound_statement ::= { block_item_list } // - case 108: { action. consumeStatementDeclarationWithDisambiguation(); break; + case 105: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 109: expression_statement ::= ; + // Rule 109: block_item ::= declaration // - case 109: { action. consumeStatementNull(); break; + case 109: { action. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 110: expression_statement ::= expression_in_statement ; + // Rule 110: expression_statement ::= ; // - case 110: { action. consumeStatementExpression(); break; + case 110: { action. consumeStatementNull(); break; } // - // Rule 111: selection_statement ::= if ( expression ) statement + // Rule 111: expression_statement ::= expression_in_statement ; // - case 111: { action. consumeStatementIf(false); break; + case 111: { action. consumeStatementExpression(); break; } // - // Rule 112: selection_statement ::= if ( expression ) statement else statement + // Rule 112: selection_statement ::= if ( expression ) statement // - case 112: { action. consumeStatementIf(true); break; + case 112: { action. consumeStatementIf(false); break; } // - // Rule 113: selection_statement ::= switch ( expression ) statement + // Rule 113: selection_statement ::= if ( expression ) statement else statement // - case 113: { action. consumeStatementSwitch(); break; + case 113: { action. consumeStatementIf(true); break; } // - // Rule 115: expression_opt ::= $Empty + // Rule 114: selection_statement ::= switch ( expression ) statement // - case 115: { action. consumeEmpty(); break; + case 114: { action. consumeStatementSwitch(); break; } // - // Rule 116: iteration_statement ::= do statement while ( expression ) ; + // Rule 116: expression_opt ::= $Empty // - case 116: { action. consumeStatementDoLoop(); break; + case 116: { action. consumeEmpty(); break; } // - // Rule 117: iteration_statement ::= while ( expression ) statement + // Rule 117: iteration_statement ::= do statement while ( expression ) ; // - case 117: { action. consumeStatementWhileLoop(); break; + case 117: { action. consumeStatementDoLoop(); break; } // - // Rule 118: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement + // Rule 118: iteration_statement ::= while ( expression ) statement // - case 118: { action. consumeStatementForLoop(); break; + case 118: { action. consumeStatementWhileLoop(); break; } // - // Rule 119: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement + // Rule 119: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement // case 119: { action. consumeStatementForLoop(); break; } // - // Rule 120: jump_statement ::= goto identifier_token ; + // Rule 120: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement // - case 120: { action. consumeStatementGoto(); break; + case 120: { action. consumeStatementForLoop(); break; } // - // Rule 121: jump_statement ::= continue ; + // Rule 121: jump_statement ::= goto identifier_token ; // - case 121: { action. consumeStatementContinue(); break; + case 121: { action. consumeStatementGoto(); break; } // - // Rule 122: jump_statement ::= break ; + // Rule 122: jump_statement ::= continue ; // - case 122: { action. consumeStatementBreak(); break; + case 122: { action. consumeStatementContinue(); break; } // - // Rule 123: jump_statement ::= return ; + // Rule 123: jump_statement ::= break ; // - case 123: { action. consumeStatementReturn(false); break; + case 123: { action. consumeStatementBreak(); break; } // - // Rule 124: jump_statement ::= return expression ; + // Rule 124: jump_statement ::= return ; // - case 124: { action. consumeStatementReturn(true); break; + case 124: { action. consumeStatementReturn(false); break; } // - // Rule 125: declaration ::= declaration_specifiers ; + // Rule 125: jump_statement ::= return expression ; // - case 125: { action. consumeDeclarationSimple(false); break; + case 125: { action. consumeStatementReturn(true); break; } // - // Rule 126: declaration ::= declaration_specifiers init_declarator_list ; + // Rule 126: declaration ::= declaration_specifiers ; // - case 126: { action. consumeDeclarationSimple(true); break; + case 126: { action. consumeDeclarationSimple(false); break; } // - // Rule 127: declaration_specifiers ::= simple_declaration_specifiers + // Rule 127: declaration ::= declaration_specifiers init_declarator_list ; // - case 127: { action. consumeDeclarationSpecifiersSimple(); break; + case 127: { action. consumeDeclarationSimple(true); break; } // - // Rule 128: declaration_specifiers ::= struct_or_union_declaration_specifiers + // Rule 128: declaration_specifiers ::= simple_declaration_specifiers // - case 128: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; + case 128: { action. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 129: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 129: declaration_specifiers ::= struct_or_union_declaration_specifiers // case 129: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; } // - // Rule 130: declaration_specifiers ::= enum_declaration_specifiers + // Rule 130: declaration_specifiers ::= elaborated_declaration_specifiers // case 130: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; } // - // Rule 131: declaration_specifiers ::= typdef_name_declaration_specifiers + // Rule 131: declaration_specifiers ::= enum_declaration_specifiers // - case 131: { action. consumeDeclarationSpecifiersTypedefName(); break; + case 131: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; } // - // Rule 156: init_declarator ::= complete_declarator = initializer + // Rule 132: declaration_specifiers ::= typdef_name_declaration_specifiers // - case 156: { action. consumeDeclaratorWithInitializer(true); break; + case 132: { action. consumeDeclarationSpecifiersTypedefName(); break; } // - // Rule 158: storage_class_specifier ::= storage_class_specifier_token + // Rule 157: init_declarator ::= complete_declarator = initializer // - case 158: { action. consumeToken(); break; + case 157: { action. consumeDeclaratorWithInitializer(true); break; } // - // Rule 164: simple_type_specifier ::= simple_type_specifier_token + // Rule 159: storage_class_specifier ::= storage_class_specifier_token // - case 164: { action. consumeToken(); break; + case 159: { action. consumeToken(); break; } // - // Rule 177: type_name_specifier ::= identifier_token + // Rule 165: simple_type_specifier ::= simple_type_specifier_token // - case 177: { action. consumeToken(); break; + case 165: { action. consumeToken(); break; } // - // Rule 178: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { struct_declaration_list_opt } + // Rule 178: type_name_specifier ::= identifier_token // - case 178: { action. consumeTypeSpecifierComposite(false); break; + case 178: { action. consumeToken(); break; } // - // Rule 179: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { struct_declaration_list_opt } + // Rule 179: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { struct_declaration_list_opt } // - case 179: { action. consumeTypeSpecifierComposite(true); break; + case 179: { action. consumeTypeSpecifierComposite(false); break; } // - // Rule 184: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token + // Rule 180: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { struct_declaration_list_opt } // - case 184: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break; + case 180: { action. consumeTypeSpecifierComposite(true); break; } // - // Rule 185: elaborated_specifier ::= union elaborated_specifier_hook identifier_token + // Rule 185: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token // - case 185: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break; + case 185: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break; } // - // Rule 186: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token + // Rule 186: elaborated_specifier ::= union elaborated_specifier_hook identifier_token // - case 186: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break; + case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break; } // - // Rule 192: struct_declaration ::= specifier_qualifier_list struct_declarator_list ; + // Rule 187: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token // - case 192: { action. consumeStructDeclaration(true); break; + case 187: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break; } // - // Rule 193: struct_declaration ::= specifier_qualifier_list ; + // Rule 193: struct_declaration ::= specifier_qualifier_list struct_declarator_list ; // - case 193: { action. consumeStructDeclaration(false); break; + case 193: { action. consumeStructDeclaration(true); break; } // - // Rule 194: struct_declaration ::= ERROR_TOKEN + // Rule 194: struct_declaration ::= specifier_qualifier_list ; // - case 194: { action. consumeDeclarationProblem(); break; + case 194: { action. consumeStructDeclaration(false); break; } // - // Rule 200: struct_declarator ::= : constant_expression + // Rule 195: struct_declaration ::= ERROR_TOKEN // - case 200: { action. consumeBitField(false); break; + case 195: { action. consumeDeclarationProblem(); break; } // - // Rule 201: struct_declarator ::= declarator : constant_expression + // Rule 201: struct_declarator ::= : constant_expression // - case 201: { action. consumeBitField(true); break; + case 201: { action. consumeBitField(false); break; } // - // Rule 202: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } + // Rule 202: struct_declarator ::= declarator : constant_expression // - case 202: { action. consumeTypeSpecifierEnumeration(false); break; + case 202: { action. consumeBitField(true); break; } // - // Rule 203: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } + // Rule 203: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } // - case 203: { action. consumeTypeSpecifierEnumeration(true); break; + case 203: { action. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 209: enumerator ::= identifier_token + // Rule 204: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } // - case 209: { action. consumeEnumerator(false); break; + case 204: { action. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 210: enumerator ::= identifier_token = constant_expression + // Rule 210: enumerator ::= identifier_token // - case 210: { action. consumeEnumerator(true); break; + case 210: { action. consumeEnumerator(false); break; } // - // Rule 211: type_qualifier ::= type_qualifier_token + // Rule 211: enumerator ::= identifier_token = constant_expression // - case 211: { action. consumeToken(); break; + case 211: { action. consumeEnumerator(true); break; } // - // Rule 215: function_specifier ::= inline + // Rule 212: type_qualifier ::= type_qualifier_token // - case 215: { action. consumeToken(); break; + case 212: { action. consumeToken(); break; } // - // Rule 217: declarator ::= pointer_seq direct_declarator + // Rule 216: function_specifier ::= inline // - case 217: { action. consumeDeclaratorWithPointer(true); break; + case 216: { action. consumeToken(); break; } // - // Rule 222: basic_direct_declarator ::= declarator_id_name + // Rule 218: declarator ::= pointer_seq direct_declarator // - case 222: { action. consumeDirectDeclaratorIdentifier(); break; + case 218: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 223: basic_direct_declarator ::= ( declarator ) + // Rule 223: basic_direct_declarator ::= declarator_id_name // - case 223: { action. consumeDirectDeclaratorBracketed(); break; + case 223: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 224: declarator_id_name ::= identifier + // Rule 224: basic_direct_declarator ::= ( declarator ) // - case 224: { action. consumeIdentifierName(); break; + case 224: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 225: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 225: declarator_id_name ::= identifier // - case 225: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 225: { action. consumeIdentifierName(); break; } // - // Rule 226: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 226: array_direct_declarator ::= basic_direct_declarator array_modifier // case 226: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 228: function_direct_declarator ::= basic_direct_declarator ( parameter_type_list ) + // Rule 227: array_direct_declarator ::= array_direct_declarator array_modifier // - case 228: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; + case 227: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 229: function_direct_declarator ::= basic_direct_declarator ( ) + // Rule 229: function_direct_declarator ::= basic_direct_declarator ( parameter_type_list ) // - case 229: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; + case 229: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; } // - // Rule 231: function_declarator ::= pointer_seq function_direct_declarator + // Rule 230: function_direct_declarator ::= basic_direct_declarator ( ) // - case 231: { action. consumeDeclaratorWithPointer(true); break; + case 230: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; } // - // Rule 232: knr_direct_declarator ::= basic_direct_declarator ( identifier_list ) + // Rule 232: function_declarator ::= pointer_seq function_direct_declarator // - case 232: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break; + case 232: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 234: knr_function_declarator ::= pointer_seq knr_direct_declarator + // Rule 233: knr_direct_declarator ::= basic_direct_declarator ( identifier_list ) // - case 234: { action. consumeDeclaratorWithPointer(true); break; + case 233: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break; } // - // Rule 235: identifier_list ::= identifier + // Rule 235: knr_function_declarator ::= pointer_seq knr_direct_declarator // - case 235: { action. consumeIdentifierKnR(); break; + case 235: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 236: identifier_list ::= identifier_list , identifier + // Rule 236: identifier_list ::= identifier // case 236: { action. consumeIdentifierKnR(); break; } // - // Rule 237: array_modifier ::= [ ] + // Rule 237: identifier_list ::= identifier_list , identifier // - case 237: { action. consumeDirectDeclaratorArrayModifier(false); break; + case 237: { action. consumeIdentifierKnR(); break; } // - // Rule 238: array_modifier ::= [ array_modifier_type_qualifiers ] + // Rule 238: array_modifier ::= [ ] // - case 238: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break; + case 238: { action. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 239: array_modifier ::= [ assignment_expression ] + // Rule 239: array_modifier ::= [ array_modifier_type_qualifiers ] // - case 239: { action. consumeDirectDeclaratorArrayModifier(true); break; + case 239: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break; } // - // Rule 240: array_modifier ::= [ array_modifier_type_qualifiers assignment_expression ] + // Rule 240: array_modifier ::= [ assignment_expression ] // - case 240: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break; + case 240: { action. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 241: array_modifier ::= [ static assignment_expression ] + // Rule 241: array_modifier ::= [ array_modifier_type_qualifiers assignment_expression ] // - case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break; + case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break; } // - // Rule 242: array_modifier ::= [ static array_modifier_type_qualifiers assignment_expression ] + // Rule 242: array_modifier ::= [ static assignment_expression ] // - case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; + case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break; } // - // Rule 243: array_modifier ::= [ array_modifier_type_qualifiers static assignment_expression ] + // Rule 243: array_modifier ::= [ static array_modifier_type_qualifiers assignment_expression ] // case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; } // - // Rule 244: array_modifier ::= [ * ] + // Rule 244: array_modifier ::= [ array_modifier_type_qualifiers static assignment_expression ] // - case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break; + case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; } // - // Rule 245: array_modifier ::= [ array_modifier_type_qualifiers * ] + // Rule 245: array_modifier ::= [ * ] // - case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break; + case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break; } // - // Rule 247: pointer_seq ::= pointer_hook * + // Rule 246: array_modifier ::= [ array_modifier_type_qualifiers * ] // - case 247: { action. consumePointer(); break; + case 246: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break; } // - // Rule 248: pointer_seq ::= pointer_seq pointer_hook * + // Rule 248: pointer_seq ::= pointer_hook * pointer_hook // case 248: { action. consumePointer(); break; } // - // Rule 249: pointer_seq ::= pointer_hook * type_qualifier_list + // Rule 249: pointer_seq ::= pointer_seq pointer_hook * pointer_hook // - case 249: { action. consumePointerTypeQualifierList(); break; + case 249: { action. consumePointer(); break; } // - // Rule 250: pointer_seq ::= pointer_seq pointer_hook * type_qualifier_list + // Rule 250: pointer_seq ::= pointer_hook * pointer_hook type_qualifier_list // case 250: { action. consumePointerTypeQualifierList(); break; } // - // Rule 254: parameter_type_list ::= parameter_list + // Rule 251: pointer_seq ::= pointer_seq pointer_hook * pointer_hook type_qualifier_list // - case 254: { action. consumeEmpty(); break; + case 251: { action. consumePointerTypeQualifierList(); break; } // - // Rule 255: parameter_type_list ::= parameter_list , ... + // Rule 255: parameter_type_list ::= parameter_list // - case 255: { action. consumePlaceHolder(); break; + case 255: { action. consumeEmpty(); break; } // - // Rule 256: parameter_type_list ::= ... + // Rule 256: parameter_type_list ::= parameter_list , ... // case 256: { action. consumePlaceHolder(); break; } // - // Rule 259: parameter_declaration ::= declaration_specifiers complete_parameter_declarator + // Rule 257: parameter_type_list ::= ... // - case 259: { action. consumeParameterDeclaration(); break; + case 257: { action. consumePlaceHolder(); break; } // - // Rule 260: parameter_declaration ::= declaration_specifiers + // Rule 260: parameter_declaration ::= declaration_specifiers complete_parameter_declarator // - case 260: { action. consumeParameterDeclarationWithoutDeclarator(); break; + case 260: { action. consumeParameterDeclaration(); break; } // - // Rule 263: type_id ::= specifier_qualifier_list + // Rule 261: parameter_declaration ::= declaration_specifiers // - case 263: { action. consumeTypeId(false); break; + case 261: { action. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 264: type_id ::= specifier_qualifier_list abstract_declarator + // Rule 264: type_id ::= specifier_qualifier_list // - case 264: { action. consumeTypeId(true); break; + case 264: { action. consumeTypeId(false); break; } // - // Rule 266: abstract_declarator ::= pointer_seq + // Rule 265: type_id ::= specifier_qualifier_list abstract_declarator // - case 266: { action. consumeDeclaratorWithPointer(false); break; + case 265: { action. consumeTypeId(true); break; } // - // Rule 267: abstract_declarator ::= pointer_seq direct_abstract_declarator + // Rule 267: abstract_declarator ::= pointer_seq // case 267: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 271: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 268: abstract_declarator ::= pointer_seq direct_abstract_declarator // - case 271: { action. consumeDirectDeclaratorBracketed(); break; + case 268: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 272: array_direct_abstract_declarator ::= array_modifier + // Rule 272: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 272: { action. consumeDirectDeclaratorArrayDeclarator(false); break; + case 272: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 273: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 273: array_direct_abstract_declarator ::= array_modifier // - case 273: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 273: { action. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 274: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 274: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // case 274: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 275: function_direct_abstract_declarator ::= ( ) + // Rule 275: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 275: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break; + case 275: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 276: function_direct_abstract_declarator ::= ( ) + // + case 276: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break; } // - // Rule 276: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( ) + // Rule 277: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( ) // - case 276: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; + case 277: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; } // - // Rule 277: function_direct_abstract_declarator ::= ( parameter_type_list ) + // Rule 278: function_direct_abstract_declarator ::= ( parameter_type_list ) // - case 277: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break; + case 278: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break; } // - // Rule 278: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_type_list ) + // Rule 279: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_type_list ) // - case 278: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; + case 279: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; } // - // Rule 279: initializer ::= assignment_expression + // Rule 280: initializer ::= assignment_expression // - case 279: { action. consumeInitializer(); break; + case 280: { action. consumeInitializer(); break; } // - // Rule 280: initializer ::= start_initializer_list { initializer_list comma_opt } end_initializer_list - // - case 280: { action. consumeInitializerList(); break; - } - - // - // Rule 281: initializer ::= { } + // Rule 281: initializer ::= start_initializer_list { initializer_list comma_opt } end_initializer_list // case 281: { action. consumeInitializerList(); break; } // - // Rule 282: start_initializer_list ::= $Empty + // Rule 282: initializer ::= { } // - case 282: { action. initializerListStart(); break; + case 282: { action. consumeInitializerList(); break; } // - // Rule 283: end_initializer_list ::= $Empty + // Rule 283: start_initializer_list ::= $Empty // - case 283: { action. initializerListEnd(); break; + case 283: { action. initializerListStart(); break; } // - // Rule 288: designated_initializer ::= designation = initializer + // Rule 284: end_initializer_list ::= $Empty // - case 288: { action. consumeInitializerDesignated(); break; + case 284: { action. initializerListEnd(); break; } // - // Rule 292: designator_base ::= [ constant_expression ] + // Rule 289: designated_initializer ::= designation = initializer // - case 292: { action. consumeDesignatorArray(); break; + case 289: { action. consumeInitializerDesignated(); break; } // - // Rule 293: designator_base ::= . identifier_token + // Rule 293: designator_base ::= [ constant_expression ] // - case 293: { action. consumeDesignatorField(); break; + case 293: { action. consumeDesignatorArray(); break; } // - // Rule 294: designator ::= [ constant_expression ] + // Rule 294: designator_base ::= . identifier_token // - case 294: { action. consumeDesignatorArray(); break; + case 294: { action. consumeDesignatorField(); break; } // - // Rule 295: designator ::= . identifier_token + // Rule 295: designator ::= [ constant_expression ] // - case 295: { action. consumeDesignatorField(); break; + case 295: { action. consumeDesignatorArray(); break; } // - // Rule 296: translation_unit ::= external_declaration_list + // Rule 296: designator ::= . identifier_token // - case 296: { action. consumeTranslationUnit(); break; + case 296: { action. consumeDesignatorField(); break; + } + + // + // Rule 297: translation_unit ::= external_declaration_list + // + case 297: { action. consumeTranslationUnit(); break; } // - // Rule 297: translation_unit ::= $Empty + // Rule 298: translation_unit ::= $Empty // - case 297: { action. consumeTranslationUnit(); break; + case 298: { action. consumeTranslationUnit(); break; } // - // Rule 302: external_declaration ::= ; + // Rule 303: external_declaration ::= ; // - case 302: { action. consumeDeclarationEmpty(); break; + case 303: { action. consumeDeclarationEmpty(); break; } // - // Rule 303: external_declaration ::= ERROR_TOKEN + // Rule 304: external_declaration ::= ERROR_TOKEN // - case 303: { action. consumeDeclarationProblem(); break; + case 304: { action. consumeDeclarationProblem(); break; } // - // Rule 306: function_definition ::= declaration_specifiers function_declarator function_body + // Rule 307: function_definition ::= declaration_specifiers function_declarator function_body // - case 306: { action. consumeFunctionDefinition(true); break; + case 307: { action. consumeFunctionDefinition(true); break; } // - // Rule 307: function_definition ::= function_declarator function_body + // Rule 308: function_definition ::= function_declarator function_body // - case 307: { action. consumeFunctionDefinition(false); break; + case 308: { action. consumeFunctionDefinition(false); break; } // - // Rule 308: function_definition ::= declaration_specifiers knr_function_declarator declaration_list compound_statement + // Rule 309: function_definition ::= declaration_specifiers knr_function_declarator declaration_list compound_statement // - case 308: { action. consumeFunctionDefinitionKnR(); break; + case 309: { action. consumeFunctionDefinitionKnR(); break; } // - // Rule 309: function_body ::= { } + // Rule 310: function_body ::= { } // - case 309: { action. consumeStatementCompoundStatement(false); break; + case 310: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 310: function_body ::= { block_item_list } + // Rule 311: function_body ::= { block_item_list } // - case 310: { action. consumeStatementCompoundStatement(true); break; + case 311: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 312: no_cast_start ::= ERROR_TOKEN + // Rule 313: no_cast_start ::= ERROR_TOKEN // - case 312: { action. consumeEmpty(); break; + case 313: { action. consumeEmpty(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParserprs.java index 8f5cacf1022..e5eaae6b6a8 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParserprs.java @@ -34,185 +34,182 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseCheck { public final static short baseCheck[] = {0, - 0,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3,1,1, - 4,4,3,3,2,2,8,1,0,1, - 1,2,2,2,2,2,2,2,2,2, - 4,1,1,3,3,3,1,3,3,1, - 3,3,1,3,3,3,3,1,3,3, - 1,3,1,3,1,3,1,3,1,3, - 1,5,1,3,3,3,3,3,3,3, - 3,3,3,3,1,1,2,1,0,1, - 3,1,1,1,1,1,1,1,1,3, - 4,3,2,4,1,2,1,1,1,2, - 5,7,5,1,0,7,5,9,8,3, - 2,2,2,3,2,4,2,2,2,2, - 2,1,1,1,1,2,1,2,2,2, - 1,2,2,1,2,2,1,2,2,1, - 2,2,1,3,1,3,1,1,1,1, + 0,0,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,3,1, + 1,4,4,3,3,2,2,8,1,0, + 1,1,2,2,2,2,2,2,2,2, + 2,4,1,1,3,3,3,1,3,3, + 1,3,3,1,3,3,3,3,1,3, + 3,1,3,1,3,1,3,1,3,1, + 3,1,5,1,3,3,3,3,3,3, + 3,3,3,3,3,1,1,2,1,0, + 1,3,1,1,1,1,1,1,1,1, + 3,4,3,2,4,1,2,1,1,1, + 2,5,7,5,1,0,7,5,9,8, + 3,2,2,2,3,2,4,2,2,2, + 2,2,1,1,1,1,2,1,2,2, + 2,1,2,2,1,2,2,1,2,2, + 1,2,2,1,3,1,3,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,6,8,0, - 0,1,1,3,3,3,0,1,0,1, - 2,4,2,1,1,1,3,1,1,2, - 3,7,8,0,1,0,1,3,1,3, - 1,1,1,1,1,1,3,1,1,1, - 1,1,3,1,2,2,1,5,3,1, - 3,5,1,3,1,3,2,4,3,5, - 4,6,6,3,5,1,2,3,4,5, - 0,1,2,1,3,1,1,3,2,1, - 1,1,1,2,1,2,3,1,1,1, - 3,1,2,2,2,3,4,5,1,7, - 3,0,0,1,1,3,3,4,1,1, - 2,3,2,3,2,1,0,1,2,1, - 1,1,1,1,2,4,3,6,2,4, - 1,1,-32,0,0,0,0,0,0,0, - 0,0,0,-76,0,0,0,0,0,0, - 0,0,0,0,0,-78,-114,0,-2,0, + 1,1,1,1,1,1,1,1,6,8, + 0,0,1,1,3,3,3,0,1,0, + 1,2,4,2,1,1,1,3,1,1, + 2,3,7,8,0,1,0,1,3,1, + 3,1,1,1,1,1,1,3,1,1, + 1,1,1,3,1,2,2,1,5,3, + 1,3,5,1,3,1,3,2,4,3, + 5,4,6,6,3,5,1,3,4,5, + 6,0,1,2,1,3,1,1,3,2, + 1,1,1,1,2,1,2,3,1,1, + 1,3,1,2,2,2,3,4,5,1, + 7,3,0,0,1,1,3,3,4,1, + 1,2,3,2,3,2,1,0,1,2, + 1,1,1,1,1,2,4,3,6,2, + 4,1,1,-32,0,0,0,0,0,0, + 0,0,0,0,-156,0,0,0,0,0, + 0,0,0,0,0,0,-114,0,-72,-2, + -29,0,0,0,0,-54,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-137,0,-115,0, + -116,0,-4,0,0,0,0,0,-6,0, + 0,0,0,0,0,0,0,0,0,0, 0,0,0,-120,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-4,0,-15,-72,-115, - 0,-126,0,0,0,0,0,-110,0,0, + 0,0,0,0,-184,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-137,0,-116,0,-132, - 0,0,0,-6,0,0,0,0,0,0, - 0,0,0,-117,0,0,-184,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,-157,0,0, + 0,0,0,-110,0,0,0,0,0,0, + 0,0,0,0,0,0,-78,0,-15,-104, + -133,-33,0,0,-34,0,-16,0,-193,0, + 0,0,0,-117,0,-17,0,-157,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,-70,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-145,0,0,0, - 0,0,0,0,0,-16,-104,-17,0,0, - 0,0,0,0,-118,0,0,0,-79,-18, - 0,-19,-73,-147,-29,0,-70,0,0,0, + 0,0,0,0,0,0,0,0,0,-118, + 0,0,0,-5,0,0,0,0,0,0, + 0,0,-18,-86,0,0,0,-7,0,0, + 0,0,0,0,0,0,-180,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-3,0,0, + 0,0,0,0,0,0,0,0,-132,0, + 0,0,0,0,0,0,0,0,-51,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-30,0,-107,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-73,-125, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-180,0,0,0,0,0,0,0,0, - 0,0,-20,0,0,0,0,0,0,0, - 0,0,-3,0,0,0,0,0,0,0, + -129,0,-165,0,0,-83,0,-48,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-51,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-30, - 0,-107,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-67,0,0,0,0, + 0,0,-85,0,0,0,0,-52,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-21,-125,0,0,0,0,0, + 0,0,0,-19,0,0,-20,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-129,0,-141,0,-52, + -159,0,-182,0,0,0,0,0,0,0, + -27,0,0,0,0,0,0,0,0,0, + 0,-21,0,0,0,0,0,0,0,0, + 0,-56,0,0,0,0,0,0,0,0, + 0,0,-22,0,0,0,0,0,0,0, + 0,0,-57,0,0,0,0,0,0,0, + 0,0,0,-23,0,0,0,0,0,0, + 0,0,0,-58,0,0,0,0,0,0, + 0,0,0,0,-24,0,0,0,0,0, + 0,0,0,0,-59,0,0,0,0,0, + 0,0,0,0,0,-25,0,0,0,0, + 0,0,0,0,0,-60,0,0,0,0, + 0,0,0,0,0,0,-26,0,0,0, + 0,0,0,0,0,0,-61,0,0,0, + 0,0,0,0,0,0,0,-68,0,0, + 0,0,0,0,0,0,0,-62,0,0, + 0,0,0,0,0,0,0,0,-84,0, + 0,0,0,0,0,0,0,0,-63,0, + 0,0,0,0,0,0,0,0,0,-87, + 0,0,0,0,0,0,0,0,0,-64, 0,0,0,0,0,0,0,0,0,0, - -122,0,0,0,-67,-22,0,0,0,0, - -156,0,0,0,0,0,-27,0,0,0, + -88,0,0,0,0,0,0,0,0,0, + -65,0,0,0,0,0,0,0,0,0, + 0,-89,0,0,0,0,0,0,0,0, + 0,-66,0,0,0,0,0,0,0,0, + 0,0,-90,0,0,0,0,0,0,0, + 0,0,-119,0,0,0,0,0,0,0, + 0,0,0,-91,0,0,0,0,0,0, + 0,0,0,-142,0,0,0,0,0,0, + 0,0,0,0,-92,0,0,0,0,0, + 0,0,0,0,-143,0,0,0,0,0, + 0,0,0,0,0,-93,0,0,0,0, + 0,0,0,0,0,-160,0,0,0,0, + 0,0,0,0,0,0,-162,0,0,0, + 0,0,0,0,0,-183,0,0,0,0, + 0,0,0,0,0,0,-174,0,0,0, + 0,0,0,0,0,-94,-76,0,0,-136, + -95,0,-8,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,0,0,0,0,0,0,-23,0, - -159,0,0,0,-162,0,0,0,0,0, - -37,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-56,0,0,0,0, + -201,0,0,0,0,0,0,0,0,0, + 0,-96,0,0,0,0,0,0,0,0, + 0,-155,0,-97,-98,0,0,-9,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,-57,0,0,0, - 0,0,0,0,0,0,0,-24,0,0, - 0,0,0,0,0,0,0,-58,0,0, - 0,0,0,0,0,0,0,0,-25,0, - 0,0,0,0,0,0,0,0,-59,0, - 0,0,0,0,0,0,0,0,0,-26, - 0,0,0,0,0,0,0,0,0,-60, - 0,0,0,0,0,0,0,0,0,0, - -68,0,0,0,0,0,0,0,0,0, - -61,0,0,0,0,0,0,0,0,0, - 0,-84,0,0,0,0,0,0,0,0, - 0,-62,0,0,0,0,0,0,0,0, - 0,0,-87,0,0,0,0,0,0,0, - 0,0,-63,0,0,0,0,0,0,0, - 0,0,0,-88,0,0,0,0,0,0, - 0,0,0,-64,0,0,0,0,0,0, - 0,0,0,0,-89,0,0,0,0,0, - 0,0,0,0,-65,0,0,0,0,0, - 0,0,0,0,0,-90,0,0,0,0, - 0,0,0,0,0,-66,0,0,0,0, - 0,0,0,0,0,0,-91,0,0,0, - 0,0,0,0,0,0,-142,0,0,0, - 0,0,0,0,0,0,0,-92,0,0, - 0,0,0,0,0,0,0,-143,0,0, - 0,0,0,0,0,0,0,0,-136,0, - 0,0,0,0,0,0,0,0,-160,0, - 0,0,0,0,0,0,0,0,0,-173, - 0,0,0,0,0,0,0,0,-183,0, - 0,0,0,0,0,0,0,0,0,-174, - 0,0,0,0,0,0,0,0,-93,0, - 0,0,-177,-94,0,-7,0,0,0,0, - 0,0,0,-191,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-199,0,0,0,0,0,0, - 0,0,0,0,-133,0,0,0,0,0, - 0,0,0,0,-161,0,-182,0,0,0, - -8,0,0,0,0,0,0,0,-207,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-119,0, - 0,0,0,0,0,0,0,0,0,-95, - 0,0,0,0,0,0,0,0,-96,-192, - 0,-97,-81,-98,0,-54,0,0,0,0, - 0,0,0,0,0,0,-128,0,0,0, - 0,0,0,-33,0,-34,0,0,-48,0, - 0,0,0,0,0,0,0,0,0,-99, - 0,0,0,0,-100,-146,-101,-102,-103,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-1,-36,0,-53,-35,0,0,0,-83, - 0,0,0,0,0,0,0,-85,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,0,0,-171,0, - 0,-46,0,0,0,0,0,0,0,0, - 0,0,-121,0,-188,-135,-138,-140,-148,0, - 0,0,0,0,0,0,0,0,0,0, - -130,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-134,-139,0,0,0, - 0,0,0,0,-5,0,0,0,0,0, - 0,0,-49,0,0,0,0,0,0,0, - 0,0,0,-152,0,-50,0,0,0,0, - 0,0,0,0,0,0,-190,0,-206,-12, - 0,0,0,0,0,0,0,0,-165,0, - -209,-158,-178,-179,-200,0,-42,0,0,0, - 0,0,0,0,0,0,0,-205,0,0, - 0,0,0,0,0,0,0,0,-13,0, - 0,0,0,0,0,0,-43,0,0,0, - 0,0,0,0,0,0,0,-44,0,0, - 0,0,0,0,0,0,0,0,-45,0, + 0,0,0,0,0,0,-128,-46,0,0, + 0,0,0,0,0,0,0,0,-49,0, 0,0,0,0,0,0,0,0,0,-111, - 0,0,-47,0,0,0,0,0,0,0, - 0,0,-201,-38,0,0,0,0,0,0, - 0,0,0,0,-154,0,-163,0,0,-71, - -113,-170,-86,-189,-194,0,-74,0,-108,-185, - 0,0,0,-208,-127,0,0,0,0,0, + 0,0,0,-108,-173,-146,-122,-127,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-155,0, - 0,0,0,0,0,-172,0,0,0,0, + 0,-189,0,0,-1,0,0,0,0,-99, + 0,0,0,0,0,0,0,-100,0,0, + 0,0,0,0,0,-171,0,0,0,0, + -113,-131,0,-185,0,0,0,0,0,0, + 0,0,0,0,0,-101,-135,-102,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-9,0,0,0,0,0,0,0,-10, - 0,0,0,0,0,0,0,-11,0,0, - 0,0,0,0,0,-31,-39,0,0,0, - 0,0,0,0,-198,0,0,-40,0,0, - 0,0,0,0,0,0,-124,-69,-149,-112, - -151,0,-41,0,0,0,0,0,0,0, - 0,-169,0,0,-131,-175,0,0,0,0, - 0,-168,0,0,0,0,0,-14,0,0, - 0,-144,0,0,-28,-195,0,0,0,0, - 0,-166,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-196,0,0, - 0,0,-75,0,0,0,0,0,0,0, - 0,0,0,-77,0,0,-176,0,-105,0, - 0,0,0,0,0,-80,-153,0,0,0, - 0,0,0,0,0,0,-82,0,0,-202, - 0,0,0,0,0,0,0,0,-167,0, - 0,0,0,0,0,0,-187,0,0,0, - 0,0,0,0,0,0,0,0,-186,0, - 0,-150,0,-109,0,-181,-123,0,-193,0, - -197,0,0,0,-203,-204,0,-164,0,0, + 0,0,0,0,0,-103,0,0,0,0, + -50,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-208,0,-106,0,0, + -121,0,0,-130,-134,-139,0,-42,0,0, + 0,0,0,0,0,0,0,0,-47,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-12,0,0,0,0, + 0,0,0,-43,0,0,0,0,0,0, + 0,0,0,0,-44,0,0,0,0,0, + 0,0,0,0,0,-45,0,0,0,0, + 0,0,0,0,0,0,-203,0,0,-10, + 0,0,0,0,0,0,0,0,-37,0, + 0,0,0,0,0,0,0,-38,0,0, + 0,0,0,0,0,0,-71,-170,-138,0, + 0,0,0,0,0,0,-152,0,0,0, + -126,-79,-186,0,-74,-158,-178,-124,-177,0, + 0,-140,0,-145,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-210,0,0,-109, + -211,-147,-31,-123,0,-11,0,0,0,0, + 0,0,0,0,-161,-179,0,-81,0,0, + 0,0,-202,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-13,0,0,0, + 0,0,0,0,0,0,0,-39,0,0, + 0,0,0,0,0,0,-207,-196,-148,0, + 0,-40,0,0,0,0,0,0,0,-41, + 0,0,0,0,0,0,0,-112,0,0, + -169,-141,0,-14,0,0,-154,0,0,0, + -75,0,0,0,0,0,0,0,-144,-28, + 0,-166,0,-163,0,0,-35,0,0,0, + 0,0,0,0,0,-176,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-151,0,0,-77,0,-187,0, + -164,-172,0,0,0,-167,0,0,-105,0, + -80,0,0,-190,0,-82,0,0,0,0, + 0,-200,-153,0,0,0,0,0,-195,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-188,-175,-69,0, + 0,-36,-150,-168,0,-181,-149,0,0,-53, + 0,-204,0,0,-197,-194,-191,-198,-199,0, + 0,0,0,0,-205,0,0,0,0,0, + 0,0,-206,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,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; @@ -222,186 +219,183 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseAction { public final static char baseAction[] = { - 87,11,24,24,23,23,32,32,69,69, - 1,1,2,2,2,2,3,3,3,4, - 5,5,5,5,5,5,5,5,51,51, - 70,6,6,6,6,6,6,6,6,6, - 6,6,7,8,8,8,8,9,9,9, - 10,10,10,12,12,12,12,12,13,13, - 13,14,14,15,15,16,16,17,17,18, - 18,19,19,20,20,20,20,20,20,20, - 20,20,20,20,20,101,45,40,88,88, - 73,73,46,102,102,102,102,102,102,102, - 103,103,103,104,104,109,109,110,110,105, - 105,106,106,106,112,112,107,107,107,107, - 108,108,108,108,108,111,111,25,25,25, - 25,25,27,27,27,79,79,74,74,74, - 74,75,75,75,76,76,76,77,77,77, - 78,78,78,113,113,114,114,115,28,30, - 30,30,30,30,52,54,54,54,54,54, - 54,54,54,54,54,54,54,63,60,60, - 89,90,64,64,61,61,61,65,80,80, - 81,81,66,66,66,48,91,91,82,83, - 83,83,62,62,92,84,84,85,85,67, - 67,21,22,22,22,29,47,47,33,33, - 33,33,36,36,38,34,34,35,39,39, - 116,116,37,117,117,93,93,26,26,26, - 26,26,26,26,26,26,86,49,49,49, - 49,31,56,56,55,55,55,57,57,50, - 50,94,94,71,71,58,58,58,41,41, - 41,42,43,43,43,44,44,44,44,53, - 53,53,59,95,72,72,72,72,68,96, - 97,97,98,98,99,99,118,118,119,119, - 120,120,120,120,122,122,121,121,121,123, - 123,87,87,1,832,16,20,17,368,790, - 43,488,486,502,236,500,614,543,689,656, - 769,748,73,90,133,211,445,250,400,502, - 135,132,134,158,415,19,16,20,17,368, - 790,43,488,486,502,396,500,614,543,689, - 656,769,748,73,279,137,541,164,671,199, - 157,185,569,141,144,147,150,324,364,19, - 16,20,17,368,42,35,366,1457,1623,1634, - 1646,1657,1210,253,211,273,679,284,157,184, - 254,370,244,1297,488,19,16,20,17,368, - 42,39,285,337,329,1296,979,464,19,16, - 20,17,368,790,43,488,486,502,396,500, - 614,543,689,656,769,748,73,279,335,19, - 16,20,17,368,790,43,488,486,502,396, - 500,614,543,689,656,769,748,73,279,488, - 19,16,20,17,368,42,43,488,486,502, - 284,500,614,543,689,1188,1297,364,19,16, - 20,17,368,42,35,285,324,13,194,1455, - 1324,286,1352,1085,290,157,186,1297,344,493, - 12,245,30,678,715,281,287,275,19,16, - 20,17,368,790,43,488,486,502,1694,500, - 614,543,689,656,769,748,73,1459,811,274, - 226,237,440,19,16,20,17,368,790,43, - 488,486,502,31,500,614,543,689,656,769, - 748,73,279,488,19,16,20,17,368,790, - 43,488,486,502,398,500,614,543,689,656, - 769,748,73,90,488,19,16,20,17,368, - 42,43,488,486,502,288,500,614,543,1144, - 281,1297,536,19,16,20,17,368,790,43, - 488,486,502,1697,500,614,543,689,656,769, - 748,73,1557,18,63,299,19,16,20,17, - 368,790,43,488,486,502,366,500,614,543, - 689,656,769,748,73,1592,189,177,52,238, - 488,19,16,20,17,368,42,43,488,486, - 502,110,500,614,1180,281,191,133,211,252, - 211,244,638,135,132,134,158,488,19,16, - 20,17,368,790,43,488,486,502,1189,500, - 614,543,689,656,769,748,73,91,137,242, - 164,157,293,27,1349,244,141,144,147,150, - 324,488,19,16,20,17,368,42,43,853, - 1457,1623,1634,1646,1657,1210,488,19,16,20, - 17,368,790,43,488,486,502,281,500,614, - 543,689,656,769,748,73,84,488,19,16, - 20,17,368,790,43,488,486,502,402,500, - 614,543,689,656,769,748,73,83,488,19, - 16,20,17,368,790,43,488,486,502,6, - 500,614,543,689,656,769,748,73,82,488, - 19,16,20,17,368,790,43,488,486,502, - 523,500,614,543,689,656,769,748,73,81, - 488,19,16,20,17,368,790,43,488,486, - 502,159,500,614,543,689,656,769,748,73, - 80,488,19,16,20,17,368,790,43,488, - 486,502,560,500,614,543,689,656,769,748, - 73,79,488,19,16,20,17,368,790,43, - 488,486,502,306,500,614,543,689,656,769, - 748,73,78,488,19,16,20,17,368,790, - 43,488,486,502,342,500,614,543,689,656, - 769,748,73,77,488,19,16,20,17,368, - 790,43,488,486,502,544,500,614,543,689, - 656,769,748,73,76,488,19,16,20,17, - 368,790,43,488,486,502,647,500,614,543, - 689,656,769,748,73,75,488,19,16,20, - 17,368,790,43,488,486,502,657,500,614, - 543,689,656,769,748,73,74,488,19,16, - 20,17,368,790,43,488,486,502,659,500, - 614,543,689,656,769,748,73,1602,488,19, - 16,20,17,368,790,43,488,486,502,698, - 500,614,543,689,656,769,748,73,1669,488, - 19,16,20,17,368,42,43,488,486,502, - 244,500,614,543,689,656,769,748,92,488, - 19,16,20,17,368,42,43,488,486,502, - 655,500,614,543,689,656,769,748,92,413, - 661,1265,178,718,675,1696,488,19,16,20, - 17,368,42,38,488,19,16,20,17,368, - 42,43,488,486,502,1699,500,614,543,689, - 656,769,748,92,488,19,16,20,17,368, - 42,43,488,486,502,13,500,614,543,689, - 656,769,748,92,1337,681,1647,157,295,193, - 210,488,19,16,20,17,368,42,37,488, - 19,16,20,17,368,42,43,488,486,502, - 200,500,614,543,689,656,769,748,92,488, - 19,16,20,17,368,42,43,488,486,502, - 144,500,614,543,689,656,769,748,72,50, - 157,1353,57,517,412,201,488,19,16,20, - 17,368,42,43,488,486,502,151,500,614, - 543,689,656,1187,157,30,157,30,1559,488, - 19,16,20,17,368,42,43,488,486,502, - 550,500,1130,272,291,547,207,154,307,676, - 216,504,219,1269,221,222,227,1572,265,503, - 369,270,388,13,261,13,421,208,495,275, - 189,177,272,553,553,262,553,553,281,216, - 504,219,1269,221,222,227,709,265,503,369, - 270,133,211,1582,24,414,23,136,132,134, - 158,22,86,86,1420,86,88,311,1453,200, - 1185,259,488,19,16,20,17,368,42,43, - 488,1029,138,710,164,361,13,13,572,697, - 142,145,148,151,324,272,1660,1489,695,1708, - 1263,693,217,504,219,1269,221,222,227,339, - 267,503,369,270,1218,225,712,716,216,504, - 219,1269,221,222,227,512,19,16,20,17, - 368,40,1355,488,19,16,20,17,368,42, - 43,488,486,502,717,1139,488,19,16,20, - 17,368,42,43,488,486,502,244,1142,361, - 488,19,16,20,17,368,33,196,198,612, - 1660,261,104,394,719,720,1545,488,19,16, - 20,17,368,42,43,488,486,895,64,202, - 253,211,216,504,219,1269,221,222,227,488, - 19,16,20,17,368,32,1355,488,19,16, - 20,17,368,42,43,488,486,916,488,19, - 16,20,17,368,42,43,488,486,937,488, - 19,16,20,17,368,42,43,488,486,958, - 281,197,198,488,19,16,20,17,368,42, - 43,488,1034,623,488,19,16,20,17,368, - 42,43,874,271,1660,13,280,13,1795,1795, - 672,543,543,61,718,698,1637,232,417,61, - 646,1560,1575,1689,638,281,216,504,219,1269, - 221,222,227,275,276,229,272,21,133,211, - 1582,253,211,239,140,132,134,158,277,604, - 1353,265,503,369,270,1263,13,217,504,219, - 1269,221,222,227,1795,1705,1706,1677,1420,139, - 1795,164,488,19,16,20,17,368,42,36, - 488,19,16,20,17,368,42,35,488,19, - 16,20,17,368,42,34,161,488,19,16, - 20,17,368,42,46,495,1795,1558,488,19, - 16,20,17,368,42,45,207,61,97,97, - 323,281,272,488,19,16,20,17,368,42, - 44,636,323,1033,1354,429,95,265,503,369, - 270,241,281,636,278,1157,636,636,13,1226, - 1226,1226,61,1795,264,13,281,1157,1795,313, - 1157,195,61,1226,1795,223,313,1639,1249,1639, - 257,1795,1795,195,192,1465,240,1281,370,228, - 195,1249,257,603,1020,257,242,1465,86,1281, - 1561,1795,1281,590,608,86,1536,604,1353,241, - 590,232,191,1536,133,211,637,48,1795,1795, - 143,132,134,158,1795,133,211,642,636,505, - 97,146,132,134,158,272,655,133,211,61, - 1263,1795,195,149,132,134,158,142,133,211, - 267,503,369,270,152,132,134,158,636,282, - 1795,1226,711,243,52,1020,61,52,1795,61, - 636,244,195,636,207,244,244,1795,52,1464, - 1795,1795,1795,190,1157,252,211,1157,252,211, - 292,1454,1354,294,1795,1020,1795,1000,1576,252, - 211,1795,1795,179,1795,1795,1795,203,1351,257, - 1795,1795,258,190,1596,1795,1281,1795,1795,1795, - 372,1795,1795,372,1795,1795,1795,1701,1576,1795, - 1795,1795,1795,1795,1460,1795,1795,1795,1795,1795, - 1795,1795,1795,1795,1795,1795,1795,1795,1795,1795, - 615,1795,1618,947,1795,0,19,177,0,1, - 2019,0,1,2030,0 + 87,11,101,24,24,23,23,32,32,69, + 69,1,1,2,2,2,2,3,3,3, + 4,5,5,5,5,5,5,5,5,51, + 51,70,6,6,6,6,6,6,6,6, + 6,6,6,7,8,8,8,8,9,9, + 9,10,10,10,12,12,12,12,12,13, + 13,13,14,14,15,15,16,16,17,17, + 18,18,19,19,20,20,20,20,20,20, + 20,20,20,20,20,20,102,45,40,88, + 88,73,73,46,103,103,103,103,103,103, + 103,104,104,104,105,105,110,110,111,111, + 106,106,107,107,107,113,113,108,108,108, + 108,109,109,109,109,109,112,112,25,25, + 25,25,25,28,28,28,79,79,74,74, + 74,74,75,75,75,76,76,76,77,77, + 77,78,78,78,114,114,115,115,116,29, + 31,31,31,31,31,52,54,54,54,54, + 54,54,54,54,54,54,54,54,63,60, + 60,89,90,64,64,61,61,61,65,80, + 80,81,81,66,66,66,48,91,91,82, + 83,83,83,62,62,92,84,84,85,85, + 67,67,21,22,22,22,30,47,47,33, + 33,33,33,36,36,38,34,34,35,39, + 39,117,117,37,118,118,93,93,26,26, + 26,26,26,26,26,26,26,86,49,49, + 49,49,27,56,56,55,55,55,57,57, + 50,50,94,94,71,71,58,58,58,41, + 41,41,42,43,43,43,44,44,44,44, + 53,53,53,59,95,72,72,72,72,68, + 96,97,97,98,98,99,99,119,119,120, + 120,121,121,121,121,123,123,122,122,122, + 124,124,87,87,1,899,17,21,18,469, + 857,44,486,477,714,244,543,752,717,794, + 773,836,815,74,91,134,212,250,589,199, + 502,281,136,133,135,159,488,20,17,21, + 18,469,43,44,486,477,714,28,543,752, + 717,794,773,1276,878,274,138,679,165,157, + 186,157,185,541,142,145,148,151,1097,488, + 20,17,21,18,469,43,40,373,1445,1571, + 1617,1631,1636,666,415,20,17,21,18,469, + 857,44,486,477,714,367,543,752,717,794, + 773,836,815,74,280,464,20,17,21,18, + 469,857,44,486,477,714,367,543,752,717, + 794,773,836,815,74,280,488,20,17,21, + 18,469,43,44,486,477,714,285,543,752, + 717,794,1278,1326,364,20,17,21,18,469, + 43,36,286,1446,1495,291,1100,445,285,671, + 13,13,157,31,1326,157,31,324,245,157, + 1447,394,1643,286,329,1325,194,1649,335,20, + 17,21,18,469,857,44,486,477,714,367, + 543,752,717,794,773,836,815,74,280,275, + 20,17,21,18,469,857,44,486,477,714, + 1480,543,752,717,794,773,836,815,74,1214, + 157,187,369,238,512,20,17,21,18,469, + 41,287,25,12,61,24,209,1326,488,20, + 17,21,18,469,43,39,288,440,20,17, + 21,18,469,857,44,486,477,714,22,543, + 752,717,794,773,836,815,74,280,488,20, + 17,21,18,469,857,44,486,477,714,254, + 543,752,717,794,773,836,815,74,91,488, + 20,17,21,18,469,43,44,486,477,714, + 289,543,752,717,1155,281,1326,536,20,17, + 21,18,469,857,44,486,477,714,1484,543, + 752,717,794,773,836,815,74,1448,19,678, + 299,20,17,21,18,469,857,44,486,477, + 714,373,543,752,717,794,773,836,815,74, + 1579,189,178,52,239,275,189,178,488,20, + 17,21,18,469,43,44,486,477,714,1437, + 543,1101,134,212,253,212,281,134,212,136, + 133,135,159,281,137,133,135,159,488,20, + 17,21,18,469,43,44,486,477,714,1296, + 543,752,1240,138,30,165,23,31,139,1443, + 165,142,145,148,151,1097,143,146,149,152, + 1097,157,294,157,296,1445,1571,1617,1631,1636, + 666,488,20,17,21,18,469,857,44,486, + 477,714,63,543,752,717,794,773,836,815, + 74,92,488,20,17,21,18,469,857,44, + 486,477,714,191,543,752,717,794,773,836, + 815,74,85,488,20,17,21,18,469,857, + 44,486,477,714,242,543,752,717,794,773, + 836,815,74,84,488,20,17,21,18,469, + 857,44,486,477,714,402,543,752,717,794, + 773,836,815,74,83,488,20,17,21,18, + 469,857,44,486,477,714,6,543,752,717, + 794,773,836,815,74,82,488,20,17,21, + 18,469,857,44,486,477,714,523,543,752, + 717,794,773,836,815,74,81,488,20,17, + 21,18,469,857,44,486,477,714,159,543, + 752,717,794,773,836,815,74,80,488,20, + 17,21,18,469,857,44,486,477,714,560, + 543,752,717,794,773,836,815,74,79,488, + 20,17,21,18,469,857,44,486,477,714, + 306,543,752,717,794,773,836,815,74,78, + 488,20,17,21,18,469,857,44,486,477, + 714,342,543,752,717,794,773,836,815,74, + 77,488,20,17,21,18,469,857,44,486, + 477,714,544,543,752,717,794,773,836,815, + 74,76,488,20,17,21,18,469,857,44, + 486,477,714,647,543,752,717,794,773,836, + 815,74,75,488,20,17,21,18,469,857, + 44,486,477,714,657,543,752,717,794,773, + 836,815,74,73,488,20,17,21,18,469, + 857,44,486,477,714,659,543,752,717,794, + 773,836,815,74,1582,488,20,17,21,18, + 469,857,44,486,477,714,413,543,752,717, + 794,773,836,815,74,1626,488,20,17,21, + 18,469,43,44,486,477,714,244,543,752, + 717,794,773,836,815,93,488,20,17,21, + 18,469,43,44,486,477,714,655,543,752, + 717,794,773,836,815,93,675,236,1232,282, + 698,144,1686,488,20,17,21,18,469,43, + 38,488,20,17,21,18,469,43,44,486, + 477,714,1696,543,752,717,794,773,836,815, + 93,488,20,17,21,18,469,43,44,486, + 477,714,50,543,752,717,794,773,836,815, + 93,325,604,1447,57,412,194,211,488,20, + 17,21,18,469,43,37,488,20,17,21, + 18,469,43,44,486,477,714,201,543,752, + 717,794,773,836,815,93,337,151,488,20, + 17,21,18,469,43,44,486,1046,1687,488, + 20,17,21,18,469,43,44,486,477,714, + 281,1142,202,273,61,244,207,97,281,208, + 217,1482,220,1539,222,223,228,1561,266,639, + 339,271,361,272,262,388,1449,1496,240,276, + 550,278,273,1692,1562,263,578,179,547,217, + 1482,220,1539,222,223,228,200,266,639,339, + 271,543,429,1684,52,217,1482,220,1539,222, + 223,228,1262,661,1210,87,154,13,307,1503, + 312,260,273,1321,277,253,212,1187,1152,218, + 1482,220,1539,222,223,228,676,268,639,339, + 271,488,20,17,21,18,469,43,44,486, + 477,714,258,1154,197,199,361,1614,709,1324, + 1538,710,340,1642,693,712,716,1692,488,20, + 17,21,18,469,43,44,486,477,962,488, + 20,17,21,18,469,43,44,486,1096,217, + 1482,220,1539,222,223,228,488,20,17,21, + 18,469,34,1503,488,20,17,21,18,469, + 43,44,486,477,983,488,20,17,21,18, + 469,43,44,486,477,1004,488,20,17,21, + 18,469,43,44,486,477,1025,623,198,199, + 488,20,17,21,18,469,43,36,1692,488, + 20,17,21,18,469,43,44,920,488,20, + 17,21,18,469,43,44,941,672,543,13, + 217,1482,220,1539,222,223,228,717,1558,1619, + 1067,110,493,612,1684,232,104,394,61,718, + 276,230,97,273,364,20,17,21,18,469, + 43,36,254,212,254,212,134,212,266,639, + 339,271,242,141,133,135,159,638,246,1621, + 52,261,715,161,52,1210,488,20,17,21, + 18,469,43,35,1679,681,719,140,517,165, + 1697,253,212,720,1321,253,212,371,227,273, + 218,1482,220,1539,222,223,228,488,20,17, + 21,18,469,33,266,639,339,271,488,20, + 17,21,18,469,43,47,1441,64,646,697, + 1441,265,488,20,17,21,18,469,43,46, + 488,20,17,21,18,469,43,45,323,254, + 212,323,569,530,13,226,640,13,1770,661, + 1014,603,661,663,1770,314,281,1770,1596,61, + 13,1770,61,1187,13,1318,1187,421,1318,196, + 484,314,134,212,292,415,604,1447,578,144, + 133,135,159,241,87,196,243,1629,258,615, + 1256,258,1483,1218,281,1324,1218,608,1324,282, + 87,572,13,1770,1770,615,61,89,1483,241, + 661,637,1264,1677,718,341,642,279,134,212, + 1770,1770,495,48,1187,147,133,135,159,698, + 244,686,134,212,661,273,1321,134,212,150, + 133,135,159,208,153,133,135,159,196,258, + 268,639,339,271,1695,693,1324,142,95,97, + 1634,1496,13,711,281,1705,61,97,661,661, + 13,1087,97,578,661,281,61,244,370,244, + 1713,578,196,196,1770,244,1318,224,1187,191, + 293,193,1698,244,1318,1770,1770,1770,229,1318, + 295,233,87,1215,1678,1087,1087,544,1629,203, + 87,180,1770,259,1770,1248,1256,204,1770,1770, + 1770,1477,1770,191,192,1481,1770,1770,1770,1770, + 1770,1770,1770,1770,1770,1770,1770,1699,1678,1770, + 0,20,178,0,1,1995,0,1,2006,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -501,84 +495,84 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 1795,1805,1588,1806,1520,69,2007,2008,2009,1512, - 1091,58,1,1528,1956,1379,1340,1305,1807,1808, - 1809,1810,1036,404,1957,1955,2010,1958,1954,53, - 63,1961,1966,1965,1963,1964,1962,1967,1968,1960, - 1969,1970,1971,1169,1143,499,336,1795,1,60, - 1,1795,189,1,1,1,59,2007,2008,2009, - 1795,1,61,1795,2031,1798,1409,1398,1387,1357, - 459,1,1,1,1,1,1252,1423,1,1, + 1770,1781,1564,1782,1400,70,1983,1984,1985,1158, + 1103,59,1,1486,1932,1517,1356,534,1783,1784, + 1785,1786,548,379,1933,1931,1986,1934,1930,54, + 64,1937,1942,1941,1939,1940,1938,1943,1944,1936, + 1945,1946,1947,668,1498,1442,467,1770,1,61, + 1,1770,190,1,1,1,60,1983,1984,1985, + 1770,1,62,1770,2007,1774,1386,1375,1364,1328, + 436,1,1,1,1,1,1188,1339,1,1, 1,1,1,1,1,1,1,1,1,1, - 189,1,1,1,1795,1,251,1,1989,188, - 1,1,1,1795,1409,1398,1387,1357,1,247, - 1797,1409,1398,1387,1357,1,1,1,1,1, - 1,1,1,1326,1313,1,1,1,1,1, - 1,1,1,1,1,1,1,188,1,1, - 1,1795,1,62,1,1989,189,1,1,1, - 260,2019,1186,70,1,1,1795,1805,1795,1806, - 263,507,1450,532,1,1,1,1,1,1, - 487,507,1,1,1,1,1,1,1,1, - 1,1,1,1,189,1,1,1,1795,1805, - 67,1806,1989,47,2007,2008,2009,1563,269,266, - 2019,1186,1956,251,1326,1313,1,1789,1186,507, - 507,1800,1957,1955,2010,1958,1954,507,459,1961, - 1966,1965,1963,1964,1962,1967,1968,1960,1969,1970, - 1971,127,1143,499,336,180,1799,2007,2008,2009, - 266,65,1450,1795,251,1956,1548,1537,1802,1795, - 1805,507,1806,181,574,1957,1955,2010,1958,1954, - 283,1075,1961,1966,1965,1963,1964,1962,1967,1968, - 1960,1969,1970,1971,1,1805,1588,1806,378,1798, - 1795,1,1792,1512,1091,1800,1801,1528,592,1379, - 1340,1305,1807,1808,1809,1810,1036,404,1795,1805, - 1588,1806,477,1798,640,49,68,1512,1091,1563, - 1799,1528,968,1379,1340,1305,1807,1808,1809,1810, - 1036,404,1,50,1797,1795,251,1795,1795,1805, - 2051,1806,1434,701,1,1805,1588,1806,1520,28, - 1266,48,1795,1512,1091,1563,2798,1528,1797,1379, - 1340,1305,1807,1808,1809,1810,1036,404,1548,1537, - 1,2019,1433,1795,1805,1588,1806,1520,1798,1795, - 574,2051,1512,1091,1800,1795,1528,28,1379,1340, - 1305,1807,1808,1809,1810,1036,404,1795,1,1, - 1,1,1795,209,1548,1537,1,1,1368,1799, - 1,71,1,1,1,1,1,1,1,1, - 1,66,52,1797,1,1805,1588,1806,1520,1064, - 1,1434,701,1512,1091,89,2798,1528,1,1379, - 1340,1305,1807,1808,1809,1810,1036,404,2107,1795, - 1805,1588,1806,1520,183,2832,1795,2832,1512,1091, - 89,2798,1528,1044,1379,1340,1305,1807,1808,1809, - 1810,1036,404,1,1805,1588,1806,1520,1795,1146, - 1205,1795,1512,1091,640,2798,1528,2051,1379,1340, - 1305,1807,1808,1809,1810,1036,404,1795,1805,1588, - 1806,1520,182,2837,1795,2837,1512,1091,1795,1804, - 1528,1795,1379,1340,1305,1807,1808,1809,1810,1036, - 404,1795,1805,1595,1806,1520,204,2839,1795,2839, - 1512,1091,42,1339,1528,1795,1379,1340,1305,1807, - 1808,1809,1810,1036,404,1,1805,1588,1806,1520, - 87,1795,1,57,1512,1091,1795,1800,1528,64, - 1379,1340,1305,1807,1808,1809,1810,1036,404,19, - 1803,1786,1169,1786,1786,177,177,177,246,667, - 1786,248,1799,177,2007,2008,2009,1,1,1, - 1795,1785,926,177,177,177,177,177,1795,1786, - 1252,1423,905,884,863,842,821,779,800,758, - 737,716,128,206,1805,1119,1806,129,2007,2008, - 2009,249,1795,2007,2008,2009,1956,2007,2008,2009, - 1795,1956,1,2019,1433,1795,1957,1955,2010,1958, - 1954,1957,1955,2010,1958,1954,130,251,2019,1433, - 1795,131,2007,2008,2009,250,56,2007,2008,2009, - 1956,2007,2008,2009,1,1956,55,1795,54,1804, - 1957,1955,2010,1958,1954,1957,1955,2010,1958,1954, - 31,1,1206,1450,51,41,1800,268,1795,1451, - 289,1203,507,1434,701,1820,1821,487,507,989, - 282,1009,254,1252,1423,1267,220,29,1452,205, - 1140,1799,1140,1252,1423,1252,1423,507,1795,1795, - 1,1795,651,1268,218,1795,1795,29,205,199, - 1803,1692,1166,1445,187,507,438,1447,1496,187, - 691,187,1087,1267,1795,1795,183,1164,1795,1795, - 1795,182,1795,204,1795,1795,1823,2807,1795,1795, - 1795,1795,1795,1795,1795,1795,1795,1795,1795,2050, - 1795,1795,1795,1795,1795,1795,1795,1795,1795,1795, - 1795,1795,1795,1795,1795,1795,1795,1795,1099 + 190,1,1,1,1770,1,252,1,1965,189, + 1,1,1,1770,1386,1375,1364,1328,1,247, + 1773,1386,1375,1364,1328,1983,1984,1985,1,1, + 1,1,1,1301,1199,1,1,1,1,1, + 1,1,1,1,1,1,1,189,1,1, + 1,1770,1,63,1,1965,190,1,1,1, + 261,1995,1216,71,1,1,1770,1781,1770,1782, + 264,509,1427,557,1,1,1,1,1,1, + 470,509,1,1,1,1,1,1,1,1, + 1,1,1,1,190,1,1,1,1770,1781, + 68,1782,1965,48,1983,1984,1985,1550,270,267, + 1995,1216,1932,252,1301,1199,1,1764,1216,509, + 509,1776,1933,1931,1986,1934,1930,509,436,1937, + 1942,1941,1939,1940,1938,1943,1944,1936,1945,1946, + 1947,128,1498,1442,467,181,1775,1983,1984,1985, + 267,66,1427,1770,252,1932,1542,1528,1778,1770, + 1781,509,1782,182,599,1933,1931,1986,1934,1930, + 284,471,1937,1942,1941,1939,1940,1938,1943,1944, + 1936,1945,1946,1947,1,1781,1564,1782,454,1774, + 1770,1,1767,1158,1103,1776,1777,1486,617,1517, + 1356,534,1783,1784,1785,1786,548,379,1770,1781, + 1564,1782,1454,1774,698,50,69,1158,1103,1550, + 1775,1486,1035,1517,1356,534,1783,1784,1785,1786, + 548,379,1,51,1773,1770,252,1770,1770,1781, + 2027,1782,1418,1409,1,1781,1564,1782,1400,29, + 1277,49,1770,1158,1103,1550,2774,1486,1773,1517, + 1356,534,1783,1784,1785,1786,548,379,1542,1528, + 1,1995,1397,1770,1781,1564,1782,1400,1774,1770, + 599,2027,1158,1103,1776,1770,1486,29,1517,1356, + 534,1783,1784,1785,1786,548,379,1770,1,1, + 1,1,1770,210,1542,1528,1,1,1537,1775, + 1,72,1,1,1,1,1,1,1,1, + 1,67,53,1773,1,1781,1564,1782,1400,1131, + 1,1418,1409,1158,1103,90,2774,1486,1,1517, + 1356,534,1783,1784,1785,1786,548,379,2083,1770, + 1781,1564,1782,1400,184,2808,1770,2808,1158,1103, + 90,2774,1486,1111,1517,1356,534,1783,1784,1785, + 1786,548,379,1,1781,1564,1782,1400,1770,346, + 1690,1770,1158,1103,698,2774,1486,2027,1517,1356, + 534,1783,1784,1785,1786,548,379,1770,1781,1564, + 1782,1400,183,2813,1770,2813,1158,1103,1770,1780, + 1486,1770,1517,1356,534,1783,1784,1785,1786,548, + 379,1770,1781,1580,1782,1400,205,2815,1770,2815, + 1158,1103,43,1316,1486,1770,1517,1356,534,1783, + 1784,1785,1786,548,379,1,1781,1564,1782,1400, + 88,1770,1,58,1158,1103,1770,1776,1486,65, + 1517,1356,534,1783,1784,1785,1786,548,379,20, + 1779,1761,668,1761,1761,178,178,178,248,741, + 1761,249,1775,178,1,1,1,1,1,1, + 1770,1760,972,178,178,178,178,178,1770,1761, + 1188,1339,951,930,909,888,867,825,846,804, + 783,762,129,207,1781,993,1782,130,1983,1984, + 1985,250,1770,1983,1984,1985,1932,1983,1984,1985, + 1770,1932,1,1995,1397,1770,1933,1931,1986,1934, + 1930,1933,1931,1986,1934,1930,131,252,1995,1397, + 1770,132,1983,1984,1985,251,57,1983,1984,1985, + 1932,1983,1984,1985,1,1932,56,1770,55,1780, + 1933,1931,1986,1934,1930,1933,1931,1986,1934,1930, + 32,1,1587,1427,52,42,1776,269,1770,1261, + 290,1682,509,1418,1409,1796,1797,470,509,1056, + 283,1076,255,1188,1339,1429,221,30,1428,206, + 479,1775,479,1188,1339,1188,1339,509,1770,1770, + 1,1770,1217,1452,219,1770,1770,30,206,200, + 1779,1683,475,1567,188,509,488,1584,1622,188, + 731,188,733,1429,1770,1770,184,472,1770,1770, + 1770,183,1770,205,1770,1770,1799,2783,1770,1770, + 1770,1770,1770,1770,1770,1770,1770,1770,1770,2026, + 1770,1770,1770,1770,1770,1770,1770,1770,1770,1770, + 1770,1770,1770,1770,1770,1770,1770,1770,1166 }; }; public final static char termAction[] = TermAction.termAction; @@ -586,27 +580,28 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 243,1,76,41,76,76,76,76,76,76, - 76,76,76,392,3,218,215,222,220,228, - 226,230,229,232,231,10,76,392,159,159, - 357,392,329,329,261,76,76,76,76,76, - 76,76,76,76,76,76,76,76,76,76, - 76,76,76,76,76,76,76,76,76,76, - 76,76,76,76,76,76,159,68,361,70, - 299,157,156,332,344,66,344,66,66,344, - 66,344,406,113,159,45,215,215,220,220, - 220,220,218,218,226,222,222,229,228,292, - 231,230,203,50,357,361,93,45,429,74, - 159,363,302,66,329,329,66,329,76,50, - 361,352,429,45,73,70,159,355,406,158, - 304,68,169,68,280,282,200,196,68,352, - 429,76,76,45,74,299,287,286,361,304, - 159,68,169,280,280,196,48,297,329,76, - 199,196,50,429,352,45,45,159,363,302, - 355,169,196,162,169,280,282,294,282,52, - 45,329,76,50,352,304,169,164,282,196, - 76,329,45,282,159,158,196,239,76,238, - 89,361,196,196,330,164,76,89,282 + 199,1,106,41,106,106,106,106,106,106, + 106,106,106,373,3,23,20,27,25,33, + 31,35,34,37,36,9,106,373,189,189, + 321,373,293,293,414,106,106,106,106,106, + 106,106,106,106,106,106,106,106,106,106, + 106,106,106,106,106,106,106,106,106,106, + 106,106,106,106,106,106,189,98,325,100, + 263,187,186,296,308,96,308,96,96,308, + 96,308,387,143,189,45,20,20,25,25, + 25,25,23,23,31,27,27,34,33,342, + 36,35,223,80,321,325,123,45,410,104, + 189,344,266,96,293,293,96,293,106,80, + 325,316,410,45,103,100,189,319,387,188, + 268,98,48,98,217,219,333,75,98,316, + 316,106,106,45,104,263,337,336,325,268, + 189,98,48,217,217,75,78,330,293,106, + 332,75,80,316,410,45,45,189,344,266, + 319,48,75,192,48,217,219,327,219,82, + 45,293,106,80,410,316,268,48,194,219, + 75,106,293,45,219,316,189,188,75,259, + 106,258,119,325,75,75,294,194,106,119, + 219 }; }; public final static char asb[] = Asb.asb; @@ -614,11 +609,14 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static byte asr[] = {0, - 80,0,66,11,2,52,67,15,16,13, - 4,9,10,53,54,47,48,55,56,57, - 58,61,62,63,64,65,68,69,43,60, - 70,71,72,73,74,76,75,77,78,79, - 59,30,80,29,50,5,0,5,43,11, + 80,0,11,2,52,67,15,16,60,70, + 71,72,73,74,76,75,77,78,79,4, + 53,54,9,10,48,47,55,56,57,58, + 61,62,13,63,64,65,43,66,68,69, + 59,30,80,29,50,5,0,24,31,6, + 32,44,25,33,26,34,35,27,7,36, + 37,14,45,28,46,38,39,8,40,41, + 42,1,3,51,5,43,0,5,43,11, 52,15,16,13,4,9,10,22,23,17, 2,18,19,20,21,1,3,12,0,6, 7,8,14,50,5,18,19,20,21,3, @@ -630,34 +628,31 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 47,48,55,56,57,58,61,62,63,64, 65,68,69,60,70,71,72,73,74,75, 76,77,78,79,4,2,11,29,30,5, - 0,66,5,4,1,2,59,0,24,31, - 6,32,44,25,33,26,34,35,27,7, - 36,37,14,45,28,46,38,39,8,40, - 41,42,1,3,51,5,43,0,60,11, - 52,0,60,70,71,72,73,74,75,76, - 77,78,79,12,4,53,54,9,10,48, - 47,55,56,57,58,61,62,13,63,64, - 65,50,30,43,80,68,69,59,66,5, - 29,0,17,18,19,20,21,1,3,2, - 15,16,13,4,9,10,22,23,51,0, - 5,30,17,18,19,20,21,1,3,2, - 15,16,13,4,9,10,22,23,0,1, - 3,5,43,29,0,2,5,29,30,66, - 11,59,0,5,29,43,60,0,4,2, - 11,30,5,24,31,6,32,44,25,33, - 26,34,35,27,7,36,37,14,45,28, - 46,38,39,8,40,41,42,49,3,1, - 0,39,31,36,34,35,33,32,37,38, - 40,41,42,59,66,28,25,14,24,27, - 26,6,7,8,29,1,5,30,2,11, - 4,0,4,24,31,6,32,44,25,33, - 26,34,35,27,7,36,37,14,45,28, - 46,38,39,8,40,41,42,1,3,49, - 0,17,18,19,20,21,2,15,16,13, - 4,9,10,22,23,1,3,44,45,46, - 39,31,36,34,35,33,32,37,38,40, - 41,42,28,25,14,24,27,26,6,7, - 8,0 + 0,66,5,4,1,2,59,0,17,18, + 19,20,21,1,3,2,15,16,13,4, + 9,10,22,23,51,0,1,3,5,43, + 29,0,13,4,9,10,53,54,47,48, + 55,56,57,58,61,62,63,64,65,68, + 69,60,70,71,72,73,74,75,76,77, + 78,79,50,30,43,80,12,59,66,5, + 29,0,4,2,11,30,5,24,31,6, + 32,44,25,33,26,34,35,27,7,36, + 37,14,45,28,46,38,39,8,40,41, + 42,49,3,1,0,39,31,36,34,35, + 33,32,37,38,40,41,42,59,66,28, + 25,14,24,27,26,6,7,8,29,1, + 5,30,2,11,4,0,5,29,43,60, + 0,60,11,52,0,2,5,29,30,66, + 11,59,0,4,24,31,6,32,44,25, + 33,26,34,35,27,7,36,37,14,45, + 28,46,38,39,8,40,41,42,1,3, + 49,0,17,18,19,20,21,2,15,16, + 13,4,9,10,22,23,1,3,44,45, + 46,39,31,36,34,35,33,32,37,38, + 40,41,42,28,25,14,24,27,26,6, + 7,8,0,5,30,17,18,19,20,21, + 1,3,2,15,16,13,4,9,10,22, + 23,0 }; }; public final static byte asr[] = Asr.asr; @@ -665,27 +660,28 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasb { public final static byte nasb[] = {0, - 60,38,22,38,22,22,22,22,22,22, - 22,22,22,102,38,38,38,38,38,38, - 38,38,38,38,38,38,22,102,88,88, - 83,1,51,51,63,103,22,22,22,22, - 22,22,22,22,22,22,22,22,22,22, - 22,22,103,22,22,22,22,22,22,22, - 22,22,22,22,22,22,88,38,90,24, - 82,11,11,71,72,9,72,49,49,72, - 48,72,66,38,88,26,38,38,38,38, + 61,38,20,38,20,20,20,20,20,20, + 20,20,20,94,38,38,38,38,38,38, + 38,38,38,38,38,38,20,94,71,71, + 74,1,15,15,98,95,20,20,20,20, + 20,20,20,20,20,20,20,20,20,20, + 20,20,95,20,20,20,20,20,20,20, + 20,20,20,20,20,20,71,38,117,22, + 73,11,11,44,45,50,45,87,87,45, + 86,45,39,38,71,24,38,38,38,38, 38,38,38,38,38,38,38,38,38,38, - 38,38,38,58,106,38,28,26,118,25, - 88,93,87,7,7,7,7,7,22,20, - 38,58,118,26,25,13,88,54,31,38, - 95,17,58,38,58,41,15,58,38,58, - 118,22,22,26,25,53,11,11,90,95, - 88,38,110,58,7,39,19,38,7,22, - 46,39,58,118,13,26,26,88,93,87, - 74,58,39,43,98,7,41,38,38,21, - 26,7,22,20,13,114,110,56,41,39, - 22,7,26,41,88,88,39,44,22,38, - 56,90,39,39,38,56,22,76,80 + 38,38,38,59,105,38,28,24,80,23, + 71,89,70,7,7,7,7,7,20,18, + 38,68,80,24,23,78,71,55,31,38, + 91,26,59,38,59,52,13,59,38,68, + 59,20,20,24,23,54,11,11,117,91, + 71,38,109,59,7,9,17,38,7,20, + 84,9,59,59,80,24,24,71,89,70, + 64,59,9,47,113,7,52,38,38,19, + 24,7,20,18,80,78,101,109,57,52, + 9,20,7,24,52,78,71,71,9,48, + 20,38,57,117,9,9,38,57,20,66, + 82 }; }; public final static byte nasb[] = Nasb.nasb; @@ -693,18 +689,18 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasr { public final static char nasr[] = {0, - 79,77,76,64,75,74,1,0,89,0, - 26,0,21,0,97,0,90,0,68,11, - 59,5,0,11,5,24,0,5,11,0, - 79,78,77,76,64,75,74,0,32,0, - 51,0,11,69,0,99,0,92,65,0, - 70,0,23,43,42,36,34,11,0,11, - 87,0,11,88,0,64,60,61,62,63, - 52,27,0,43,42,36,34,31,0,95, - 0,23,42,43,11,0,11,23,0,31, - 49,0,31,49,11,25,0,11,48,66, - 0,48,11,45,0,43,42,31,0,81, - 11,48,0,93,11,25,0,56,0 + 79,77,76,64,75,74,1,0,32,0, + 26,0,97,0,70,0,68,11,59,5, + 0,11,5,24,0,90,0,5,11,0, + 79,78,77,76,64,75,74,0,64,60, + 61,62,63,52,28,0,11,69,0,89, + 0,51,0,23,43,42,36,34,11,0, + 11,87,0,43,42,36,34,27,0,11, + 23,0,23,42,43,11,0,21,0,56, + 0,95,0,99,0,92,65,0,27,49, + 11,25,0,48,11,45,0,11,88,0, + 93,11,25,0,43,42,27,0,81,11, + 48,0,11,48,66,0,27,49,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -730,18 +726,18 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, 100,0,0,0,102,106,107,108,109,110, - 0,111,112,113,114,115,116,117,118,119, - 129,0,97,96,122,150,128,0,0,0, - 0,98,146,148,0,149,0,0,0,0, - 159,160,161,0,101,121,137,141,147,156, - 0,131,136,0,151,154,155,158,0,132, - 133,134,135,138,0,140,145,162,99,103, - 104,105,120,123,124,125,126,127,130,0, - 139,143,0,0,144,153,95,0,0,0, - 142,0,152,157,0,163,164,0,165,0, + 0,111,112,113,114,115,116,117,0,118, + 128,0,97,96,121,149,0,127,0,0, + 0,98,145,147,0,148,0,0,0,0, + 158,159,160,0,101,120,136,140,146,155, + 0,130,135,0,150,153,154,157,0,131, + 132,133,134,137,0,139,144,161,99,103, + 104,105,119,122,123,124,125,126,129,0, + 138,142,0,0,143,152,95,0,0,0, + 141,0,151,156,0,162,163,0,164,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0 + 0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -771,9 +767,9 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLhs { public final static char scopeLhs[] = { - 62,60,5,62,26,26,60,53,106,44, + 62,60,5,62,26,26,60,53,107,44, 26,39,44,26,66,6,5,5,19,99, - 98,42,26,36,3,68,66,107,5,66, + 98,42,26,36,3,68,66,108,5,66, 39,37,39 }; }; @@ -804,20 +800,20 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeRhs { public final static char scopeRhs[] = {0, - 139,11,0,96,0,189,104,0,31,136, + 139,11,0,96,0,189,104,0,31,135, 0,144,165,104,12,152,0,98,0,0, 148,104,2,135,0,97,0,148,104,2, 0,151,2,0,113,14,179,104,11,0, 113,179,104,14,11,0,113,14,11,0, 113,179,104,11,0,113,11,0,129,0, - 2,0,152,97,0,2,97,0,148,104, - 2,129,0,2,0,151,97,0,140,2, + 2,0,151,97,0,2,97,0,148,104, + 2,129,0,2,0,150,97,0,140,2, 0,144,177,104,12,94,185,44,0,98, 0,144,177,104,12,185,44,0,141,0, - 99,0,184,104,141,0,104,141,0,142, + 99,0,184,104,141,0,104,141,0,141, 99,0,173,104,12,183,94,182,157,0, - 173,104,12,182,157,0,195,85,0,77, - 2,101,97,99,0,195,116,138,2,89, + 173,104,12,182,157,0,196,85,0,77, + 2,101,97,99,0,196,116,138,2,89, 0,53,0,0,138,69,111,0,29,118, 0,164,2,17,0,144,165,104,12,116, 164,2,0,164,2,0,97,3,0,105, @@ -830,15 +826,15 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 1085,0,1677,1576,1647,0,396,0,1464,1339, - 1433,1265,1249,1186,1157,0,636,1210,313,0, - 1269,504,503,369,1249,1186,1157,1639,1450,1536, - 0,477,378,459,1146,640,574,1326,1313,1169, - 1423,1252,1409,1398,1387,1357,1563,1548,1537,1434, - 701,1379,1340,1528,1520,1512,1091,1036,404,1305, - 1099,1064,1044,1009,989,968,947,615,1119,592, - 507,926,905,884,863,842,821,800,779,758, - 737,716,313,667,553,532,417,438,344,0 + 1495,0,1677,1678,1643,0,367,0,1477,1316, + 1397,1232,1256,1216,1187,0,661,666,314,0, + 1539,1482,639,339,1256,1216,1187,1629,1427,1483, + 0,1454,454,436,346,698,599,1301,1199,668, + 1339,1188,1386,1375,1364,1328,1550,1542,1528,1418, + 1409,1517,1356,1486,1400,1158,1103,548,379,534, + 1166,1131,1111,1076,1056,1035,1014,640,993,617, + 509,972,951,930,909,888,867,846,825,804, + 783,762,314,741,578,557,415,488,394,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -856,17 +852,18 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 2,136,135,167,168,157,169,46,45,170, 44,171,172,94,181,138,101,101,103,103, 103,103,102,102,106,105,105,108,107,138, - 110,109,116,12,142,124,14,113,104,4, + 110,109,116,12,142,120,14,113,104,4, 151,104,2,182,158,158,185,158,59,104, - 124,4,104,113,179,149,148,118,104,150, + 120,4,104,113,179,149,148,118,104,150, 104,94,12,94,12,165,104,12,152,4, - 104,179,14,113,4,2,127,129,104,29, + 120,179,14,113,4,2,127,129,104,29, 148,183,104,12,104,144,29,189,52,11, - 190,104,12,104,149,113,113,140,104,2, + 190,104,12,120,104,113,113,140,104,2, 142,12,173,141,174,104,177,94,178,60, - 139,52,11,104,149,104,104,104,177,144, - 60,29,139,165,148,186,173,184,59,140, - 2,104,144,144,29,29,59,142,125 + 139,52,11,104,104,149,104,104,104,177, + 144,60,29,139,165,149,148,186,173,184, + 59,140,2,104,144,144,29,29,59,142, + 125 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -987,12 +984,11 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab "shift_expression", "relational_expression", "equality_expression", - "AND_expression", - "exclusive_OR_expression", - "inclusive_OR_expression", - "logical_AND_expression", - "logical_OR_expression", - "conditional_expression", + "and_expression", + "exclusive_or_expression", + "inclusive_or_expression", + "logical_and_expression", + "logical_or_expression", "assignment_expression", "expression_list_actual", "constant_expression", @@ -1062,20 +1058,20 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 209, + NUM_STATES = 211, NT_OFFSET = 93, - LA_STATE_OFFSET = 2107, + LA_STATE_OFFSET = 2083, MAX_LA = 2, - NUM_RULES = 312, - NUM_NONTERMINALS = 123, - NUM_SYMBOLS = 216, + NUM_RULES = 313, + NUM_NONTERMINALS = 124, + NUM_SYMBOLS = 217, SEGMENT_SIZE = 8192, - START_STATE = 1202, + START_STATE = 1235, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 80, EOLT_SYMBOL = 80, - ACCEPT_ACTION = 1785, - ERROR_ACTION = 1795; + ACCEPT_ACTION = 1760, + ERROR_ACTION = 1770; public final static boolean BACKTRACK = true; 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 2828af95efd..becfe1cfa73 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 @@ -17,19 +17,24 @@ import lpg.lpgjavaruntime.*; import java.util.*; import org.eclipse.cdt.core.dom.ast.*; +import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter; +import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap; import org.eclipse.cdt.core.dom.lrparser.IParser; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.ITokenCollector; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack; - -import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; -import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; +import org.eclipse.cdt.core.parser.IScanner; +import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider; +import org.eclipse.cdt.core.index.IIndex; import org.eclipse.cdt.internal.core.dom.parser.c.CNodeFactory; import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction; import org.eclipse.cdt.core.dom.lrparser.action.c99.C99SecondaryParserFactory; -public class C99Parser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser< IASTTranslationUnit > +public class C99Parser extends PrsStream implements RuleAction, ITokenStream, + ITokenCollector, IParser< IASTTranslationUnit > + { private static ParseTable prs = new C99Parserprs(); private FixedBacktrackingParser btParser; @@ -167,7 +172,11 @@ public class C99Parser extends PrsStream implements RuleAction , IParserActionTo private C99BuildASTParserAction action; private IASTCompletionNode compNode; -public C99Parser() { // constructor + +public C99Parser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Set options) { + initActions(options); + action.initializeTranslationUnit(scanner, builtinBindingsProvider, index); + CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap); } private void initActions(Set options) { @@ -186,17 +195,16 @@ public void addToken(IToken token) { } -public IASTTranslationUnit parse(Set options) { +public IASTTranslationUnit parse() { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(options); final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse super.resetTokenStream(); // allow tokens to be garbage collected compNode = action.getASTCompletionNode(); // the completion node may be null - return ( IASTTranslationUnit ) action.getParseResult(); + return ( IASTTranslationUnit ) action.getParseResult(); } @@ -219,25 +227,6 @@ public String getName() { } - -private ITokenMap tokenMap = null; - -public void setTokens(List tokens) { - resetTokenStream(); - addToken(new Token(null, 0, 0, 0)); // dummy token - for(IToken token : tokens) { - token.setKind(tokenMap.mapKind(token.getKind())); - addToken(token); - } - addToken(new Token(null, 0, 0, C99Parsersym.TK_EOF_TOKEN)); -} - -public C99Parser(IParserActionTokenProvider parser) { // constructor - tokenMap = new TokenMap(C99Parsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols()); -} - - - public void ruleAction(int ruleNumber) { switch (ruleNumber) @@ -250,1005 +239,1011 @@ public C99Parser(IParserActionTokenProvider parser) { // constructor } // - // Rule 12: literal ::= integer + // Rule 2: ::= $Empty // - case 12: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break; + case 2: { action. consumeEmpty(); break; } // - // Rule 13: literal ::= floating + // Rule 13: literal ::= integer // - case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break; + case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break; } // - // Rule 14: literal ::= charconst + // Rule 14: literal ::= floating // - case 14: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break; + case 14: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break; } // - // Rule 15: literal ::= stringlit + // Rule 15: literal ::= charconst // - case 15: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break; + case 15: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break; } // - // Rule 17: primary_expression ::= primary_expression_id + // Rule 16: literal ::= stringlit // - case 17: { action. consumeExpressionID(); break; + case 16: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break; } // - // Rule 18: primary_expression ::= ( expression ) + // Rule 18: primary_expression ::= primary_expression_id // - case 18: { action. consumeExpressionBracketed(); break; + case 18: { action. consumeExpressionID(); break; } // - // Rule 21: postfix_expression ::= postfix_expression [ expression ] + // Rule 19: primary_expression ::= ( expression ) // - case 21: { action. consumeExpressionArraySubscript(); break; + case 19: { action. consumeExpressionBracketed(); break; } // - // Rule 22: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 22: postfix_expression ::= postfix_expression [ expression ] // - case 22: { action. consumeExpressionFunctionCall(); break; + case 22: { action. consumeExpressionArraySubscript(); break; } // - // Rule 23: postfix_expression ::= postfix_expression . member_name + // Rule 23: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 23: { action. consumeExpressionFieldReference(false); break; + case 23: { action. consumeExpressionFunctionCall(); break; } // - // Rule 24: postfix_expression ::= postfix_expression -> member_name + // Rule 24: postfix_expression ::= postfix_expression . member_name // - case 24: { action. consumeExpressionFieldReference(true); break; + case 24: { action. consumeExpressionFieldReference(false); break; } // - // Rule 25: postfix_expression ::= postfix_expression ++ + // Rule 25: postfix_expression ::= postfix_expression -> member_name // - case 25: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; + case 25: { action. consumeExpressionFieldReference(true); break; } // - // Rule 26: postfix_expression ::= postfix_expression -- + // Rule 26: postfix_expression ::= postfix_expression ++ // - case 26: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; + case 26: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 27: postfix_expression ::= ( type_id ) { initializer_list comma_opt } + // Rule 27: postfix_expression ::= postfix_expression -- // - case 27: { action. consumeExpressionTypeIdInitializer(); break; + case 27: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 32: unary_expression ::= ++ unary_expression + // Rule 28: postfix_expression ::= ( type_id ) { initializer_list comma_opt } // - case 32: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; + case 28: { action. consumeExpressionTypeIdInitializer(); break; } // - // Rule 33: unary_expression ::= -- unary_expression + // Rule 33: unary_expression ::= ++ unary_expression // - case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; + case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 34: unary_expression ::= & cast_expression + // Rule 34: unary_expression ::= -- unary_expression // - case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; + case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 35: unary_expression ::= * cast_expression + // Rule 35: unary_expression ::= & cast_expression // - case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; + case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 36: unary_expression ::= + cast_expression + // Rule 36: unary_expression ::= * cast_expression // - case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; + case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 37: unary_expression ::= - cast_expression + // Rule 37: unary_expression ::= + cast_expression // - case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; + case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 38: unary_expression ::= ~ cast_expression + // Rule 38: unary_expression ::= - cast_expression // - case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; + case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 39: unary_expression ::= ! cast_expression + // Rule 39: unary_expression ::= ~ cast_expression // - case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; + case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 40: unary_expression ::= sizeof unary_expression + // Rule 40: unary_expression ::= ! cast_expression // - case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; + case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 41: unary_expression ::= sizeof ( type_id ) + // Rule 41: unary_expression ::= sizeof unary_expression // - case 41: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break; + case 41: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 43: cast_expression ::= ( type_id ) cast_expression + // Rule 42: unary_expression ::= sizeof ( type_id ) // - case 43: { action. consumeExpressionCast(IASTCastExpression.op_cast); break; + case 42: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break; } // - // Rule 45: multiplicative_expression ::= multiplicative_expression * cast_expression + // Rule 44: cast_expression ::= ( type_id ) cast_expression // - case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break; + case 44: { action. consumeExpressionCast(IASTCastExpression.op_cast); break; } // - // Rule 46: multiplicative_expression ::= multiplicative_expression / cast_expression + // Rule 46: multiplicative_expression ::= multiplicative_expression * cast_expression // - case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break; + case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break; } // - // Rule 47: multiplicative_expression ::= multiplicative_expression % cast_expression + // Rule 47: multiplicative_expression ::= multiplicative_expression / cast_expression // - case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break; + case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break; } // - // Rule 49: additive_expression ::= additive_expression + multiplicative_expression + // Rule 48: multiplicative_expression ::= multiplicative_expression % cast_expression // - case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break; + case 48: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break; } // - // Rule 50: additive_expression ::= additive_expression - multiplicative_expression + // Rule 50: additive_expression ::= additive_expression + multiplicative_expression // - case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break; + case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break; } // - // Rule 52: shift_expression ::= shift_expression << additive_expression + // Rule 51: additive_expression ::= additive_expression - multiplicative_expression // - case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break; + case 51: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break; } // - // Rule 53: shift_expression ::= shift_expression >> additive_expression + // Rule 53: shift_expression ::= shift_expression << additive_expression // - case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break; + case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break; } // - // Rule 55: relational_expression ::= relational_expression < shift_expression + // Rule 54: shift_expression ::= shift_expression >> additive_expression // - case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break; + case 54: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break; } // - // Rule 56: relational_expression ::= relational_expression > shift_expression + // Rule 56: relational_expression ::= relational_expression < shift_expression // - case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break; + case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break; } // - // Rule 57: relational_expression ::= relational_expression <= shift_expression + // Rule 57: relational_expression ::= relational_expression > shift_expression // - case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break; + case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break; } // - // Rule 58: relational_expression ::= relational_expression >= shift_expression + // Rule 58: relational_expression ::= relational_expression <= shift_expression // - case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break; + case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break; } // - // Rule 60: equality_expression ::= equality_expression == relational_expression + // Rule 59: relational_expression ::= relational_expression >= shift_expression // - case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break; + case 59: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break; } // - // Rule 61: equality_expression ::= equality_expression != relational_expression + // Rule 61: equality_expression ::= equality_expression == relational_expression // - case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break; + case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break; } // - // Rule 63: AND_expression ::= AND_expression & equality_expression + // Rule 62: equality_expression ::= equality_expression != relational_expression // - case 63: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break; + case 62: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break; } // - // Rule 65: exclusive_OR_expression ::= exclusive_OR_expression ^ AND_expression + // Rule 64: and_expression ::= and_expression & equality_expression // - case 65: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break; + case 64: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break; } // - // Rule 67: inclusive_OR_expression ::= inclusive_OR_expression | exclusive_OR_expression + // Rule 66: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 67: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break; + case 66: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break; } // - // Rule 69: logical_AND_expression ::= logical_AND_expression && inclusive_OR_expression + // Rule 68: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 69: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break; + case 68: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break; } // - // Rule 71: logical_OR_expression ::= logical_OR_expression || logical_AND_expression + // Rule 70: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 71: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break; + case 70: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break; } // - // Rule 73: conditional_expression ::= logical_OR_expression ? expression : conditional_expression + // Rule 72: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 73: { action. consumeExpressionConditional(); break; + case 72: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break; } // - // Rule 75: assignment_expression ::= unary_expression = assignment_expression + // Rule 74: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; + case 74: { action. consumeExpressionConditional(); break; } // - // Rule 76: assignment_expression ::= unary_expression *= assignment_expression + // Rule 76: assignment_expression ::= unary_expression = assignment_expression // - case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break; + case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; } // - // Rule 77: assignment_expression ::= unary_expression /= assignment_expression + // Rule 77: assignment_expression ::= unary_expression *= assignment_expression // - case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break; + case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 78: assignment_expression ::= unary_expression %= assignment_expression + // Rule 78: assignment_expression ::= unary_expression /= assignment_expression // - case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break; + case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break; } // - // Rule 79: assignment_expression ::= unary_expression += assignment_expression + // Rule 79: assignment_expression ::= unary_expression %= assignment_expression // - case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break; + case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break; } // - // Rule 80: assignment_expression ::= unary_expression -= assignment_expression + // Rule 80: assignment_expression ::= unary_expression += assignment_expression // - case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break; + case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break; } // - // Rule 81: assignment_expression ::= unary_expression <<= assignment_expression + // Rule 81: assignment_expression ::= unary_expression -= assignment_expression // - case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break; + case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break; } // - // Rule 82: assignment_expression ::= unary_expression >>= assignment_expression + // Rule 82: assignment_expression ::= unary_expression <<= assignment_expression // - case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break; + case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 83: assignment_expression ::= unary_expression &= assignment_expression + // Rule 83: assignment_expression ::= unary_expression >>= assignment_expression // - case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break; + case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 84: assignment_expression ::= unary_expression ^= assignment_expression + // Rule 84: assignment_expression ::= unary_expression &= assignment_expression // - case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break; + case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 85: assignment_expression ::= unary_expression |= assignment_expression + // Rule 85: assignment_expression ::= unary_expression ^= assignment_expression // - case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break; + case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 88: expression_list ::= expression_list_actual + // Rule 86: assignment_expression ::= unary_expression |= assignment_expression // - case 88: { action. consumeExpressionList(); break; + case 86: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 90: expression_list_opt ::= $Empty + // Rule 89: expression_list ::= expression_list_actual // - case 90: { action. consumeEmpty(); break; + case 89: { action. consumeExpressionList(); break; } // - // Rule 100: statement ::= ERROR_TOKEN + // Rule 91: expression_list_opt ::= $Empty // - case 100: { action. consumeStatementProblem(); break; + case 91: { action. consumeEmpty(); break; } // - // Rule 101: labeled_statement ::= identifier_token : statement + // Rule 101: statement ::= ERROR_TOKEN // - case 101: { action. consumeStatementLabeled(); break; + case 101: { action. consumeStatementProblem(); break; } // - // Rule 102: labeled_statement ::= case constant_expression : statement + // Rule 102: labeled_statement ::= identifier_token : statement // - case 102: { action. consumeStatementCase(); break; + case 102: { action. consumeStatementLabeled(); break; } // - // Rule 103: labeled_statement ::= default : statement + // Rule 103: labeled_statement ::= case constant_expression : statement // - case 103: { action. consumeStatementDefault(); break; + case 103: { action. consumeStatementCase(); break; } // - // Rule 104: compound_statement ::= { } + // Rule 104: labeled_statement ::= default : statement // - case 104: { action. consumeStatementCompoundStatement(false); break; + case 104: { action. consumeStatementDefault(); break; } // - // Rule 105: compound_statement ::= { block_item_list } + // Rule 105: compound_statement ::= { } // - case 105: { action. consumeStatementCompoundStatement(true); break; + case 105: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 109: block_item ::= declaration + // Rule 106: compound_statement ::= { block_item_list } // - case 109: { action. consumeStatementDeclarationWithDisambiguation(); break; + case 106: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 110: expression_statement ::= ; + // Rule 110: block_item ::= declaration // - case 110: { action. consumeStatementNull(); break; + case 110: { action. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 111: expression_statement ::= expression_in_statement ; + // Rule 111: expression_statement ::= ; // - case 111: { action. consumeStatementExpression(); break; + case 111: { action. consumeStatementNull(); break; } // - // Rule 112: selection_statement ::= if ( expression ) statement + // Rule 112: expression_statement ::= expression_in_statement ; // - case 112: { action. consumeStatementIf(false); break; + case 112: { action. consumeStatementExpression(); break; } // - // Rule 113: selection_statement ::= if ( expression ) statement else statement + // Rule 113: selection_statement ::= if ( expression ) statement // - case 113: { action. consumeStatementIf(true); break; + case 113: { action. consumeStatementIf(false); break; } // - // Rule 114: selection_statement ::= switch ( expression ) statement + // Rule 114: selection_statement ::= if ( expression ) statement else statement // - case 114: { action. consumeStatementSwitch(); break; + case 114: { action. consumeStatementIf(true); break; } // - // Rule 116: expression_opt ::= $Empty + // Rule 115: selection_statement ::= switch ( expression ) statement // - case 116: { action. consumeEmpty(); break; + case 115: { action. consumeStatementSwitch(); break; } // - // Rule 117: iteration_statement ::= do statement while ( expression ) ; + // Rule 117: expression_opt ::= $Empty // - case 117: { action. consumeStatementDoLoop(); break; + case 117: { action. consumeEmpty(); break; } // - // Rule 118: iteration_statement ::= while ( expression ) statement + // Rule 118: iteration_statement ::= do statement while ( expression ) ; // - case 118: { action. consumeStatementWhileLoop(); break; + case 118: { action. consumeStatementDoLoop(); break; } // - // Rule 119: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement + // Rule 119: iteration_statement ::= while ( expression ) statement // - case 119: { action. consumeStatementForLoop(); break; + case 119: { action. consumeStatementWhileLoop(); break; } // - // Rule 120: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement + // Rule 120: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement // case 120: { action. consumeStatementForLoop(); break; } // - // Rule 121: jump_statement ::= goto identifier_token ; + // Rule 121: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement // - case 121: { action. consumeStatementGoto(); break; + case 121: { action. consumeStatementForLoop(); break; } // - // Rule 122: jump_statement ::= continue ; + // Rule 122: jump_statement ::= goto identifier_token ; // - case 122: { action. consumeStatementContinue(); break; + case 122: { action. consumeStatementGoto(); break; } // - // Rule 123: jump_statement ::= break ; + // Rule 123: jump_statement ::= continue ; // - case 123: { action. consumeStatementBreak(); break; + case 123: { action. consumeStatementContinue(); break; } // - // Rule 124: jump_statement ::= return ; + // Rule 124: jump_statement ::= break ; // - case 124: { action. consumeStatementReturn(false); break; + case 124: { action. consumeStatementBreak(); break; } // - // Rule 125: jump_statement ::= return expression ; + // Rule 125: jump_statement ::= return ; // - case 125: { action. consumeStatementReturn(true); break; + case 125: { action. consumeStatementReturn(false); break; } // - // Rule 126: declaration ::= declaration_specifiers ; + // Rule 126: jump_statement ::= return expression ; // - case 126: { action. consumeDeclarationSimple(false); break; + case 126: { action. consumeStatementReturn(true); break; } // - // Rule 127: declaration ::= declaration_specifiers init_declarator_list ; + // Rule 127: declaration ::= declaration_specifiers ; // - case 127: { action. consumeDeclarationSimple(true); break; + case 127: { action. consumeDeclarationSimple(false); break; } // - // Rule 128: declaration_specifiers ::= simple_declaration_specifiers + // Rule 128: declaration ::= declaration_specifiers init_declarator_list ; // - case 128: { action. consumeDeclarationSpecifiersSimple(); break; + case 128: { action. consumeDeclarationSimple(true); break; } // - // Rule 129: declaration_specifiers ::= struct_or_union_declaration_specifiers + // Rule 129: declaration_specifiers ::= simple_declaration_specifiers // - case 129: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; + case 129: { action. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 130: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 130: declaration_specifiers ::= struct_or_union_declaration_specifiers // case 130: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; } // - // Rule 131: declaration_specifiers ::= enum_declaration_specifiers + // Rule 131: declaration_specifiers ::= elaborated_declaration_specifiers // case 131: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; } // - // Rule 132: declaration_specifiers ::= typdef_name_declaration_specifiers + // Rule 132: declaration_specifiers ::= enum_declaration_specifiers // - case 132: { action. consumeDeclarationSpecifiersTypedefName(); break; + case 132: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; } // - // Rule 157: init_declarator ::= complete_declarator = initializer + // Rule 133: declaration_specifiers ::= typdef_name_declaration_specifiers // - case 157: { action. consumeDeclaratorWithInitializer(true); break; + case 133: { action. consumeDeclarationSpecifiersTypedefName(); break; } // - // Rule 159: storage_class_specifier ::= storage_class_specifier_token + // Rule 158: init_declarator ::= complete_declarator = initializer // - case 159: { action. consumeToken(); break; + case 158: { action. consumeDeclaratorWithInitializer(true); break; } // - // Rule 165: simple_type_specifier ::= simple_type_specifier_token + // Rule 160: storage_class_specifier ::= storage_class_specifier_token // - case 165: { action. consumeToken(); break; + case 160: { action. consumeToken(); break; } // - // Rule 178: type_name_specifier ::= identifier_token + // Rule 166: simple_type_specifier ::= simple_type_specifier_token // - case 178: { action. consumeToken(); break; + case 166: { action. consumeToken(); break; } // - // Rule 179: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { struct_declaration_list_opt } + // Rule 179: type_name_specifier ::= identifier_token // - case 179: { action. consumeTypeSpecifierComposite(false); break; + case 179: { action. consumeToken(); break; } // - // Rule 180: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { struct_declaration_list_opt } + // Rule 180: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { struct_declaration_list_opt } // - case 180: { action. consumeTypeSpecifierComposite(true); break; + case 180: { action. consumeTypeSpecifierComposite(false); break; } // - // Rule 185: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token + // Rule 181: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { struct_declaration_list_opt } // - case 185: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break; + case 181: { action. consumeTypeSpecifierComposite(true); break; } // - // Rule 186: elaborated_specifier ::= union elaborated_specifier_hook identifier_token + // Rule 186: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token // - case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break; + case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break; } // - // Rule 187: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token + // Rule 187: elaborated_specifier ::= union elaborated_specifier_hook identifier_token // - case 187: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break; + case 187: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break; } // - // Rule 193: struct_declaration ::= specifier_qualifier_list struct_declarator_list ; + // Rule 188: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token // - case 193: { action. consumeStructDeclaration(true); break; + case 188: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break; } // - // Rule 194: struct_declaration ::= specifier_qualifier_list ; + // Rule 194: struct_declaration ::= specifier_qualifier_list struct_declarator_list ; // - case 194: { action. consumeStructDeclaration(false); break; + case 194: { action. consumeStructDeclaration(true); break; } // - // Rule 195: struct_declaration ::= ERROR_TOKEN + // Rule 195: struct_declaration ::= specifier_qualifier_list ; // - case 195: { action. consumeDeclarationProblem(); break; + case 195: { action. consumeStructDeclaration(false); break; } // - // Rule 201: struct_declarator ::= : constant_expression + // Rule 196: struct_declaration ::= ERROR_TOKEN // - case 201: { action. consumeBitField(false); break; + case 196: { action. consumeDeclarationProblem(); break; } // - // Rule 202: struct_declarator ::= declarator : constant_expression + // Rule 202: struct_declarator ::= : constant_expression // - case 202: { action. consumeBitField(true); break; + case 202: { action. consumeBitField(false); break; } // - // Rule 203: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } + // Rule 203: struct_declarator ::= declarator : constant_expression // - case 203: { action. consumeTypeSpecifierEnumeration(false); break; + case 203: { action. consumeBitField(true); break; } // - // Rule 204: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } + // Rule 204: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } // - case 204: { action. consumeTypeSpecifierEnumeration(true); break; + case 204: { action. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 210: enumerator ::= identifier_token + // Rule 205: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } // - case 210: { action. consumeEnumerator(false); break; + case 205: { action. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 211: enumerator ::= identifier_token = constant_expression + // Rule 211: enumerator ::= identifier_token // - case 211: { action. consumeEnumerator(true); break; + case 211: { action. consumeEnumerator(false); break; } // - // Rule 212: type_qualifier ::= type_qualifier_token + // Rule 212: enumerator ::= identifier_token = constant_expression // - case 212: { action. consumeToken(); break; + case 212: { action. consumeEnumerator(true); break; } // - // Rule 216: function_specifier ::= inline + // Rule 213: type_qualifier ::= type_qualifier_token // - case 216: { action. consumeToken(); break; + case 213: { action. consumeToken(); break; } // - // Rule 218: declarator ::= pointer_seq direct_declarator + // Rule 217: function_specifier ::= inline // - case 218: { action. consumeDeclaratorWithPointer(true); break; + case 217: { action. consumeToken(); break; } // - // Rule 223: basic_direct_declarator ::= declarator_id_name + // Rule 219: declarator ::= pointer_seq direct_declarator // - case 223: { action. consumeDirectDeclaratorIdentifier(); break; + case 219: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 224: basic_direct_declarator ::= ( declarator ) + // Rule 224: basic_direct_declarator ::= declarator_id_name // - case 224: { action. consumeDirectDeclaratorBracketed(); break; + case 224: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 225: declarator_id_name ::= identifier + // Rule 225: basic_direct_declarator ::= ( declarator ) // - case 225: { action. consumeIdentifierName(); break; + case 225: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 226: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 226: declarator_id_name ::= identifier // - case 226: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 226: { action. consumeIdentifierName(); break; } // - // Rule 227: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 227: array_direct_declarator ::= basic_direct_declarator array_modifier // case 227: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 229: function_direct_declarator ::= basic_direct_declarator ( parameter_type_list ) + // Rule 228: array_direct_declarator ::= array_direct_declarator array_modifier // - case 229: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; + case 228: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 230: function_direct_declarator ::= basic_direct_declarator ( ) + // Rule 230: function_direct_declarator ::= basic_direct_declarator ( parameter_type_list ) // - case 230: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; + case 230: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; } // - // Rule 232: function_declarator ::= pointer_seq function_direct_declarator + // Rule 231: function_direct_declarator ::= basic_direct_declarator ( ) // - case 232: { action. consumeDeclaratorWithPointer(true); break; + case 231: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; } // - // Rule 233: knr_direct_declarator ::= basic_direct_declarator ( identifier_list ) + // Rule 233: function_declarator ::= pointer_seq function_direct_declarator // - case 233: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break; + case 233: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 235: knr_function_declarator ::= pointer_seq knr_direct_declarator + // Rule 234: knr_direct_declarator ::= basic_direct_declarator ( identifier_list ) // - case 235: { action. consumeDeclaratorWithPointer(true); break; + case 234: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break; } // - // Rule 236: identifier_list ::= identifier + // Rule 236: knr_function_declarator ::= pointer_seq knr_direct_declarator // - case 236: { action. consumeIdentifierKnR(); break; + case 236: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 237: identifier_list ::= identifier_list , identifier + // Rule 237: identifier_list ::= identifier // case 237: { action. consumeIdentifierKnR(); break; } // - // Rule 238: array_modifier ::= [ ] + // Rule 238: identifier_list ::= identifier_list , identifier // - case 238: { action. consumeDirectDeclaratorArrayModifier(false); break; + case 238: { action. consumeIdentifierKnR(); break; } // - // Rule 239: array_modifier ::= [ array_modifier_type_qualifiers ] + // Rule 239: array_modifier ::= [ ] // - case 239: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break; + case 239: { action. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 240: array_modifier ::= [ assignment_expression ] + // Rule 240: array_modifier ::= [ array_modifier_type_qualifiers ] // - case 240: { action. consumeDirectDeclaratorArrayModifier(true); break; + case 240: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break; } // - // Rule 241: array_modifier ::= [ array_modifier_type_qualifiers assignment_expression ] + // Rule 241: array_modifier ::= [ assignment_expression ] // - case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break; + case 241: { action. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 242: array_modifier ::= [ static assignment_expression ] + // Rule 242: array_modifier ::= [ array_modifier_type_qualifiers assignment_expression ] // - case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break; + case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break; } // - // Rule 243: array_modifier ::= [ static array_modifier_type_qualifiers assignment_expression ] + // Rule 243: array_modifier ::= [ static assignment_expression ] // - case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; + case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break; } // - // Rule 244: array_modifier ::= [ array_modifier_type_qualifiers static assignment_expression ] + // Rule 244: array_modifier ::= [ static array_modifier_type_qualifiers assignment_expression ] // case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; } // - // Rule 245: array_modifier ::= [ * ] + // Rule 245: array_modifier ::= [ array_modifier_type_qualifiers static assignment_expression ] // - case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break; + case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; } // - // Rule 246: array_modifier ::= [ array_modifier_type_qualifiers * ] + // Rule 246: array_modifier ::= [ * ] // - case 246: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break; + case 246: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break; } // - // Rule 248: pointer_seq ::= pointer_hook * + // Rule 247: array_modifier ::= [ array_modifier_type_qualifiers * ] // - case 248: { action. consumePointer(); break; + case 247: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break; } // - // Rule 249: pointer_seq ::= pointer_seq pointer_hook * + // Rule 249: pointer_seq ::= pointer_hook * pointer_hook // case 249: { action. consumePointer(); break; } // - // Rule 250: pointer_seq ::= pointer_hook * type_qualifier_list + // Rule 250: pointer_seq ::= pointer_seq pointer_hook * pointer_hook // - case 250: { action. consumePointerTypeQualifierList(); break; + case 250: { action. consumePointer(); break; } // - // Rule 251: pointer_seq ::= pointer_seq pointer_hook * type_qualifier_list + // Rule 251: pointer_seq ::= pointer_hook * pointer_hook type_qualifier_list // case 251: { action. consumePointerTypeQualifierList(); break; } // - // Rule 255: parameter_type_list ::= parameter_list + // Rule 252: pointer_seq ::= pointer_seq pointer_hook * pointer_hook type_qualifier_list // - case 255: { action. consumeEmpty(); break; + case 252: { action. consumePointerTypeQualifierList(); break; } // - // Rule 256: parameter_type_list ::= parameter_list , ... + // Rule 256: parameter_type_list ::= parameter_list // - case 256: { action. consumePlaceHolder(); break; + case 256: { action. consumeEmpty(); break; } // - // Rule 257: parameter_type_list ::= ... + // Rule 257: parameter_type_list ::= parameter_list , ... // case 257: { action. consumePlaceHolder(); break; } // - // Rule 260: parameter_declaration ::= declaration_specifiers complete_parameter_declarator + // Rule 258: parameter_type_list ::= ... // - case 260: { action. consumeParameterDeclaration(); break; + case 258: { action. consumePlaceHolder(); break; } // - // Rule 261: parameter_declaration ::= declaration_specifiers + // Rule 261: parameter_declaration ::= declaration_specifiers complete_parameter_declarator // - case 261: { action. consumeParameterDeclarationWithoutDeclarator(); break; + case 261: { action. consumeParameterDeclaration(); break; } // - // Rule 264: type_id ::= specifier_qualifier_list + // Rule 262: parameter_declaration ::= declaration_specifiers // - case 264: { action. consumeTypeId(false); break; + case 262: { action. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 265: type_id ::= specifier_qualifier_list abstract_declarator + // Rule 265: type_id ::= specifier_qualifier_list // - case 265: { action. consumeTypeId(true); break; + case 265: { action. consumeTypeId(false); break; } // - // Rule 267: abstract_declarator ::= pointer_seq + // Rule 266: type_id ::= specifier_qualifier_list abstract_declarator // - case 267: { action. consumeDeclaratorWithPointer(false); break; + case 266: { action. consumeTypeId(true); break; } // - // Rule 268: abstract_declarator ::= pointer_seq direct_abstract_declarator + // Rule 268: abstract_declarator ::= pointer_seq // case 268: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 272: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 269: abstract_declarator ::= pointer_seq direct_abstract_declarator // - case 272: { action. consumeDirectDeclaratorBracketed(); break; + case 269: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 273: array_direct_abstract_declarator ::= array_modifier + // Rule 273: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 273: { action. consumeDirectDeclaratorArrayDeclarator(false); break; + case 273: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 274: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 274: array_direct_abstract_declarator ::= array_modifier // - case 274: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 274: { action. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 275: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 275: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // case 275: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 276: function_direct_abstract_declarator ::= ( ) + // Rule 276: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 276: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break; + case 276: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 277: function_direct_abstract_declarator ::= ( ) + // + case 277: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break; } // - // Rule 277: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( ) + // Rule 278: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( ) // - case 277: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; + case 278: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; } // - // Rule 278: function_direct_abstract_declarator ::= ( parameter_type_list ) + // Rule 279: function_direct_abstract_declarator ::= ( parameter_type_list ) // - case 278: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break; + case 279: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break; } // - // Rule 279: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_type_list ) + // Rule 280: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_type_list ) // - case 279: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; + case 280: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; } // - // Rule 280: initializer ::= assignment_expression + // Rule 281: initializer ::= assignment_expression // - case 280: { action. consumeInitializer(); break; + case 281: { action. consumeInitializer(); break; } // - // Rule 281: initializer ::= start_initializer_list { initializer_list comma_opt } end_initializer_list - // - case 281: { action. consumeInitializerList(); break; - } - - // - // Rule 282: initializer ::= { } + // Rule 282: initializer ::= start_initializer_list { initializer_list comma_opt } end_initializer_list // case 282: { action. consumeInitializerList(); break; } // - // Rule 283: start_initializer_list ::= $Empty + // Rule 283: initializer ::= { } // - case 283: { action. initializerListStart(); break; + case 283: { action. consumeInitializerList(); break; } // - // Rule 284: end_initializer_list ::= $Empty + // Rule 284: start_initializer_list ::= $Empty // - case 284: { action. initializerListEnd(); break; + case 284: { action. initializerListStart(); break; } // - // Rule 289: designated_initializer ::= designation = initializer + // Rule 285: end_initializer_list ::= $Empty // - case 289: { action. consumeInitializerDesignated(); break; + case 285: { action. initializerListEnd(); break; } // - // Rule 293: designator_base ::= [ constant_expression ] + // Rule 290: designated_initializer ::= designation = initializer // - case 293: { action. consumeDesignatorArray(); break; + case 290: { action. consumeInitializerDesignated(); break; } // - // Rule 294: designator_base ::= . identifier_token + // Rule 294: designator_base ::= [ constant_expression ] // - case 294: { action. consumeDesignatorField(); break; + case 294: { action. consumeDesignatorArray(); break; } // - // Rule 295: designator ::= [ constant_expression ] + // Rule 295: designator_base ::= . identifier_token // - case 295: { action. consumeDesignatorArray(); break; + case 295: { action. consumeDesignatorField(); break; } // - // Rule 296: designator ::= . identifier_token + // Rule 296: designator ::= [ constant_expression ] // - case 296: { action. consumeDesignatorField(); break; + case 296: { action. consumeDesignatorArray(); break; } // - // Rule 297: translation_unit ::= external_declaration_list + // Rule 297: designator ::= . identifier_token // - case 297: { action. consumeTranslationUnit(); break; + case 297: { action. consumeDesignatorField(); break; + } + + // + // Rule 298: translation_unit ::= external_declaration_list + // + case 298: { action. consumeTranslationUnit(); break; } // - // Rule 298: translation_unit ::= $Empty + // Rule 299: translation_unit ::= $Empty // - case 298: { action. consumeTranslationUnit(); break; + case 299: { action. consumeTranslationUnit(); break; } // - // Rule 303: external_declaration ::= ; + // Rule 304: external_declaration ::= ; // - case 303: { action. consumeDeclarationEmpty(); break; + case 304: { action. consumeDeclarationEmpty(); break; } // - // Rule 304: external_declaration ::= ERROR_TOKEN + // Rule 305: external_declaration ::= ERROR_TOKEN // - case 304: { action. consumeDeclarationProblem(); break; + case 305: { action. consumeDeclarationProblem(); break; } // - // Rule 307: function_definition ::= declaration_specifiers function_declarator function_body + // Rule 308: function_definition ::= declaration_specifiers function_declarator function_body // - case 307: { action. consumeFunctionDefinition(true); break; + case 308: { action. consumeFunctionDefinition(true); break; } // - // Rule 308: function_definition ::= function_declarator function_body + // Rule 309: function_definition ::= function_declarator function_body // - case 308: { action. consumeFunctionDefinition(false); break; + case 309: { action. consumeFunctionDefinition(false); break; } // - // Rule 309: function_definition ::= declaration_specifiers knr_function_declarator declaration_list compound_statement + // Rule 310: function_definition ::= declaration_specifiers knr_function_declarator declaration_list compound_statement // - case 309: { action. consumeFunctionDefinitionKnR(); break; + case 310: { action. consumeFunctionDefinitionKnR(); break; } // - // Rule 310: function_body ::= { } + // Rule 311: function_body ::= { } // - case 310: { action. consumeStatementCompoundStatement(false); break; + case 311: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 311: function_body ::= { block_item_list } + // Rule 312: function_body ::= { block_item_list } // - case 311: { action. consumeStatementCompoundStatement(true); break; + case 312: { action. consumeStatementCompoundStatement(true); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parserprs.java index 74a6e8b789c..fcf44170dc3 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 @@ -34,234 +34,240 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface BaseCheck { public final static short baseCheck[] = {0, - 0,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3,1,1, - 4,4,3,3,2,2,8,1,0,1, - 1,2,2,2,2,2,2,2,2,2, - 4,1,4,1,3,3,3,1,3,3, - 1,3,3,1,3,3,3,3,1,3, - 3,1,3,1,3,1,3,1,3,1, - 3,1,5,1,3,3,3,3,3,3, - 3,3,3,3,3,1,1,2,1,0, - 1,3,1,1,1,1,1,1,1,1, - 3,4,3,2,4,1,2,1,1,1, - 2,5,7,5,1,0,7,5,9,8, - 3,2,2,2,3,2,4,2,2,2, - 2,2,1,1,1,1,2,1,2,2, - 2,1,2,2,1,2,2,1,2,2, - 1,2,2,1,3,1,3,1,1,1, + 0,0,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,3,1, + 1,4,4,3,3,2,2,8,1,0, + 1,1,2,2,2,2,2,2,2,2, + 2,4,1,4,1,3,3,3,1,3, + 3,1,3,3,1,3,3,3,3,1, + 3,3,1,3,1,3,1,3,1,3, + 1,3,1,5,1,3,3,3,3,3, + 3,3,3,3,3,3,1,1,2,1, + 0,1,3,1,1,1,1,1,1,1, + 1,3,4,3,2,4,1,2,1,1, + 1,2,5,7,5,1,0,7,5,9, + 8,3,2,2,2,3,2,4,2,2, + 2,2,2,1,1,1,1,2,1,2, + 2,2,1,2,2,1,2,2,1,2, + 2,1,2,2,1,3,1,3,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,6,8, - 0,0,1,1,3,3,3,0,1,0, - 1,2,4,2,1,1,1,3,1,1, - 2,3,7,8,0,1,0,1,3,1, - 3,1,1,1,1,1,1,3,1,1, - 1,1,1,3,1,2,2,1,5,3, - 1,3,5,1,3,1,3,2,4,3, - 5,4,6,6,3,5,1,2,3,4, - 5,0,1,2,1,3,1,1,3,2, - 1,1,1,1,2,1,2,3,1,1, - 1,3,1,2,2,2,3,4,5,1, - 7,3,0,0,1,1,3,3,4,1, - 1,2,3,2,3,2,1,0,1,2, - 1,1,1,1,1,2,4,3,6,2, - 4,-73,0,-2,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-28, - 0,0,-137,0,-17,-133,0,0,-260,0, - -6,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-191,0,0,0, - 0,0,0,-23,0,0,0,0,-19,0, - -3,0,0,0,0,0,0,-121,-120,0, - 0,0,0,0,0,0,-18,0,0,0, + 1,1,1,1,1,1,1,1,1,6, + 8,0,0,1,1,3,3,3,0,1, + 0,1,2,4,2,1,1,1,3,1, + 1,2,3,7,8,0,1,0,1,3, + 1,3,1,1,1,1,1,1,3,1, + 1,1,1,1,3,1,2,2,1,5, + 3,1,3,5,1,3,1,3,2,4, + 3,5,4,6,6,3,5,1,3,4, + 5,6,0,1,2,1,3,1,1,3, + 2,1,1,1,1,2,1,2,3,1, + 1,1,3,1,2,2,2,3,4,5, + 1,7,3,0,0,1,1,3,3,4, + 1,1,2,3,2,3,2,1,0,1, + 2,1,1,1,1,1,2,4,3,6, + 2,4,-73,0,-2,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-141,0,0,0,0,0,0,0,-87, - 0,-146,0,0,0,0,0,0,0,0, + -28,0,0,-6,0,-23,0,0,0,-185, + 0,-48,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-4,-82,0, + 0,0,0,0,-24,0,0,0,0,0, + -37,-3,0,0,0,0,0,0,-190,-193, + 0,0,0,0,0,0,0,-18,0,0, + 0,0,0,0,0,0,0,0,0,-110, + 0,0,0,-19,0,-34,0,0,0,0, + 0,-86,0,-9,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-34,0,0,0,0,0,0, - 0,0,0,0,0,0,-163,0,0,0, - 0,0,0,0,-182,0,0,0,0,0, + 0,0,0,0,0,0,-25,0,0,0, + 0,0,0,0,0,0,0,-163,0,0, + 0,0,0,0,0,-182,0,-20,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-241,0,0,0,0,0,0,0, + 0,0,0,-242,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -30,0,0,-284,0,-271,0,0,0,0, + 0,-30,0,0,-11,0,-273,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-37,0,-183,0, - -256,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-145,0,0, + 0,0,0,0,0,0,0,-59,0,-183, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-20,0,0,0,0, - 0,0,0,0,-176,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-118,0, 0,0,0,0,0,0,0,0,0,0, - 0,-53,-29,0,0,-32,0,-274,0,0, + 0,0,0,0,0,0,-146,0,0,0, + 0,-29,0,0,0,-180,0,-38,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-207,0,0,-39,0,-276,0, 0,0,0,0,0,0,0,0,0,0, - -51,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-41,0,0,-22, + 0,0,-51,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-180,0,-9,0,0,0,0, - 0,0,0,0,0,0,0,0,-38,0, - 0,-39,-55,0,0,0,0,0,0,0, + 0,0,0,-45,0,-181,0,-47,0,0, + 0,0,0,0,0,0,0,0,0,-62, + 0,0,0,-55,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -204,0,0,-35,0,0,0,-285,0,-41, + 0,0,0,0,-35,0,0,0,-287,0, + -266,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-60,0,0,-63, + 0,-174,0,-14,0,0,0,0,0,0, + 0,0,0,0,0,-121,0,0,-147,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-264,0,0,-263,0, - -181,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-123,0,0,-118,0,0, + 0,0,0,0,0,0,0,0,0,-12, + 0,0,0,-26,0,0,-81,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-241,0,0,-43,0,-108, + 0,-145,0,-65,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-33,0,0,-81,0,0,0,0, + 0,0,-17,0,0,0,0,0,0,-66, + 0,0,0,0,-27,0,0,0,0,0, + 0,0,-209,-50,0,0,-69,0,0,0, + 0,0,0,0,0,0,-71,-44,0,0, + -68,0,0,0,-61,0,0,0,0,0, + 0,0,0,0,-36,0,-32,0,0,0, + 0,0,0,-70,0,-144,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-45,0,0,0,0,-108,0, - -70,0,-47,0,0,0,0,0,0,0, + 0,0,0,0,-148,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-49,-62,0,0,-174,0,-59,0,0, - 0,0,0,0,0,0,0,0,-4,0, - 0,0,0,0,-11,0,0,0,0,0, - -50,-190,0,0,0,-63,0,0,0,0, - 0,0,0,0,0,0,0,-12,0,0, - 0,0,0,0,-65,0,0,0,0,0, - 0,0,-147,0,-82,0,0,0,0,0, + 0,0,0,0,0,0,0,-93,0,-74, + 0,0,0,0,0,-149,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -66,0,0,-106,0,-148,0,0,0,0, + 0,0,0,-33,0,0,-280,0,-150,0, + -106,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-84,0,0,0, + 0,-151,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-149,0, + 0,0,-142,0,-152,0,-158,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-142,0,0,-158, - 0,-150,0,0,0,0,0,0,0,0, + 0,0,-159,0,0,0,0,-153,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-151,0,-144,0,0,0, + 0,0,0,0,0,0,0,0,-186,0, + -154,0,-187,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-195,0, + 0,-95,0,-155,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-186,0,0,-159,0,-152,0,-187, + 0,0,0,0,0,0,-156,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-197,0,0,-198,0,-157, + 0,-218,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -153,0,-69,0,0,0,0,0,0,0, + 0,0,-201,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-195,0,-154,0,0,0,0,0,0, + -219,0,0,-133,0,-206,0,-137,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-197,0,0,0,0,-155,0,-212,0, + 0,0,0,0,0,0,-211,0,-220,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-198,0,-156, - 0,-43,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-96,0,-94, + 0,0,0,0,0,0,0,-212,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-157,0,-217,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -36,0,0,-71,0,-201,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-218,0,0,-205,0,-206,0, - -74,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-210, - 0,-219,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-86,0,0,0,0,0,0,0, - -211,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-238,0, - 0,-248,0,-250,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-270,0,-283,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-172,0,-84,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,-95,0,0,-288,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-207,0,-96, - -77,0,-278,-42,0,0,-97,-175,0,0, - 0,0,0,0,0,0,0,0,0,0, - -22,0,0,-165,0,0,-98,0,-24,0, - 0,0,0,0,0,0,0,0,0,-99, - -135,-68,0,0,0,-57,0,0,-177,0, - 0,0,0,0,0,0,0,0,0,0, - -85,0,0,0,0,-107,0,0,-208,0, - -164,0,0,0,0,0,0,0,0,0, - 0,0,0,-100,0,0,0,0,0,-237, - -262,0,0,0,0,0,0,-25,0,0, - 0,0,0,0,-26,0,-7,0,0,0, - 0,0,0,0,0,0,-60,0,-125,0, - 0,0,0,0,0,0,-101,0,-27,0, - 0,0,0,-14,0,-102,0,0,-44,0, - 0,0,0,-64,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-8,-103, - 0,0,-61,0,0,0,-220,-46,0,0, - 0,0,0,0,0,0,0,0,0,0, - -188,-31,0,0,0,-185,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-267,0,0,0,0,0, - -67,0,-239,-48,0,0,0,0,0,0, - -104,0,0,0,0,0,0,0,0,-199, - 0,0,0,-72,0,0,0,0,0,0, - 0,-16,0,-21,0,0,-76,0,0,-105, - 0,0,0,0,-40,-117,0,0,0,0, + 0,0,0,0,0,0,0,0,-97,0, + -251,0,-98,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-99,0, + 0,-262,0,-204,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,-78, - 0,0,-124,0,0,-83,0,0,0,0, - 0,0,-111,-109,0,0,0,0,0,0, - 0,0,0,0,0,0,-56,-112,0,0, - 0,0,-132,0,0,0,-52,0,0,-240, - -114,0,0,0,0,0,-170,0,-115,0, - 0,0,0,0,0,0,0,0,0,-192, - 0,0,0,0,0,-116,0,0,0,0, - 0,0,-136,0,0,0,0,0,-79,0, - 0,0,0,0,0,0,0,-126,0,0, - -122,-255,0,0,-127,-119,0,0,0,0, - -130,0,0,0,0,0,-194,0,0,-128, - 0,0,-129,0,0,0,0,0,0,0, - 0,0,0,-253,0,-276,0,0,-88,0, + 0,0,-46,0,0,-100,-77,0,-76,-165, + 0,0,-272,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-200,0,0,0,0, - 0,-242,-249,0,0,0,0,0,-131,-189, - 0,-138,0,0,0,-203,0,0,-139,0, + 0,0,0,-279,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-178,0,-196,0,0,0,0,0,0, - 0,0,0,-244,0,0,0,0,-134,0, - 0,0,0,0,-209,-140,0,0,0,0, - 0,0,0,-221,0,-222,0,0,-246,0, - 0,0,0,0,0,0,0,0,0,-223, - 0,0,-224,-193,-225,0,0,-89,0,0, + 0,0,0,0,-278,0,-136,0,-21,-239, + 0,-53,-101,0,-290,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-247,0,0,-254,-272, - 0,-252,0,0,-91,0,-226,0,0,0, - 0,0,0,0,-266,0,0,-282,0,0, - 0,-279,0,0,0,0,0,0,0,0, - 0,-110,0,0,0,0,-281,0,0,-289, + 0,0,0,0,0,0,-58,0,0,-164, + 0,-42,0,0,0,0,0,0,-102,-67, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-290,0,0,-273,0,-227,0, - 0,-293,0,0,-54,-286,0,0,0,0, - 0,0,0,0,0,-269,0,0,0,0, - -90,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-287,0, - 0,0,0,-228,0,-229,0,0,0,0, - -291,0,0,0,-230,-231,0,0,0,0, - 0,-232,-233,-234,-215,-179,0,0,0,0, - 0,0,0,0,0,0,0,-171,0,-235, + 0,-254,0,0,-83,0,0,0,0,0, + 0,0,0,0,0,0,0,-72,-134,0, + 0,-117,-103,-57,0,0,0,0,0,0, + 0,-104,0,0,0,0,0,-141,-107,0, + 0,0,0,-105,0,0,0,0,-109,0, + 0,0,0,0,0,0,0,0,0,-213, + -143,0,0,0,0,-79,-111,0,0,0, + 0,-238,0,0,0,0,0,0,-112,0, + 0,0,0,0,0,0,0,-125,0,0, + 0,-160,0,0,0,0,0,0,0,0, + -132,-188,0,0,-114,0,0,-115,0,-119, + -265,0,0,-191,0,0,0,0,0,0, + 0,0,0,-194,0,-87,0,0,0,0, + 0,0,0,0,0,0,-31,0,0,0, + 0,0,-116,0,0,0,0,0,0,0, + 0,0,0,0,0,-123,0,0,0,0, + 0,0,0,-199,0,0,-135,0,0,-140, + -122,0,0,-127,-16,0,0,0,0,-264, + 0,0,0,-217,0,0,-192,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -1,0,0,-173,0,-292,0,0,0,0, - 0,0,0,-216,0,0,-236,-160,0,0, - -251,-258,0,0,0,-213,0,0,0,0, - 0,0,0,0,-92,0,0,0,0,0, - 0,0,0,-259,0,-113,0,0,0,0, - 0,0,0,0,-268,-275,0,0,0,0, - 0,0,-143,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-167,0, + 0,-257,0,0,0,-130,0,-131,-175,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,-169,0,-10, - 0,0,0,0,0,0,0,0,-214,0, - 0,0,0,0,0,0,0,-257,-5,0, - 0,0,0,0,0,0,-13,0,0,-75, - -15,0,0,0,0,-80,0,0,0,0, + 0,0,0,0,0,0,-289,0,-205,0, + -221,-243,0,-64,0,0,0,-269,0,-40, + 0,0,0,0,0,0,0,0,0,0, + -249,0,-253,0,0,-126,0,0,-285,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-274,-138,0,-139,0,0,-128,0,0, + -129,-255,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-91,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-200,0,0,-196,0,0,0, + -250,0,0,0,0,0,0,-256,-210,-222, + -189,0,0,-203,0,0,0,-223,0,-275, + -293,0,0,0,0,0,0,0,0,-176, + 0,-268,0,0,0,0,0,0,0,0, + 0,-245,0,0,0,0,0,0,-286,0, + 0,0,0,-208,0,0,0,0,0,0, + 0,0,0,0,-283,0,-247,0,0,0, + 0,0,0,0,0,0,0,-224,0,0, + -225,-244,0,0,0,-88,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-248,0,0,-281,-292,0,-216, + 0,0,-214,0,-226,0,0,0,0,0, + 0,0,-227,0,0,-284,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-228, + -229,-230,0,0,-288,0,0,-291,0,0, + -231,-232,0,0,0,0,0,0,0,0, + 0,-233,0,0,-234,0,-294,-235,0,-295, + 0,0,-54,-236,0,0,0,0,0,0, + 0,0,0,-271,0,0,-237,0,-89,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-252,0,-260,-261,0, + 0,0,-270,-277,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-177,0,0,0,0,0,0, + 0,0,0,0,0,-170,0,0,0,0, + 0,0,0,0,0,0,0,0,-178,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-49,0,0,0,0, + 0,0,-179,0,-7,0,0,0,0,0, + 0,0,0,0,-171,0,0,0,0,0, + 0,0,0,0,0,-1,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-56,0,0,0,0,-124,0,0,0, + 0,0,0,0,0,0,-172,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-202,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-173,0,0, + 0,0,0,0,0,0,0,-90,0,0, + 0,0,0,0,0,0,-92,0,0,0, + 0,0,0,0,0,-113,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-93, + 0,0,-167,0,0,0,0,0,0,0, + 0,0,0,-168,0,0,0,0,0,0, + 0,0,-169,0,-8,0,0,0,0,0, + 0,-215,0,0,0,0,0,0,0,0, + -240,-5,0,0,-259,0,0,0,0,0, + 0,0,0,-10,0,0,-166,0,0,0, + 0,0,0,0,0,0,-13,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-15,0,0,0,0,-75,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-80, + 0,0,0,0,0,-85,-120,0,0,0, + 0,0,0,0,-161,-162,0,0,0,-202, + -258,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-52,0,0,-263,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-267,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-282,-184,0,0,-246, 0,0,0,0,0,0,0,0,0,0, - 0,0,-94,0,0,0,0,0,0,0, - -161,-162,0,0,0,0,0,0,-261,0, - 0,0,0,0,0,0,0,-58,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-243,0,0,0,0,0,0,0,0, - -265,-280,0,0,0,0,0,0,0,-166, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-184,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-245, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0 @@ -274,239 +280,245 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface BaseAction { public final static char baseAction[] = { - 106,2,39,39,23,23,41,41,18,18, - 1,1,3,3,3,3,4,4,4,5, - 6,6,6,6,6,6,6,6,68,68, - 90,7,7,7,7,7,7,7,7,7, - 7,7,8,8,9,9,9,9,10,10, - 10,11,11,11,12,12,12,12,12,13, - 13,13,14,14,15,15,16,16,17,17, - 19,19,20,20,22,22,22,22,22,22, - 22,22,22,22,22,22,29,27,21,107, - 107,92,92,54,30,30,30,30,30,30, - 30,31,31,31,28,28,93,93,69,69, - 32,32,33,33,33,61,61,34,34,34, - 34,35,35,35,35,35,47,47,24,24, - 24,24,24,48,48,48,83,83,78,78, - 78,78,79,79,79,80,80,80,81,81, - 81,82,82,82,94,94,84,84,85,49, - 51,51,51,51,51,62,64,64,64,64, - 64,64,64,64,64,64,64,64,73,70, - 70,108,109,74,74,71,71,71,86,95, - 95,96,96,87,87,87,55,110,110,97, - 98,98,98,72,72,111,99,99,100,100, - 88,88,25,26,26,26,50,52,52,42, - 42,42,42,36,36,37,43,43,44,38, - 38,101,101,45,113,113,112,112,46,46, - 46,46,46,46,46,46,46,102,53,53, - 53,53,40,75,75,65,65,65,66,66, - 56,56,114,114,77,77,76,76,76,57, - 57,57,58,59,59,59,60,60,60,60, - 63,63,63,67,115,91,91,91,91,89, - 116,117,117,118,118,119,119,106,106,120, - 120,103,103,103,103,121,121,104,104,104, - 105,105,292,1729,754,16,20,17,1274,1248, - 44,1300,1327,1307,1384,1340,1436,1427,1521,1460, - 622,1550,74,1261,91,331,1509,134,212,1407, - 19,324,16,20,17,1274,42,44,1300,1327, - 1307,1384,1340,1436,1427,1521,1460,1509,1550,73, - 136,133,135,159,322,1062,556,223,232,296, - 773,1051,178,335,138,583,165,179,421,1110, - 718,312,142,145,148,151,636,581,330,1482, - 1407,1459,2090,2117,2121,1542,134,212,282,87, - 87,1127,1161,1534,1671,1012,115,556,223,231, - 1407,19,1295,16,20,17,1274,42,39,136, - 133,135,159,586,223,228,1804,254,212,217, - 743,220,222,138,908,165,1607,254,212,491, - 1677,142,145,148,151,636,308,587,30,1407, - 1459,2090,2117,2121,1542,1407,19,230,16,20, - 17,1274,42,44,1300,1327,1307,1384,1340,1436, - 1427,1953,341,1350,19,696,16,20,17,1274, - 1248,44,1300,1327,1307,1384,1340,1436,1427,1521, - 1460,440,1550,74,459,280,1369,19,696,16, - 20,17,1274,1248,44,1300,1327,1307,1384,1340, - 1436,1427,1521,1460,224,1550,74,892,280,1407, - 19,1506,16,20,17,1274,42,44,1300,1327, - 1307,1384,1340,1436,1954,127,285,24,1223,19, - 1598,16,20,17,1274,1248,44,1300,1327,1307, - 1384,1340,1436,1427,1521,1460,314,1550,74,285, - 1039,773,286,1598,699,1407,19,273,16,20, - 17,1274,42,44,1300,1327,1889,239,268,963, - 970,271,421,746,769,286,1006,1227,1265,19, - 696,16,20,17,1274,1248,44,1300,1327,1307, - 1384,1340,1436,1427,1521,1460,1534,1550,74,281, - 280,1199,19,1576,16,20,17,1274,1248,44, - 1300,1327,1307,1384,1340,1436,1427,1521,1460,305, - 1550,74,226,855,1407,19,176,16,20,17, - 1274,42,44,1300,1327,1307,1384,1340,1946,357, - 238,287,501,1242,19,1598,16,20,17,1274, - 1248,44,1300,1327,1307,1384,1340,1436,1427,1521, - 1460,1261,1550,74,421,280,582,288,1388,19, - 442,16,20,17,1274,1248,44,1300,1327,1307, - 1384,1340,1436,1427,1521,1460,412,1550,74,1523, - 280,1407,19,1862,16,20,17,1274,42,44, - 1300,1327,1307,1384,1952,421,157,718,1407,19, - 1598,16,20,17,1274,1248,44,1300,1327,1307, - 1384,1340,1436,1427,1521,1460,87,1550,74,1832, - 91,289,1032,913,364,1598,1426,19,2043,16, - 20,17,1274,1248,44,1300,1327,1307,1384,1340, - 1436,1427,1521,1460,626,1550,74,1887,947,1108, - 178,1407,19,788,16,20,17,1274,42,44, - 1300,1327,1307,1384,1340,1436,1427,1521,1460,227, - 1550,93,622,708,134,212,1407,19,1045,16, - 20,17,1274,42,44,1300,1327,1307,1805,419, - 1671,1544,2036,1303,291,355,123,136,133,135, - 159,908,1113,2126,769,1665,747,126,586,223, - 228,138,773,165,218,743,220,222,505,142, - 145,148,151,636,230,790,1366,1407,1459,2090, - 2117,2121,1542,1407,19,359,16,20,17,1274, - 1248,44,1300,1327,1307,1384,1340,1436,1427,1521, - 1460,794,1550,74,440,85,1407,19,259,16, - 20,17,1274,1248,44,1300,1327,1307,1384,1340, - 1436,1427,1521,1460,240,1550,74,229,84,1407, - 19,1329,16,20,17,1274,1248,44,1300,1327, - 1307,1384,1340,1436,1427,1521,1460,1000,1550,74, - 440,83,1407,19,1398,16,20,17,1274,1248, - 44,1300,1327,1307,1384,1340,1436,1427,1521,1460, - 233,1550,74,2099,82,1407,19,359,16,20, - 17,1274,1248,44,1300,1327,1307,1384,1340,1436, - 1427,1521,1460,1176,1550,74,440,81,1407,19, - 1287,16,20,17,1274,1248,44,1300,1327,1307, - 1384,1340,1436,1427,1521,1460,242,1550,74,18, - 80,1407,19,54,16,20,17,1274,1248,44, - 1300,1327,1307,1384,1340,1436,1427,1521,1460,275, - 1550,74,440,79,1407,19,274,16,20,17, - 1274,1248,44,1300,1327,1307,1384,1340,1436,1427, - 1521,1460,440,1550,74,1764,78,1407,19,359, - 16,20,17,1274,1248,44,1300,1327,1307,1384, - 1340,1436,1427,1521,1460,1789,1550,74,440,77, - 1407,19,443,16,20,17,1274,1248,44,1300, - 1327,1307,1384,1340,1436,1427,1521,1460,241,1550, - 74,1826,76,1407,19,440,16,20,17,1274, - 1248,44,1300,1327,1307,1384,1340,1436,1427,1521, - 1460,324,1550,74,58,75,1407,19,2002,16, - 20,17,1274,1248,44,1300,1327,1307,1384,1340, - 1436,1427,1521,1460,440,1550,74,1509,92,1407, - 19,828,16,20,17,1274,42,44,1300,1327, - 1307,1384,1340,1436,1427,1521,1460,2024,1550,93, - 1407,19,440,16,20,17,1274,1248,44,1300, - 1327,1307,1384,1340,1436,1427,1521,1460,203,1550, - 74,1131,1694,1445,19,22,16,20,17,1274, - 40,1407,19,211,16,20,17,1274,1248,44, - 1300,1327,1307,1384,1340,1436,1427,1521,1460,440, - 1550,74,1509,1829,1407,19,307,16,20,17, - 1274,42,44,1300,1327,1307,1384,1340,1436,1427, - 1521,1460,272,1550,93,1407,19,1523,16,20, - 17,1274,42,44,1300,1327,1307,1384,1340,1436, - 1427,1521,1460,180,1550,93,1407,19,384,16, - 20,17,1274,42,44,1800,1407,19,201,16, - 20,17,1274,42,44,1300,1327,1307,1384,1340, - 1436,1427,1521,1460,1490,1550,93,1407,19,202, - 16,20,17,1274,42,44,1300,1327,1307,1384, - 1340,1436,1427,1521,1460,1941,1550,93,587,1732, - 1056,628,1732,1432,178,1104,312,935,1407,19, - 1896,16,20,17,1274,42,44,1300,1327,1307, - 1837,833,110,1304,1313,86,718,663,1534,587, - 186,1986,95,1511,108,94,96,97,98,99, - 630,933,833,769,1419,89,1,1104,312,1407, - 19,109,16,20,17,1274,42,44,1300,1327, - 1934,421,310,312,110,196,946,86,1730,1483, - 1534,587,30,106,95,1511,108,94,96,97, - 98,99,87,104,345,196,209,311,966,208, - 908,440,2209,109,254,212,1769,1346,587,185, - 333,1739,586,223,228,326,764,1146,217,743, - 220,222,273,277,278,107,1998,1045,262,235, - 1104,312,292,266,963,970,271,509,192,587, - 187,1152,134,212,541,122,931,110,920,421, - 86,2120,263,1534,480,1104,718,95,1511,108, - 94,96,97,98,99,141,133,135,159,944, - 288,23,110,587,1666,86,109,359,421,140, - 1301,165,95,1511,1661,94,96,97,98,99, - 260,941,331,1513,134,212,1407,19,106,16, - 20,17,1274,42,44,1300,1327,1307,1384,1340, - 1436,1427,1521,1997,276,440,21,144,133,135, - 159,1045,1530,950,890,769,1649,586,223,228, - 1429,463,583,217,743,220,222,273,1867,111, - 119,1104,312,491,419,792,1683,1366,266,963, - 970,271,1108,178,581,1405,1555,421,110,1643, - 591,86,126,583,1534,331,1045,1199,95,1511, - 108,94,96,97,98,99,1610,134,212,258, - 1119,105,1776,421,125,718,1122,109,1391,1584, - 586,223,652,421,1027,357,217,743,220,680, - 137,133,135,159,87,583,158,622,1063,107, - 1058,253,212,421,139,2153,165,402,1597,769, - 1115,1064,143,146,149,152,636,1407,19,1112, - 16,20,17,1274,42,44,1300,1784,154,649, - 421,1366,473,586,223,1619,60,773,517,218, - 743,220,1611,628,1732,1101,586,223,228,1122, - 773,412,218,743,220,222,273,674,521,1104, - 718,876,421,258,496,172,1045,268,963,970, - 271,1205,874,1584,253,212,110,1045,538,86, - 562,1104,718,581,121,1482,95,1511,103,94, - 96,97,98,99,359,2232,587,294,110,1407, - 19,86,16,20,17,1274,42,38,95,1511, - 101,94,96,97,98,99,603,1104,718,586, - 223,228,1045,1126,402,217,743,220,222,360, - 331,208,1499,243,110,158,868,86,1482,1285, - 2241,193,671,1739,95,1511,102,94,96,97, - 98,99,1407,19,905,16,20,17,1274,42, - 44,1300,1327,1936,644,1104,718,154,649,419, - 583,1736,586,223,228,1144,1122,517,217,743, - 220,222,110,1610,706,86,745,194,2001,685, - 1104,718,95,1511,118,94,96,97,98,99, - 1505,253,212,1507,1110,367,718,110,1407,19, - 86,16,20,17,1274,42,37,95,1511,114, - 94,96,97,98,99,87,726,1104,718,359, - 440,115,1509,197,199,1289,19,477,16,20, - 17,1274,42,35,110,1045,1723,86,767,1104, - 718,1369,440,279,95,1511,2035,94,96,97, - 98,99,829,2242,769,1722,110,1045,244,86, - 808,1104,718,204,245,1870,95,1511,113,94, - 96,97,98,99,440,117,1534,1509,110,1284, - 309,86,849,1104,718,581,359,1482,95,1511, - 120,94,96,97,98,99,868,1892,1482,306, - 110,1407,19,86,16,20,17,1274,42,36, - 95,1511,119,94,96,97,98,99,494,587, - 296,586,223,228,1286,293,1470,217,743,220, - 222,1509,586,223,228,1484,1066,158,217,743, - 220,222,712,795,755,331,1407,19,2001,16, - 20,17,1274,42,44,1300,1327,1945,1407,19, - 1486,16,20,17,1274,42,44,1300,1786,155, - 649,349,27,371,1407,19,359,16,20,17, - 1274,42,44,1803,1005,583,2108,1185,1339,303, - 1955,1519,1514,198,199,809,1289,19,521,16, - 20,17,1274,42,35,1407,19,276,16,20, - 17,1274,42,34,1515,295,1407,19,302,16, - 20,17,1274,42,35,1025,1516,2331,2331,2331, - 273,2331,2331,1122,273,246,2331,2331,2331,2331, - 2331,266,963,970,271,266,963,970,271,1407, - 19,2331,16,20,17,1274,42,47,253,212, - 1199,2331,1407,19,265,16,20,17,1274,42, - 46,2331,2331,2331,299,301,2331,314,1407,19, - 1003,16,20,17,1274,42,45,2331,2331,1319, - 19,2109,16,20,17,1274,42,43,950,406, - 769,371,2331,2331,2331,134,212,1062,412,2331, - 874,1468,769,2331,2331,2331,938,303,769,2331, - 2331,2331,1366,809,2331,2331,2331,2331,147,133, - 135,159,134,212,196,1150,134,212,583,2331, - 1366,2331,2331,992,2331,769,302,2331,2331,2331, - 2331,521,2331,2331,258,150,133,135,159,153, - 133,135,159,1391,1584,1769,2331,196,2331,2331, - 1464,19,258,16,20,17,1274,33,2331,2331, - 2331,874,1584,1464,19,2331,16,20,17,1274, - 32,421,421,312,312,2331,2331,191,1769,402, - 2331,769,300,301,2331,336,1341,2331,419,2331, - 718,2331,87,87,2331,196,196,2331,966,966, - 2331,2331,1110,1366,718,2331,124,2331,917,87, - 191,1110,1110,718,718,1556,2331,2331,1202,1341, - 421,2331,718,87,2331,2331,1998,1998,2331,115, - 2331,2331,87,87,421,258,718,2331,115,115, - 2331,87,2331,2331,1830,1584,2331,1467,1085,1124, - 421,2331,718,2331,2331,87,2331,2331,2331,2331, - 2331,1970,2331,1845,2331,2331,2331,2331,2331,2331, - 2331,87,1852,1884,2331,2331,2331,1505,2331,0, - 10,225,0,2338,1,0,1,2567,0,7, - 9,0,178,19,0,1,2556,0,112,1848, + 106,2,123,40,40,23,23,41,41,18, + 18,1,1,3,3,3,3,4,4,4, + 5,6,6,6,6,6,6,6,6,68, + 68,90,7,7,7,7,7,7,7,7, + 7,7,7,8,8,9,9,9,9,10, + 10,10,11,11,11,12,12,12,12,12, + 13,13,13,14,14,15,15,16,16,17, + 17,19,19,20,20,22,22,22,22,22, + 22,22,22,22,22,22,22,29,27,21, + 107,107,92,92,54,30,30,30,30,30, + 30,30,31,31,31,28,28,93,93,69, + 69,32,32,33,33,33,61,61,34,34, + 34,34,35,35,35,35,35,47,47,24, + 24,24,24,24,48,48,48,83,83,78, + 78,78,78,79,79,79,80,80,80,81, + 81,81,82,82,82,94,94,84,84,85, + 49,51,51,51,51,51,62,64,64,64, + 64,64,64,64,64,64,64,64,64,73, + 70,70,108,109,74,74,71,71,71,86, + 95,95,96,96,87,87,87,55,110,110, + 97,98,98,98,72,72,111,99,99,100, + 100,88,88,25,26,26,26,50,52,52, + 42,42,42,42,37,37,38,43,43,44, + 39,39,101,101,45,113,113,112,112,46, + 46,46,46,46,46,46,46,46,102,53, + 53,53,53,36,75,75,65,65,65,66, + 66,56,56,114,114,77,77,76,76,76, + 57,57,57,58,59,59,59,60,60,60, + 60,63,63,63,67,115,91,91,91,91, + 89,116,117,117,118,118,119,119,106,106, + 120,120,103,103,103,103,121,121,104,104, + 104,105,105,292,1568,754,17,21,18,1042, + 947,45,1178,1213,1209,1256,1229,1349,1313,1392, + 1383,622,1404,75,324,92,322,768,135,213, + 1407,20,331,17,21,18,1042,43,45,1178, + 1213,1209,1256,1229,1349,1313,1392,1867,419,359, + 1309,137,134,136,160,587,187,638,458,224, + 233,892,1051,179,793,139,127,166,1426,1485, + 1110,770,539,143,146,149,152,414,581,128, + 1497,1965,2115,2144,2157,2173,1535,135,213,241, + 829,88,770,1399,296,1566,908,116,2255,458, + 224,232,1445,20,176,17,21,18,1042,41, + 137,134,136,160,1378,847,224,229,310,231, + 218,924,221,223,139,260,166,587,186,309, + 492,1592,143,146,149,152,414,307,587,31, + 1965,2115,2144,2157,2173,1535,1407,20,314,17, + 21,18,1042,43,45,1178,1213,1209,1256,1229, + 1349,1313,1845,334,1350,20,681,17,21,18, + 1042,947,45,1178,1213,1209,1256,1229,1349,1313, + 1392,1383,440,1404,75,355,281,1369,20,681, + 17,21,18,1042,947,45,1178,1213,1209,1256, + 1229,1349,1313,1392,1383,225,1404,75,986,281, + 1407,20,336,17,21,18,1042,43,45,1178, + 1213,1209,1256,1229,1349,1848,124,286,25,1407, + 20,1439,17,21,18,1042,947,45,1178,1213, + 1209,1256,1229,1349,1313,1392,1383,1161,1404,75, + 286,92,746,287,1439,1471,1407,20,357,17, + 21,18,1042,43,45,1178,1213,1209,1256,1229, + 1832,365,255,213,587,1633,287,501,1619,1265, + 20,681,17,21,18,1042,947,45,1178,1213, + 1209,1256,1229,1349,1313,1392,1383,442,1404,75, + 833,281,1342,1199,20,1365,17,21,18,1042, + 947,45,1178,1213,1209,1256,1229,1349,1313,1392, + 1383,1566,1404,75,626,359,1407,20,788,17, + 21,18,1042,43,45,1178,1213,1209,1256,1842, + 708,311,288,239,1242,20,1439,17,21,18, + 1042,947,45,1178,1213,1209,1256,1229,1349,1313, + 1392,1383,210,1404,75,421,281,1312,289,1388, + 20,412,17,21,18,1042,947,45,1178,1213, + 1209,1256,1229,1349,1313,1392,1383,986,1404,75, + 747,281,1407,20,541,17,21,18,1042,43, + 45,1178,1213,1209,1795,123,421,158,539,1407, + 20,1439,17,21,18,1042,947,45,1178,1213, + 1209,1256,1229,1349,1313,1392,1383,88,1404,75, + 505,86,290,1039,326,634,1439,1426,20,1421, + 17,21,18,1042,947,45,1178,1213,1209,1256, + 1229,1349,1313,1392,1383,1115,1404,75,443,856, + 1108,179,1223,20,790,17,21,18,1042,947, + 45,1178,1213,1209,1256,1229,1349,1313,1392,1383, + 805,1404,75,331,1420,135,213,1894,927,292, + 794,638,847,224,229,587,188,219,924,221, + 223,274,240,1295,908,744,2210,54,137,134, + 136,160,269,1019,1023,272,437,58,421,562, + 2178,833,139,1448,166,587,1470,231,255,213, + 143,146,149,152,414,324,331,1059,1965,2115, + 2144,2157,2173,1535,1407,20,359,17,21,18, + 1042,43,45,1178,1213,1209,1256,1229,1349,1313, + 1392,1383,105,1404,94,1407,20,900,17,21, + 18,1042,947,45,1178,1213,1209,1256,1229,1349, + 1313,1392,1383,227,1404,75,243,85,1464,20, + 828,17,21,18,1042,34,1407,20,1534,17, + 21,18,1042,947,45,1178,1213,1209,1256,1229, + 1349,1313,1392,1383,913,1404,75,1484,84,1407, + 20,440,17,21,18,1042,947,45,1178,1213, + 1209,1256,1229,1349,1313,1392,1383,384,1404,75, + 308,83,1407,20,230,17,21,18,1042,947, + 45,1178,1213,1209,1256,1229,1349,1313,1392,1383, + 228,1404,75,1006,82,1407,20,440,17,21, + 18,1042,947,45,1178,1213,1209,1256,1229,1349, + 1313,1392,1383,440,1404,75,234,81,1407,20, + 2122,17,21,18,1042,947,45,1178,1213,1209, + 1256,1229,1349,1313,1392,1383,19,1404,75,1176, + 80,1407,20,1285,17,21,18,1042,947,45, + 1178,1213,1209,1256,1229,1349,1313,1392,1383,440, + 1404,75,1490,79,1407,20,293,17,21,18, + 1042,947,45,1178,1213,1209,1256,1229,1349,1313, + 1392,1383,1722,1404,75,276,78,1407,20,275, + 17,21,18,1042,947,45,1178,1213,1209,1256, + 1229,1349,1313,1392,1383,440,1404,75,440,77, + 1407,20,440,17,21,18,1042,947,45,1178, + 1213,1209,1256,1229,1349,1313,1392,1383,1747,1404, + 75,1784,76,1407,20,1888,17,21,18,1042, + 947,45,1178,1213,1209,1256,1229,1349,1313,1392, + 1383,440,1404,75,1511,93,1407,20,1056,17, + 21,18,1042,43,45,1178,1213,1209,1256,1229, + 1349,1313,1392,1383,1889,1404,94,1407,20,440, + 17,21,18,1042,947,45,1178,1213,1209,1256, + 1229,1349,1313,1392,1383,180,1404,75,1055,1642, + 1464,20,23,17,21,18,1042,33,1407,20, + 212,17,21,18,1042,947,45,1178,1213,1209, + 1256,1229,1349,1313,1392,1383,1589,1404,75,935, + 1688,1407,20,663,17,21,18,1042,43,45, + 1178,1213,1209,1256,1229,1349,1313,1392,1383,630, + 1404,94,1407,20,1056,17,21,18,1042,947, + 45,1178,1213,1209,1256,1229,1349,1313,1392,1383, + 331,1404,75,421,74,1257,345,628,1633,421, + 1313,1307,539,1407,20,202,17,21,18,1042, + 43,45,1178,1213,1209,1256,1229,1349,1313,1392, + 1383,90,1404,94,1407,20,1530,17,21,18, + 1042,43,45,1178,1213,1209,1256,1229,1349,1313, + 1392,1383,1613,1404,94,587,295,628,1633,581, + 440,1600,421,509,770,1407,20,203,17,21, + 18,1042,43,45,1178,1213,1209,1256,1229,1349, + 1313,1392,1383,273,1404,94,1378,419,1825,539, + 587,31,178,827,313,209,847,224,587,931, + 986,218,924,221,607,125,1138,1635,88,306, + 111,159,1486,87,1382,1119,1378,1159,112,1847, + 96,1350,109,95,97,98,99,100,419,419, + 1641,1694,986,288,1,827,313,255,213,110, + 254,213,463,155,568,209,127,195,1119,946, + 126,1691,111,371,591,87,1234,1635,1378,1000, + 845,107,96,1350,109,95,97,98,99,100, + 359,1119,675,254,213,312,890,421,1398,1474, + 24,110,908,400,2258,1384,847,224,229,1067, + 557,218,924,221,223,274,254,213,235,827, + 313,263,1339,108,1790,278,267,1019,1023,272, + 242,421,941,2230,2131,1064,111,772,1069,87, + 986,1502,1378,813,1511,264,96,1350,109,95, + 97,98,99,100,986,277,1407,20,122,17, + 21,18,1042,43,40,110,557,331,274,847, + 224,229,1762,60,218,924,221,223,274,267, + 1019,1023,272,261,492,283,421,107,539,267, + 1019,1023,272,1157,119,827,313,933,266,770, + 1124,876,1734,562,172,1108,179,88,1310,1700, + 440,1524,111,1085,1005,87,2135,421,1378,474, + 1956,197,96,1350,109,95,97,98,99,100, + 135,213,421,279,497,106,1027,277,360,1407, + 20,110,17,21,18,1042,43,45,1178,1213, + 1209,1803,1379,138,134,136,160,587,297,1511, + 274,359,986,108,480,827,539,140,440,166, + 331,267,1019,1023,272,144,147,150,153,414, + 2292,1511,111,1511,193,87,521,827,539,1502, + 1310,1745,96,1350,1531,95,97,98,99,100, + 204,22,440,1118,111,1205,562,87,562,827, + 539,581,359,1497,96,1350,104,95,97,98, + 99,100,181,2002,205,280,111,1289,20,87, + 17,21,18,1042,43,36,96,1350,102,95, + 97,98,99,100,603,827,539,905,847,224, + 229,1126,244,218,924,221,223,1701,359,1141, + 706,331,111,159,868,87,1497,246,745,194, + 1511,1511,96,1350,103,95,97,98,99,100, + 1407,20,986,17,21,18,1042,43,45,1178, + 1213,1820,644,827,539,155,568,562,245,459, + 2306,847,224,229,1119,371,218,924,221,223, + 111,1729,28,87,765,986,1886,685,827,539, + 96,1350,119,95,97,98,99,100,1498,254, + 213,1504,1110,118,539,111,1407,20,87,17, + 21,18,1042,43,39,96,1350,115,95,97, + 98,99,100,88,726,827,539,440,440,116, + 331,198,200,1289,20,367,17,21,18,1042, + 43,36,111,477,1681,87,767,827,539,1362, + 1828,1850,96,1350,1893,95,97,98,99,100, + 1284,1286,1470,1712,111,359,562,87,808,827, + 539,1483,1177,247,96,1350,114,95,97,98, + 99,100,712,2231,282,795,111,359,755,87, + 849,827,539,581,1045,1497,96,1350,121,95, + 97,98,99,100,868,294,1497,1185,111,1407, + 20,87,17,21,18,1042,43,38,96,1350, + 120,95,97,98,99,100,1499,296,1312,1512, + 847,224,229,1261,1514,218,924,221,223,2391, + 2391,847,224,229,2391,159,218,924,221,223, + 2391,2391,2391,2391,1407,20,1886,17,21,18, + 1042,43,45,1178,1213,1821,1407,20,2391,17, + 21,18,1042,43,45,1178,1690,156,568,1407, + 20,2391,17,21,18,1042,43,45,1178,1213, + 1822,2391,2391,2391,2391,2391,622,2391,2391,2391, + 2391,199,200,1407,20,1146,17,21,18,1042, + 43,45,1178,1213,1831,1407,20,2391,17,21, + 18,1042,43,45,1178,1698,349,2391,372,2391, + 135,213,638,847,224,229,2391,2391,219,924, + 221,223,622,2391,304,2391,2391,421,2391,539, + 358,2391,2391,142,134,136,160,1407,20,2391, + 17,21,18,1042,43,45,1758,141,88,166, + 2391,2391,2391,303,1088,2391,2391,2391,638,847, + 224,1468,2391,2391,219,924,221,1465,1407,20, + 2391,17,21,18,1042,43,45,1761,1407,20, + 2391,17,21,18,1042,43,37,1407,20,2391, + 17,21,18,1042,43,35,1407,20,2391,17, + 21,18,1042,43,36,2391,2391,2391,2391,300, + 302,2391,315,1407,20,2391,17,21,18,1042, + 43,48,2391,2391,1407,20,2132,17,21,18, + 1042,43,47,1407,20,944,17,21,18,1042, + 43,46,1319,20,2391,17,21,18,1042,43, + 44,950,406,770,372,950,2391,770,2391,2391, + 135,213,2391,2391,1003,2391,2391,421,2391,539, + 304,2391,2391,2391,2391,1399,358,1062,2391,1399, + 2391,2391,2391,145,134,136,160,562,88,135, + 213,562,2391,1468,1591,2391,2391,2391,874,303, + 770,2391,135,213,765,2391,2391,259,2231,2391, + 2391,259,148,134,136,160,1540,1409,135,213, + 1540,1409,197,2391,2391,151,134,136,160,2391, + 938,2391,770,2391,2391,2391,421,1110,313,313, + 2391,154,134,136,160,421,421,313,313,2391, + 992,1508,770,1379,1399,301,302,88,88,2391, + 197,1378,2391,993,116,2391,88,88,2391,197, + 197,2391,993,993,197,402,2391,770,402,2391, + 770,2391,2391,2391,380,192,259,638,2391,2391, + 2391,1452,2391,1134,1527,931,1409,274,1484,1399, + 1452,1452,1399,2391,2391,1379,2391,2391,269,1019, + 1023,272,1110,977,539,2391,2391,2391,2391,2391, + 2391,2391,1092,1131,2391,2391,1110,421,539,539, + 421,259,539,88,259,2391,2391,192,2391,116, + 931,1409,973,1632,1409,1611,1527,88,88,2391, + 2391,88,2391,116,1854,2391,2391,1598,2391,2391, + 2391,2391,2391,2391,2391,2391,2391,2391,2391,2391, + 2391,2391,2391,1787,2391,2391,2391,2391,2391,2391, + 2391,2391,2391,2391,2391,2391,2391,1788,2391,0, + 11,226,0,2399,1,0,1,2628,0,8, + 10,0,179,20,0,1,2617,0,113,1806, 0 }; }; @@ -615,27 +627,27 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym 5,19,20,21,5,23,24,25,26,27, 28,29,19,20,21,53,23,60,25,26, 27,28,29,41,42,43,44,45,46,47, - 48,49,50,51,52,0,54,55,56,0, + 48,49,50,51,52,0,54,55,56,4, 58,0,1,53,3,4,62,63,53,0, - 60,64,0,4,0,0,2,2,4,0, + 60,64,0,0,0,0,2,22,4,4, 19,20,21,64,23,24,25,26,27,28, 29,19,20,21,0,23,0,25,26,27, 28,29,41,42,43,44,45,46,47,48, - 49,50,51,52,0,54,55,56,4,58, - 0,1,2,3,0,0,57,53,53,60, - 5,0,0,0,60,0,22,4,6,19, - 20,21,0,23,9,25,26,27,28,29, + 49,50,51,52,0,54,55,56,0,58, + 0,1,2,3,0,0,57,53,0,5, + 2,0,57,0,60,60,0,4,0,19, + 20,21,6,23,6,25,26,27,28,29, 19,20,21,57,23,22,25,26,27,28, 29,41,42,43,44,45,46,47,48,49, - 50,51,52,79,54,55,56,0,1,0, - 3,0,0,4,0,1,2,6,0,5, - 57,0,67,68,61,0,19,20,21,4, + 50,51,52,59,54,55,56,0,1,0, + 3,53,57,4,0,1,2,0,0,5, + 57,67,68,0,61,0,19,20,21,4, 23,22,25,26,27,28,29,19,20,21, - 19,20,21,0,1,0,0,22,41,42, + 0,1,19,20,21,0,0,22,41,42, 43,44,45,46,47,48,49,50,51,52, 0,54,55,56,19,20,21,53,23,60, - 25,26,27,28,29,0,64,2,0,19, - 20,21,57,0,0,0,41,42,43,44, + 25,26,27,28,29,0,0,2,61,19, + 20,21,57,0,0,9,41,42,43,44, 45,46,47,48,49,50,51,52,0,1, 2,3,4,5,0,7,8,9,10,11, 12,13,14,15,16,17,18,0,0,0, @@ -648,10 +660,10 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym 16,17,18,0,0,0,0,65,0,1, 2,3,4,5,0,7,8,9,10,11, 12,13,14,15,16,17,18,0,0,0, - 0,0,0,19,20,21,4,57,0,1, + 0,0,0,19,20,21,4,6,0,1, 2,3,58,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,0,0,53, - 2,57,0,5,0,62,63,62,63,0, + 12,13,14,15,16,17,18,53,0,79, + 2,0,0,5,0,62,63,62,63,0, 1,2,3,65,5,6,7,8,9,10, 11,12,13,14,15,16,17,18,0,1, 2,3,60,5,6,7,8,9,10,11, @@ -665,21 +677,20 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym 0,7,8,9,10,11,12,13,14,15, 16,17,18,0,1,2,3,0,5,0, 7,8,9,10,11,12,13,14,15,16, - 17,18,0,0,53,0,19,20,21,0, - 23,2,25,26,27,28,29,66,0,10, - 11,19,20,21,0,0,0,2,0,5, - 5,5,4,0,0,0,0,0,0,6, - 6,4,0,0,0,0,0,0,0,6, - 6,62,63,6,0,0,0,0,0,0, - 0,0,53,0,59,62,63,0,0,0, - 0,0,0,0,0,66,0,0,53,61, - 0,0,0,0,0,0,58,0,0,80, - 0,67,68,67,68,58,61,59,0,57, - 0,0,0,0,59,59,0,0,0,0, + 17,18,0,0,0,0,19,20,21,0, + 23,2,25,26,27,28,29,0,0,10, + 11,0,5,0,19,20,21,0,5,2, + 0,0,5,0,4,0,0,6,0,4, + 0,0,6,0,6,0,6,0,0,0, + 0,62,63,0,0,0,53,0,0,0, + 0,0,53,0,62,63,0,0,64,66, + 0,0,0,0,0,66,0,59,57,0, + 53,0,0,0,67,68,0,0,58,80, + 67,68,0,58,61,0,0,0,0,0, + 59,0,59,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0 + 0,0,0,0,0,0,0 }; }; public final static byte termCheck[] = TermCheck.termCheck; @@ -687,165 +698,165 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface TermAction { public final static char termAction[] = {0, - 2331,4169,1,4168,1636,1,1342,1,1,1, + 2391,4227,1,4225,1503,1,831,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,2339,1,2431,1,1,1,1,1, - 826,798,771,1417,993,1444,793,1463,871,2218, - 845,1,1,1,1,1,1,1,1,1, - 1,1,1,2331,1,1,1,2331,2337,7, - 2319,2319,2319,2319,2319,2319,2319,2319,2319,2319, - 2319,2319,2319,2319,2319,2319,2319,2319,2319,2319, - 2319,2319,2319,2319,2319,2319,2319,2319,2319,2319, - 2319,2319,2319,2319,2319,2319,2319,2319,2319,2319, - 2319,2319,2319,2319,2319,2319,2319,2319,2319,2319, - 2319,2319,1658,2319,2319,2319,1680,2319,2331,4169, - 1,4168,1636,1,1342,1,1,1,1,1, + 1,1,2400,1,2492,1,1,1,1,1, + 700,518,854,697,817,1594,650,835,800,1337, + 774,1,1,1,1,1,1,1,1,1, + 1,1,1,2391,1,1,1,2391,2398,8, + 2379,2379,2379,2379,2379,2379,2379,2379,2379,2379, + 2379,2379,2379,2379,2379,2379,2379,2379,2379,2379, + 2379,2379,2379,2379,2379,2379,2379,2379,2379,2379, + 2379,2379,2379,2379,2379,2379,2379,2379,2379,2379, + 2379,2379,2379,2379,2379,2379,2379,2379,2379,2379, + 2379,2379,1616,2379,2379,2379,1638,2379,2391,4227, + 1,4225,1503,1,831,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 2339,1,2431,1,1,1,1,1,826,798, - 771,1417,993,1444,793,1463,871,2218,845,1, + 2400,1,2492,1,1,1,1,1,700,518, + 854,697,817,1594,650,835,800,1337,774,1, 1,1,1,1,1,1,1,1,1,1, - 1,2331,1,1,1,181,2337,2331,4169,1, - 4168,2340,1,1342,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,2339, - 1,2431,1,1,1,1,1,826,798,771, - 1417,993,1444,793,1463,871,2218,845,1,1, + 1,2391,1,1,1,182,2398,2391,4227,1, + 4225,2401,1,831,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,2400, + 1,2492,1,1,1,1,1,700,518,854, + 697,817,1594,650,835,800,1337,774,1,1, 1,1,1,1,1,1,1,1,1,1, - 1716,1,1,1,2331,4169,1,4168,2340,1, - 1342,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,2339,1,2431,1, - 1,1,1,1,826,798,771,1417,993,1444, - 793,1463,871,2218,845,1,1,1,1,1, - 1,1,1,1,1,1,1,70,1,1, - 1,2331,2341,1361,2342,10,2026,2310,1911,1808, - 2015,2193,2180,1173,2343,2344,2345,2346,1699,410, - 2544,2545,2546,2331,2493,434,2494,2492,2547,2495, - 2491,2331,2341,2331,2342,2331,2341,1439,2342,1321, - 252,1468,2498,2503,2502,2500,2501,2499,2504,2505, - 2497,2506,2507,2508,59,1434,838,815,2331,1, - 1,1,2340,1,184,4166,156,4166,2331,19, - 178,2322,2334,2322,2322,455,61,1,1,1, - 2339,1,2635,1,1,1,1,1,178,178, - 178,2322,178,42,178,178,178,178,178,1, + 1674,1,1,1,2391,4227,1,4225,2401,1, + 831,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,2400,1,2492,1, + 1,1,1,1,700,518,854,697,817,1594, + 650,835,800,1337,774,1,1,1,1,1, + 1,1,1,1,1,1,1,71,1,1, + 1,2391,2402,2216,2403,11,2076,2370,2058,1869, + 2067,1180,898,412,2404,2405,2406,2407,1766,1486, + 2605,2606,2607,2391,2554,406,2555,2553,2608,2556, + 2552,2391,2402,2391,2403,2391,2402,828,2403,610, + 253,1253,2559,2564,2563,2561,2562,2560,2565,2566, + 2558,2567,2568,2569,60,704,740,495,2391,1, + 1,1,2401,1,185,4220,157,4220,2391,20, + 179,2382,2395,2382,2382,456,62,1,1,1, + 2400,1,2696,1,1,1,1,1,179,179, + 179,2382,179,43,179,179,179,179,179,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,2331,1,1,1,2340, - 1,2331,2322,1956,1752,1349,565,653,1,2322, - 1,298,2340,2333,1,1,1,2339,1,2635, - 1,1,1,1,1,1956,1752,1349,565,2331, - 2339,234,182,2336,1083,222,1,1,1,1, - 1,1,1,1,1,1,1,1,284,1, - 1,1,68,222,1256,2588,1060,1037,1014,991, - 968,922,945,899,876,853,60,1696,297,2331, - 4169,1,4168,2340,1,1342,1,1,1,1, - 1,1,1,1,1,1,1,1,222,2335, - 228,2339,222,2431,183,4167,231,4167,66,826, - 798,771,1417,993,1444,793,1463,871,2218,845, - 2331,4169,1,4168,2340,1,1342,1,1,1, - 1,1,1,1,1,1,1,1,1,519, - 205,4170,2339,4170,2431,1956,1752,1349,565,2331, - 826,798,771,1417,993,1444,793,1463,871,2218, - 845,2331,4169,1,4168,2340,1,1342,1,1, + 1,1,1,1,1,2391,1,1,1,2401, + 1,2391,2382,1963,1939,1914,1710,654,1,2382, + 1,299,2401,2394,1,1,1,2400,1,2696, + 1,1,1,1,1,1963,1939,1914,1710,2391, + 2400,235,183,2397,1090,223,1,1,1,1, + 1,1,1,1,1,1,1,1,285,1, + 1,1,69,223,1284,2649,1067,1044,1021,998, + 975,929,952,906,875,719,61,1305,298,2391, + 4227,1,4225,2401,1,831,1,1,1,1, + 1,1,1,1,1,1,1,1,223,2396, + 229,2400,223,2492,184,4222,232,4222,67,700, + 518,854,697,817,1594,650,835,800,1337,774, + 2391,4227,1,4225,2401,1,831,1,1,1, + 1,1,1,1,1,1,1,1,1,520, + 206,4224,2400,4224,2492,1963,1939,1914,1710,2391, + 700,518,854,697,817,1594,650,835,800,1337, + 774,2391,4227,1,4225,2401,1,831,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,2556,387,2339,634,2431,2331,2341,2331,2342, - 72,826,798,771,1417,993,1444,793,1463,871, - 2218,845,2331,4169,1,4168,2340,1,1342,1, + 1,2617,388,2400,566,2492,2391,2402,2391,2403, + 73,700,518,854,697,817,1594,650,835,800, + 1337,774,2391,4227,1,4225,2401,1,831,1, 1,1,1,1,1,1,1,1,1,1, - 1,252,2556,387,2339,2331,2431,207,2341,62, - 2342,1547,826,798,771,1417,993,1444,793,1463, - 871,2218,845,2331,4169,1,4168,2340,1,1342, + 1,253,2617,388,2400,2391,2492,208,2402,63, + 2403,1259,700,518,854,697,817,1594,650,835, + 800,1337,774,2391,4227,1,4225,2401,1,831, 1,1,1,1,1,1,1,1,1,1, - 1,1,51,206,1298,2339,1298,2431,2331,1984, - 1246,1486,2264,826,798,771,1417,993,1444,793, - 1463,871,2218,845,2331,4169,1,4168,2340,1, - 1342,1,1,1,1,1,1,1,1,1, - 1,1,1,1308,796,53,2339,2331,2431,379, - 2331,63,1984,1246,826,798,771,1417,993,1444, - 793,1463,871,2218,845,2331,4169,1,4168,2340, - 1,1342,1,1,1,1,1,1,1,1, - 1,1,1,1,52,2331,2331,2339,378,2431, - 1514,1984,1246,2331,67,826,798,771,1417,993, - 1444,793,1463,871,2218,845,2331,4169,1,4168, - 2340,1,1342,1,1,1,1,1,1,1, - 1,1,1,1,1,1308,796,2331,2339,2331, - 2431,715,1570,2331,69,1573,826,798,771,1417, - 993,1444,793,1463,871,2218,845,2331,4169,1, - 4168,2340,1,1342,1,1,1,1,1,1, - 1,1,1,1,1,1,2309,2331,1,2339, - 634,2431,1,1603,1342,2331,2313,826,798,771, - 1417,993,1444,793,1463,871,2218,845,2331,4169, - 1,4168,2340,1,1342,1,1,1,1,1, - 1,1,1,1,1,1,1,1,2556,387, - 2339,519,2431,2331,1,2331,1,190,826,798, - 771,1417,993,1444,793,1463,871,2218,845,248, - 2337,2331,1,1,1,2340,1,2526,1,1, - 1,1,1,2331,2331,1754,2280,1,1,1, - 1,2336,219,2339,1,1,1,1,1,1, - 1,1,1,1,1,1,1204,1,1,1, - 64,190,2331,1,54,1,189,1,2316,701, - 1,2325,1481,129,2336,261,2556,1481,1895,1, - 1,1,1,1,252,1,2526,1,1,1, - 1,1,2544,2545,2546,611,2493,2335,2494,2492, - 2547,2495,2491,1,1,1,1,1,1,1, - 1,1,1,1,1,2331,1,1,1,2331, - 189,2331,1,611,1,190,1617,1968,611,2331, - 2335,2588,130,2336,1,221,1994,821,2336,2331, - 1,1,1,2588,1,2526,1,1,1,1, - 1,2544,2545,2546,112,2493,255,2494,2492,2547, - 2495,2491,1,1,1,1,1,1,1,1, - 1,1,1,1,2331,1,1,1,2340,190, - 1,369,387,2342,2331,48,1775,611,611,2335, - 2088,131,2331,235,2335,65,2339,222,1630,2544, - 2545,2546,2331,2493,701,2494,2492,2547,2495,2491, - 2544,2545,2546,822,2493,222,2494,2492,2547,2495, - 2491,2498,2503,2502,2500,2501,2499,2504,2505,2497, - 2506,2507,2508,2328,1434,838,815,2331,2341,1, - 2342,228,1,116,267,2556,1481,232,249,252, - 222,2331,2072,2059,222,2331,2544,2545,2546,2340, - 2493,116,2494,2492,2547,2495,2491,1,1,1, - 2544,2545,2546,2331,2568,128,2331,2339,2498,2503, - 2502,2500,2501,2499,2504,2505,2497,2506,2507,2508, - 250,1434,838,815,2544,2545,2546,611,2493,116, - 2494,2492,2547,2495,2491,269,2587,1390,2331,2544, - 2545,2546,1906,2331,71,2331,2498,2503,2502,2500, - 2501,2499,2504,2505,2497,2506,2507,2508,1,2341, - 1361,2342,2334,1835,88,1911,1808,2015,2193,2180, - 1173,2343,2344,2345,2346,1699,410,2331,2331,2331, - 2331,746,2331,2341,1361,2342,2334,2006,611,1911, - 1808,2015,2193,2180,1173,2343,2344,2345,2346,1699, - 410,2331,2341,1361,2342,1181,2026,4160,1911,1808, - 2015,2193,2180,1173,2343,2344,2345,2346,1699,410, - 29,1106,455,2333,1,2341,1361,2342,28,2026, - 4160,1911,1808,2015,2193,2180,1173,2343,2344,2345, - 2346,1699,410,58,206,57,270,2333,2331,2341, - 1361,2342,2334,2026,247,1911,1808,2015,2193,2180, - 1173,2343,2344,2345,2346,1699,410,2331,2331,2331, - 2331,2331,1,2544,2545,2546,90,2359,2331,2341, - 1361,2342,28,2026,1662,1911,1808,2015,2193,2180, - 1173,2343,2344,2345,2346,1699,410,2331,264,611, - 1994,3306,2331,1,2331,1617,1968,1617,1968,1, - 2341,1361,2342,2333,2026,4160,1911,1808,2015,2193, - 2180,1173,2343,2344,2345,2346,1699,410,1,2341, - 1361,2342,90,2026,4160,1911,1808,2015,2193,2180, - 1173,2343,2344,2345,2346,1699,410,2331,2341,1361, - 2342,611,2026,4160,1911,1808,2015,2193,2180,1173, - 2343,2344,2345,2346,1699,410,2331,2341,1361,2342, - 2331,2026,2331,1911,1808,2015,2193,2180,1173,2343, - 2344,2345,2346,1699,410,1,2341,1361,2342,2331, - 2026,290,1911,1808,2015,2193,2180,1173,2343,2344, - 2345,2346,1699,410,2331,2341,2201,2342,2331,2026, - 2331,1911,1808,2015,2193,2180,1173,2343,2344,2345, - 2346,1699,410,2331,2341,2202,2342,132,2026,56, - 1911,1808,2015,2193,2180,1173,2343,2344,2345,2346, - 1699,410,251,55,1277,2331,2544,2545,2546,31, - 2493,1324,2494,2492,2547,2495,2491,1929,210,2356, - 2357,2544,2545,2546,50,267,49,1994,2331,2088, - 252,2088,2338,41,2331,2331,2331,283,200,1662, - 1662,1583,29,188,188,1,1,188,2331,184, - 183,1617,1968,205,2331,2331,2331,2331,2331,2331, - 2331,2331,2250,2331,339,1617,1968,2331,2331,2331, - 2331,2331,2331,2331,2331,1371,2331,2331,611,1129, - 2331,2331,2331,2331,2331,2331,2337,2331,2331,447, - 2331,2072,2059,2072,2059,1583,678,1225,2331,588, - 2331,2331,2331,2331,2342,2341 + 1,1,52,207,584,2400,584,2492,2391,2048, + 2017,340,2307,700,518,854,697,817,1594,650, + 835,800,1337,774,2391,4227,1,4225,2401,1, + 831,1,1,1,1,1,1,1,1,1, + 1,1,1,1569,702,54,2400,2391,2492,2217, + 2391,64,2048,2017,700,518,854,697,817,1594, + 650,835,800,1337,774,2391,4227,1,4225,2401, + 1,831,1,1,1,1,1,1,1,1, + 1,1,1,1,53,2391,2391,2400,716,2492, + 342,2048,2017,2391,68,700,518,854,697,817, + 1594,650,835,800,1337,774,2391,4227,1,4225, + 2401,1,831,1,1,1,1,1,1,1, + 1,1,1,1,1,1569,702,2391,2400,2391, + 2492,1516,1250,2391,70,2007,700,518,854,697, + 817,1594,650,835,800,1337,774,2391,4227,1, + 4225,2401,1,831,1,1,1,1,1,1, + 1,1,1,1,1,1,2369,2391,1,2400, + 566,2492,1,1461,831,2391,2373,700,518,854, + 697,817,1594,650,835,800,1337,774,2391,4227, + 1,4225,2401,1,831,1,1,1,1,1, + 1,1,1,1,1,1,1,1,2617,388, + 2400,520,2492,2391,1,2391,1,191,700,518, + 854,697,817,1594,650,835,800,1337,774,249, + 2398,2391,1,1,1,2401,1,2587,1,1, + 1,1,1,2391,2391,1677,2310,1,1,1, + 1,2397,220,2400,1,1,1,1,1,1, + 1,1,1,1,1,1,1211,1,1,1, + 65,191,2391,1,55,1,190,1,2376,636, + 1,2385,1462,130,2397,262,2617,1462,1853,1, + 1,1,1,1,253,1,2587,1,1,1, + 1,1,2605,2606,2607,613,2554,2396,2555,2553, + 2608,2556,2552,1,1,1,1,1,1,1, + 1,1,1,1,1,2391,1,1,1,2401, + 190,2391,1,613,1,191,1926,1975,613,256, + 2396,2649,131,2391,1,2391,1544,2400,2397,2397, + 1,1,1,2649,1,2587,1,1,1,1, + 1,2605,2606,2607,2391,2554,89,2555,2553,2608, + 2556,2552,1,1,1,1,1,1,1,1, + 1,1,1,1,2391,1,1,1,2391,191, + 1,404,388,2403,49,30,379,613,222,2113, + 814,132,1689,236,2396,2396,2391,223,229,2605, + 2606,2607,1547,2554,233,2555,2553,2608,2556,2552, + 2605,2606,2607,1113,2554,223,2555,2553,2608,2556, + 2552,2559,2564,2563,2561,2562,2560,2565,2566,2558, + 2567,2568,2569,1232,704,740,495,2391,2402,1, + 2403,613,2420,117,268,2617,1462,211,2391,253, + 223,2104,2093,250,223,2391,2605,2606,2607,2401, + 2554,117,2555,2553,2608,2556,2552,2605,2606,2607, + 2391,2629,1,1,1,129,2391,2400,2559,2564, + 2563,2561,2562,2560,2565,2566,2558,2567,2568,2569, + 248,704,740,495,2605,2606,2607,613,2554,117, + 2555,2553,2608,2556,2552,270,66,1432,1136,2605, + 2606,2607,1864,2391,72,636,2559,2564,2563,2561, + 2562,2560,2565,2566,2558,2567,2568,2569,1,2402, + 2216,2403,2395,1657,207,2058,1869,2067,1180,898, + 412,2404,2405,2406,2407,1766,1486,2391,2391,2391, + 2391,747,2391,2402,2216,2403,2395,1793,613,2058, + 1869,2067,1180,898,412,2404,2405,2406,2407,1766, + 1486,2391,2402,2216,2403,1188,2076,4219,2058,1869, + 2067,1180,898,412,2404,2405,2406,2407,1766,1486, + 113,3367,456,2394,1,2402,2216,2403,29,2076, + 4219,2058,1869,2067,1180,898,412,2404,2405,2406, + 2407,1766,1486,59,271,58,2391,2394,2391,2402, + 2216,2403,2395,2076,251,2058,1869,2067,1180,898, + 412,2404,2405,2406,2407,1766,1486,2391,2391,2391, + 2391,42,1,2605,2606,2607,91,1562,2391,2402, + 2216,2403,29,2076,1562,2058,1869,2067,1180,898, + 412,2404,2405,2406,2407,1766,1486,613,265,2388, + 1544,2391,2391,1,2391,1926,1975,1926,1975,1, + 2402,2216,2403,2394,2076,4219,2058,1869,2067,1180, + 898,412,2404,2405,2406,2407,1766,1486,1,2402, + 2216,2403,91,2076,4219,2058,1869,2067,1180,898, + 412,2404,2405,2406,2407,1766,1486,2391,2402,2216, + 2403,613,2076,4219,2058,1869,2067,1180,898,412, + 2404,2405,2406,2407,1766,1486,2391,2402,2216,2403, + 2391,2076,2391,2058,1869,2067,1180,898,412,2404, + 2405,2406,2407,1766,1486,1,2402,2216,2403,2391, + 2076,2391,2058,1869,2067,1180,898,412,2404,2405, + 2406,2407,1766,1486,2391,2402,2225,2403,2391,2076, + 2391,2058,1869,2067,1180,898,412,2404,2405,2406, + 2407,1766,1486,2391,2402,2226,2403,133,2076,57, + 2058,1869,2067,1180,898,412,2404,2405,2406,2407, + 1766,1486,56,291,1,252,2605,2606,2607,32, + 2554,1260,2555,2553,2608,2556,2552,51,201,2417, + 2418,30,2113,50,2605,2606,2607,268,2113,1544, + 2391,2391,253,2391,2399,284,189,1562,189,1427, + 189,1,185,1,184,2391,206,2391,2391,2391, + 2391,1926,1975,2391,2391,2391,1315,2391,2391,2391, + 2391,2391,2147,2391,1926,1975,2391,2391,2648,1587, + 2391,2391,2391,2391,2391,1340,2391,1263,589,2391, + 613,2391,2391,2391,2104,2093,2391,2391,2398,448, + 2104,2093,2391,1427,679,2391,2391,2391,2391,2391, + 2403,2391,2402 }; }; public final static char termAction[] = TermAction.termAction; @@ -853,36 +864,36 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface Asb { public final static char asb[] = {0, - 493,1,371,447,493,491,180,192,489,192, - 489,489,192,489,192,373,271,449,438,524, - 449,343,489,309,309,489,309,449,271,208, - 271,8,9,282,373,491,153,566,565,271, - 62,344,491,211,491,273,271,200,449,282, - 39,284,373,449,21,449,343,254,154,154, - 309,524,524,241,524,524,154,343,15,256, - 15,447,359,491,211,273,273,200,396,284, - 93,59,396,119,359,256,256,256,256,256, - 43,256,256,256,113,130,135,133,141,137, - 144,143,146,145,147,208,203,373,207,465, - 238,491,256,62,565,341,154,256,154,357, - 256,400,256,256,344,241,15,241,449,150, - 402,211,238,458,211,273,275,453,275,396, - 200,207,396,59,42,39,256,256,256,256, - 256,256,256,256,256,256,256,208,208,526, - 359,359,309,309,161,256,256,256,256,256, - 256,256,256,256,256,256,256,256,256,256, - 256,256,256,256,256,205,206,279,271,284, - 238,19,254,154,208,524,208,208,343,241, - 256,211,460,275,238,256,309,200,451,256, - 256,59,43,21,271,279,208,208,208,59, - 133,133,130,130,137,137,135,135,135,135, - 143,141,145,144,15,146,282,208,312,203, - 19,154,254,241,256,241,241,238,153,256, - 152,238,59,59,19,526,312,532,491,256, - 284,208,275,158,161,154,208,342,460,256, - 19,208,238,17,569,309,256,157,208,161, - 154,241,275,3,21,59,309,256,241,208, - 238,59,241 + 509,1,315,391,509,29,478,490,27,490, + 27,27,490,27,490,317,427,393,382,540, + 393,287,27,282,282,27,282,393,427,506, + 427,157,158,255,317,29,210,473,472,427, + 53,288,29,127,29,214,427,498,393,255, + 84,257,317,393,35,393,287,410,211,211, + 282,540,540,397,540,540,211,287,164,412, + 164,391,303,29,127,214,214,498,498,257, + 107,104,340,176,303,412,412,412,412,412, + 88,412,412,412,170,187,192,190,198,194, + 201,200,203,202,204,506,501,317,505,3, + 154,29,412,53,472,285,211,412,211,301, + 412,344,412,412,288,397,164,397,393,207, + 346,127,154,239,127,214,216,429,216,498, + 340,505,340,104,87,84,412,412,412,412, + 412,412,412,412,412,412,412,506,506,246, + 303,303,282,282,220,412,412,412,412,412, + 412,412,412,412,412,412,412,412,412,412, + 412,412,412,412,412,503,504,252,427,257, + 154,33,410,211,506,540,506,506,287,397, + 412,127,241,216,154,412,282,340,498,395, + 412,412,104,88,35,427,252,506,506,506, + 104,190,190,187,187,194,194,192,192,192, + 192,200,198,202,201,164,203,255,506,542, + 501,33,211,410,397,412,397,397,154,210, + 412,209,154,498,104,104,33,246,542,439, + 29,412,257,506,216,167,220,211,506,286, + 241,412,33,506,154,31,476,282,412,166, + 506,220,211,397,216,434,35,104,282,412, + 397,506,154,104,397 }; }; public final static char asb[] = Asb.asb; @@ -890,63 +901,63 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface Asr { public final static byte asr[] = {0, - 73,0,4,57,58,22,0,2,4,61, - 57,60,22,53,59,0,4,58,53,66, - 2,13,14,15,16,1,3,10,11,9, - 5,7,8,17,18,12,6,0,19,20, - 21,23,10,11,9,5,7,8,17,18, - 12,2,1,3,13,14,15,16,65,4, - 0,25,41,19,42,54,26,43,27,44, - 45,28,20,46,47,23,55,29,56,48, - 49,21,50,51,52,1,3,4,61,57, - 22,0,19,20,21,10,11,9,5,7, - 8,17,18,12,2,1,3,13,14,15, - 16,0,53,2,66,80,10,11,61,83, - 84,85,86,87,89,88,90,91,92,5, - 67,68,7,8,63,62,69,70,71,72, - 74,75,9,76,77,78,58,81,82,65, - 60,59,57,22,4,0,61,53,66,0, - 4,60,12,13,14,15,16,1,3,2, - 10,11,9,5,7,8,17,18,0,49, - 41,46,44,45,43,42,47,48,50,51, - 52,59,22,29,26,23,25,28,27,19, - 20,21,5,1,2,53,57,60,4,0, - 25,41,19,42,54,26,43,27,44,45, - 28,20,46,47,23,55,29,56,48,49, - 21,50,51,52,1,3,24,4,58,0, - 32,34,6,38,40,35,30,36,37,33, - 31,39,24,22,4,10,11,9,7,8, - 17,18,12,2,1,3,13,14,15,16, - 5,0,1,3,4,58,57,0,5,2, - 53,60,4,25,41,19,42,54,26,43, - 27,44,45,28,20,46,47,23,55,29, - 56,48,49,21,50,51,52,64,1,3, + 73,0,25,41,19,42,54,26,43,27, + 44,45,28,20,46,47,23,55,29,56, + 48,49,21,50,51,52,1,3,6,0, + 4,58,53,66,2,13,14,15,16,1, + 3,10,11,9,5,7,8,17,18,12, + 6,0,25,41,19,42,54,26,43,27, + 44,45,28,20,46,47,23,55,29,56, + 48,49,21,50,51,52,1,3,4,61, + 57,22,0,19,20,21,23,10,11,9, + 5,7,8,17,18,12,2,1,3,13, + 14,15,16,65,4,0,19,20,21,10, + 11,9,5,7,8,17,18,12,2,1, + 3,13,14,15,16,0,25,41,19,42, + 54,26,43,27,44,45,28,20,46,47, + 23,55,29,56,48,49,21,50,51,52, + 1,3,24,4,58,0,2,4,61,57, + 60,22,53,59,0,61,53,66,0,53, + 2,66,80,10,11,61,83,84,85,86, + 87,89,88,90,91,92,5,67,68,7, + 8,63,62,69,70,71,72,74,75,9, + 76,77,78,58,81,82,65,60,59,57, + 22,4,0,1,3,4,58,57,0,4, + 60,12,13,14,15,16,1,3,2,10, + 11,9,5,7,8,17,18,0,22,4, + 5,1,2,59,0,4,60,5,2,53, + 0,5,2,53,60,4,25,41,19,42, + 54,26,43,27,44,45,28,20,46,47, + 23,55,29,56,48,49,21,50,51,52, + 64,1,3,0,73,79,58,32,34,6, + 38,40,35,30,36,37,33,31,39,24, + 4,22,13,14,15,16,10,11,9,7, + 8,17,18,12,5,2,1,3,54,55, + 56,49,41,46,44,45,43,42,47,48, + 50,51,52,29,26,23,25,28,27,19, + 20,21,0,30,0,66,80,10,11,9, + 7,8,67,68,62,63,69,70,71,72, + 74,75,76,77,78,81,82,61,83,84, + 85,86,87,88,89,90,91,92,57,53, + 60,25,19,26,27,28,20,23,29,21, + 22,4,5,2,1,0,32,34,6,38, + 40,35,30,36,37,33,31,39,24,22, + 4,10,11,9,7,8,17,18,12,2, + 1,3,13,14,15,16,5,0,4,57, + 58,61,0,4,57,58,22,0,9,5, + 7,8,67,68,62,63,69,70,71,72, + 74,75,76,77,78,81,82,59,83,84, + 85,86,87,88,89,90,91,92,65,60, + 58,6,4,57,22,61,0,49,41,46, + 44,45,43,42,47,48,50,51,52,59, + 22,29,26,23,25,28,27,19,20,21, + 5,1,2,53,57,60,4,0,73,25, + 41,19,42,54,26,43,27,44,45,28, + 20,46,47,23,55,29,56,48,49,21, + 50,51,52,1,3,5,22,4,24,2, 0,5,25,41,19,42,54,26,43,27, 44,45,28,20,46,47,23,55,29,56, - 48,49,21,50,51,52,1,3,64,0, - 73,79,58,32,34,6,38,40,35,30, - 36,37,33,31,39,24,4,22,13,14, - 15,16,10,11,9,7,8,17,18,12, - 5,2,1,3,54,55,56,49,41,46, - 44,45,43,42,47,48,50,51,52,29, - 26,23,25,28,27,19,20,21,0,30, - 0,66,80,10,11,9,7,8,67,68, - 62,63,69,70,71,72,74,75,76,77, - 78,81,82,61,83,84,85,86,87,88, - 89,90,91,92,57,53,60,25,19,26, - 27,28,20,23,29,21,22,4,5,2, - 1,0,4,57,58,61,0,22,4,5, - 1,2,59,0,25,41,19,42,54,26, - 43,27,44,45,28,20,46,47,23,55, - 29,56,48,49,21,50,51,52,1,3, - 6,0,73,25,41,19,42,54,26,43, - 27,44,45,28,20,46,47,23,55,29, - 56,48,49,21,50,51,52,1,3,5, - 22,4,24,2,0,4,60,5,2,53, - 0,9,5,7,8,67,68,62,63,69, - 70,71,72,74,75,76,77,78,81,82, - 59,83,84,85,86,87,88,89,90,91, - 92,65,60,58,6,4,57,22,61,0 + 48,49,21,50,51,52,1,3,64,0 }; }; public final static byte asr[] = Asr.asr; @@ -954,36 +965,36 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface Nasb { public final static char nasb[] = {0, - 145,27,17,167,154,15,117,118,54,118, - 93,93,118,92,118,112,109,122,27,27, - 120,71,7,7,7,7,7,9,27,152, - 109,43,43,151,105,15,168,27,27,109, - 27,65,61,105,27,105,27,105,128,151, - 50,85,39,122,56,126,81,166,168,168, - 7,27,27,95,27,27,168,71,27,48, - 27,167,1,27,158,105,7,105,138,162, - 47,52,138,27,88,48,48,48,48,48, - 51,48,48,48,27,27,27,27,27,27, - 27,27,27,27,27,152,101,20,27,140, - 105,27,48,27,27,27,168,48,168,28, - 89,27,89,89,65,95,27,95,122,27, - 27,105,72,167,77,7,13,27,27,138, - 33,152,138,52,51,33,48,48,48,48, - 48,48,48,48,48,48,48,152,152,103, - 88,88,35,35,74,89,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48, - 48,48,48,89,48,43,43,100,109,85, - 72,105,30,168,152,27,152,152,81,95, - 48,158,122,13,72,48,7,33,27,48, - 48,52,51,48,109,149,152,152,152,52, - 27,27,27,27,27,27,27,27,27,27, - 27,27,27,27,27,27,151,152,107,132, - 46,168,30,95,89,95,95,72,168,48, - 27,72,52,52,105,134,107,27,27,48, - 85,152,13,59,30,168,152,27,122,48, - 46,152,72,45,27,7,48,63,152,30, - 168,95,13,37,56,52,7,48,95,152, - 72,52,95 + 134,25,15,85,149,13,119,120,31,120, + 55,55,120,54,120,114,146,76,25,25, + 74,42,7,7,7,7,7,9,25,125, + 146,65,65,124,108,13,86,25,25,146, + 25,88,63,108,25,108,25,61,140,124, + 45,100,80,76,49,138,96,84,86,86, + 7,25,25,127,25,25,86,42,25,40, + 25,85,1,25,153,108,7,61,108,157, + 39,47,94,25,161,40,40,40,40,40, + 46,40,40,40,25,25,25,25,25,25, + 25,25,25,25,25,125,104,18,25,26, + 108,25,40,25,25,25,86,40,86,165, + 162,25,162,162,88,127,25,127,76,25, + 25,108,43,85,110,7,69,25,25,108, + 94,125,94,47,46,35,40,40,40,40, + 40,40,40,40,40,40,40,125,125,106, + 161,161,33,33,71,162,40,40,40,40, + 40,40,40,40,40,40,40,40,40,40, + 40,40,40,162,40,65,65,103,146,100, + 43,108,167,86,125,25,125,125,96,127, + 40,153,76,69,43,40,7,94,35,25, + 40,40,47,46,40,146,122,125,125,125, + 47,25,25,25,25,25,25,25,25,25, + 25,25,25,25,25,25,25,124,125,144, + 57,38,86,167,127,162,127,127,43,86, + 40,25,43,35,47,47,108,59,144,25, + 25,40,100,125,69,52,167,86,125,25, + 76,40,38,125,43,37,25,7,40,67, + 125,167,86,127,69,132,49,47,7,40, + 127,125,43,47,127 }; }; public final static char nasb[] = Nasb.nasb; @@ -991,23 +1002,23 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface Nasr { public final static char nasr[] = {0, - 83,81,80,74,79,78,1,0,36,38, - 40,0,68,0,105,0,36,2,101,83, - 82,81,80,74,79,78,0,24,47,2, - 61,0,25,0,90,0,115,0,24,2, - 121,0,46,0,89,67,2,6,0,2, - 6,39,0,108,0,6,67,0,117,0, - 109,0,119,0,2,24,1,29,93,0, - 2,41,0,2,107,0,2,55,87,0, - 29,1,69,41,2,24,0,55,2,27, - 0,111,86,0,1,29,2,30,0,23, - 36,43,58,59,2,0,2,24,40,53, - 0,74,70,71,72,73,62,48,0,45, - 38,43,36,2,0,38,45,36,43,40, - 0,36,43,59,58,40,0,75,0,2, - 24,47,28,0,120,24,2,0,58,59, - 2,23,0,24,2,103,0,96,2,55, - 0,112,2,24,0,27,2,18,0 + 83,81,80,74,79,78,1,0,37,39, + 36,0,105,0,37,2,101,83,82,81, + 80,74,79,78,0,2,24,47,28,0, + 108,0,90,0,25,0,89,67,2,6, + 0,2,41,0,2,6,40,0,6,67, + 0,117,0,111,86,0,37,43,59,58, + 36,0,109,0,46,0,119,0,68,0, + 2,107,0,45,39,43,37,2,0,24, + 2,121,0,27,2,18,0,2,24,1, + 29,93,0,75,0,29,1,69,41,2, + 24,0,23,37,43,58,59,2,0,2, + 55,87,0,74,70,71,72,73,62,48, + 0,58,59,2,23,0,1,29,2,30, + 0,115,0,120,24,2,0,39,45,37, + 43,36,0,2,24,36,53,0,24,2, + 103,0,96,2,55,0,112,2,24,0, + 55,2,27,0,24,47,2,61,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -1033,18 +1044,18 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, 99,0,0,0,0,101,105,106,107,108, - 109,110,111,112,113,114,115,98,116,117, - 0,118,96,127,135,0,100,123,119,122, - 0,0,0,0,0,157,0,160,95,0, - 97,154,156,0,158,159,126,134,0,0, - 0,145,155,121,149,168,171,172,173,0, - 0,137,144,0,161,167,0,0,125,138, - 139,140,141,146,166,170,103,129,130,131, - 132,133,136,142,143,0,148,153,174,102, - 104,120,124,128,0,147,151,0,0,152, - 162,165,179,0,181,0,0,0,0,150, - 0,163,164,169,0,175,176,0,177,178, - 180,0 + 109,110,111,112,113,114,115,98,116,0, + 0,117,96,126,134,0,100,122,118,121, + 0,0,0,0,0,0,156,0,159,95, + 97,153,155,0,157,158,125,133,0,0, + 0,144,154,120,148,167,170,171,172,0, + 0,136,143,0,160,166,0,0,124,137, + 138,139,140,145,165,169,103,128,129,130, + 131,132,135,141,142,0,147,152,173,102, + 104,119,123,127,0,146,150,0,0,151, + 161,164,178,0,180,0,0,0,0,149, + 0,162,163,168,0,174,175,0,176,177, + 179,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -1075,9 +1086,9 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface ScopeLhs { public final static char scopeLhs[] = { 72,70,6,72,46,46,70,63,33,60, - 46,38,60,46,87,28,7,6,6,20, - 119,118,58,46,36,4,89,87,8,34, - 6,87,38,45,38 + 46,39,60,46,87,28,7,6,6,20, + 119,118,58,46,37,4,89,87,8,34, + 6,87,39,45,39 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -1107,21 +1118,21 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface ScopeRhs { public final static char scopeRhs[] = {0, - 147,53,0,95,0,209,95,0,31,144, + 147,53,0,95,0,209,95,0,31,143, 0,161,184,95,6,160,0,97,0,0, 158,95,2,151,0,96,0,158,95,2, 0,169,2,0,115,23,195,95,53,0, 115,195,95,23,53,0,115,23,53,0, - 115,195,95,53,0,115,53,0,129,0, - 2,0,163,96,0,2,96,0,158,95, - 2,129,0,2,0,161,96,0,145,2, + 115,195,95,53,0,115,53,0,130,0, + 2,0,162,96,0,2,96,0,158,95, + 2,130,0,2,0,160,96,0,145,2, 0,161,192,95,6,94,204,54,0,97, 0,161,192,95,6,204,54,0,148,0, - 98,0,203,95,148,0,95,148,0,150, + 98,0,203,95,148,0,95,148,0,149, 98,0,188,95,6,202,94,201,167,0, 188,95,6,201,167,0,123,35,0,77, 2,100,96,98,0,123,116,120,2,38, - 0,53,122,0,186,95,6,0,120,82, + 0,53,121,0,186,95,6,0,120,82, 112,0,29,117,0,170,2,0,96,106, 0,170,2,12,0,161,184,95,6,116, 170,2,0,96,3,0,104,0,97,0, @@ -1134,18 +1145,18 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface ScopeState { public final static char scopeState[] = {0, - 1303,0,696,0,2153,1341,2120,0,2193,2180, - 1173,2099,2006,1486,519,455,701,634,1956,1752, - 1349,565,1308,796,1984,1246,1968,1617,2088,2072, - 2059,2026,2015,1835,1911,1808,1699,410,1277,1256, - 1225,339,1204,1181,1150,1129,1106,1083,1060,1037, - 1014,991,968,945,922,899,876,853,538,718, - 746,312,771,611,678,653,588,496,473,0, - 1862,1892,1870,1848,1826,1789,1764,1716,1530,1680, - 1658,1419,1444,1346,1304,0,970,963,743,586, - 521,1610,1994,1481,1998,1366,0,330,371,1906, - 1610,1736,1481,1683,1366,1597,1895,792,1544,387, - 0,769,312,1542,371,0 + 927,0,681,0,2230,1527,2178,0,1180,898, + 412,2122,1793,340,520,456,636,566,1963,1939, + 1914,1710,1569,702,2048,2017,1975,1926,2113,2104, + 2093,2076,2067,1657,2058,1869,1766,1486,1315,1284, + 1263,1232,1211,1188,1157,1136,1113,1090,1067,1044, + 1021,998,975,952,929,906,875,719,772,539, + 747,313,854,613,679,654,589,497,474,0, + 400,1850,1828,1806,1784,1747,1722,1674,1524,1638, + 1616,1448,1594,1384,1342,0,1023,1019,924,847, + 2231,765,1544,1462,1452,1399,0,331,372,1864, + 765,1694,1462,1641,1399,2002,1853,1956,1309,388, + 0,770,313,1535,372,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -1154,35 +1165,35 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface InSymb { public final static char inSymb[] = {0, 0,199,95,117,213,194,171,172,167,173, - 56,55,174,54,175,176,95,2,1,129, - 95,6,201,179,179,204,179,146,133,145, - 95,129,136,2,206,194,187,178,131,95, - 138,95,94,6,94,6,133,5,146,2, + 56,55,174,54,175,176,95,2,1,130, + 95,6,201,179,179,204,179,146,129,145, + 95,130,136,2,206,194,187,178,132,95, + 138,95,94,6,94,6,129,5,146,2, 53,95,95,57,61,146,186,39,31,33, 37,36,30,35,40,38,122,6,34,32, - 94,117,95,202,95,6,95,5,95,95, + 94,117,95,202,95,6,95,5,129,95, 23,115,95,100,2,12,18,17,8,7, 5,9,11,10,99,102,104,103,106,105, 108,107,110,109,112,158,117,95,159,214, - 6,160,5,138,131,4,120,95,94,2, + 6,160,5,138,132,4,120,95,94,2, 2,123,2,2,95,59,147,59,95,185, - 94,6,188,148,189,95,192,94,193,95, - 168,205,95,115,195,168,92,91,90,88, + 94,6,188,148,189,95,192,94,193,129, + 95,205,95,115,195,168,92,91,90,88, 89,87,86,85,84,83,61,170,120,148, 2,2,80,66,2,53,68,67,5,62, 63,8,7,75,74,72,71,70,69,76, 9,78,77,82,81,151,152,2,95,57, 95,6,140,154,120,30,120,120,186,59, - 57,95,95,192,161,61,57,168,57,195, - 23,115,5,116,95,2,170,170,200,120, - 103,103,102,102,105,105,104,104,104,104, - 107,106,109,108,120,110,2,169,95,146, - 95,154,111,116,2,116,116,188,203,59, - 145,161,115,115,6,146,95,116,116,59, - 95,158,184,95,111,154,120,123,57,59, - 95,158,161,57,209,66,53,210,154,111, - 116,79,184,134,61,147,66,53,116,154, - 161,147,116 + 57,95,95,192,161,61,57,95,168,57, + 195,23,115,5,116,95,2,170,170,200, + 120,103,103,102,102,105,105,104,104,104, + 104,107,106,109,108,120,110,2,169,95, + 146,95,154,111,116,2,116,116,188,203, + 59,145,161,168,115,115,6,146,95,116, + 116,59,95,158,184,95,111,154,120,123, + 57,59,95,158,161,57,209,66,53,210, + 154,111,116,79,184,134,61,147,66,53, + 116,154,161,147,116 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -1302,12 +1313,11 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym "shift_expression", "relational_expression", "equality_expression", - "AND_expression", - "exclusive_OR_expression", - "inclusive_OR_expression", - "logical_AND_expression", - "logical_OR_expression", - "conditional_expression", + "and_expression", + "exclusive_or_expression", + "inclusive_or_expression", + "logical_and_expression", + "logical_or_expression", "assignment_expression", "expression_in_statement", "expression_list_actual", @@ -1394,20 +1404,20 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 293, + NUM_STATES = 295, NT_OFFSET = 93, - LA_STATE_OFFSET = 2642, + LA_STATE_OFFSET = 2703, MAX_LA = 2147483647, - NUM_RULES = 311, - NUM_NONTERMINALS = 122, - NUM_SYMBOLS = 215, + NUM_RULES = 312, + NUM_NONTERMINALS = 123, + NUM_SYMBOLS = 216, SEGMENT_SIZE = 8192, - START_STATE = 1981, + START_STATE = 1986, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 73, EOLT_SYMBOL = 73, - ACCEPT_ACTION = 2309, - ERROR_ACTION = 2331; + ACCEPT_ACTION = 2369, + ERROR_ACTION = 2391; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParser.java index c103a41018b..46e839e4db3 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParser.java @@ -17,19 +17,28 @@ import lpg.lpgjavaruntime.*; import java.util.*; import org.eclipse.cdt.core.dom.ast.*; +import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter; +import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap; import org.eclipse.cdt.core.dom.lrparser.IParser; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.ITokenCollector; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack; +import org.eclipse.cdt.core.parser.IScanner; +import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider; +import org.eclipse.cdt.core.index.IIndex; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; +import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser; import org.eclipse.cdt.internal.core.dom.parser.c.CNodeFactory; import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction; import org.eclipse.cdt.core.dom.lrparser.action.c99.C99SecondaryParserFactory; -public class C99SizeofExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser< IASTExpression > +public class C99SizeofExpressionParser extends PrsStream implements RuleAction, ITokenStream, + ITokenCollector, IParser< IASTExpression > + , ISecondaryParser< IASTExpression > { private static ParseTable prs = new C99SizeofExpressionParserprs(); private FixedBacktrackingParser btParser; @@ -167,7 +176,11 @@ public class C99SizeofExpressionParser extends PrsStream implements RuleAction , private C99BuildASTParserAction action; private IASTCompletionNode compNode; -public C99SizeofExpressionParser() { // constructor + +public C99SizeofExpressionParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Set options) { + initActions(options); + action.initializeTranslationUnit(scanner, builtinBindingsProvider, index); + CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap); } private void initActions(Set options) { @@ -186,10 +199,9 @@ public void addToken(IToken token) { } -public IASTExpression parse(Set options) { +public IASTExpression parse() { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(options); final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse @@ -232,12 +244,12 @@ public void setTokens(List tokens) { addToken(new Token(null, 0, 0, C99SizeofExpressionParsersym.TK_EOF_TOKEN)); } -public C99SizeofExpressionParser(IParserActionTokenProvider parser) { // constructor +public C99SizeofExpressionParser(ITokenStream parser, Set options) { // constructor for creating secondary parser + initActions(options); tokenMap = new TokenMap(C99SizeofExpressionParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols()); } - public void ruleAction(int ruleNumber) { switch (ruleNumber) @@ -250,1005 +262,1011 @@ public C99SizeofExpressionParser(IParserActionTokenProvider parser) { // constr } // - // Rule 12: literal ::= integer + // Rule 2: ::= $Empty // - case 12: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break; + case 2: { action. consumeEmpty(); break; } // - // Rule 13: literal ::= floating + // Rule 13: literal ::= integer // - case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break; + case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break; } // - // Rule 14: literal ::= charconst + // Rule 14: literal ::= floating // - case 14: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break; + case 14: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break; } // - // Rule 15: literal ::= stringlit + // Rule 15: literal ::= charconst // - case 15: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break; + case 15: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break; } // - // Rule 17: primary_expression ::= primary_expression_id + // Rule 16: literal ::= stringlit // - case 17: { action. consumeExpressionID(); break; + case 16: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break; } // - // Rule 18: primary_expression ::= ( expression ) + // Rule 18: primary_expression ::= primary_expression_id // - case 18: { action. consumeExpressionBracketed(); break; + case 18: { action. consumeExpressionID(); break; } // - // Rule 21: postfix_expression ::= postfix_expression [ expression ] + // Rule 19: primary_expression ::= ( expression ) // - case 21: { action. consumeExpressionArraySubscript(); break; + case 19: { action. consumeExpressionBracketed(); break; } // - // Rule 22: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 22: postfix_expression ::= postfix_expression [ expression ] // - case 22: { action. consumeExpressionFunctionCall(); break; + case 22: { action. consumeExpressionArraySubscript(); break; } // - // Rule 23: postfix_expression ::= postfix_expression . member_name + // Rule 23: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 23: { action. consumeExpressionFieldReference(false); break; + case 23: { action. consumeExpressionFunctionCall(); break; } // - // Rule 24: postfix_expression ::= postfix_expression -> member_name + // Rule 24: postfix_expression ::= postfix_expression . member_name // - case 24: { action. consumeExpressionFieldReference(true); break; + case 24: { action. consumeExpressionFieldReference(false); break; } // - // Rule 25: postfix_expression ::= postfix_expression ++ + // Rule 25: postfix_expression ::= postfix_expression -> member_name // - case 25: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; + case 25: { action. consumeExpressionFieldReference(true); break; } // - // Rule 26: postfix_expression ::= postfix_expression -- + // Rule 26: postfix_expression ::= postfix_expression ++ // - case 26: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; + case 26: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 27: postfix_expression ::= ( type_id ) { initializer_list comma_opt } + // Rule 27: postfix_expression ::= postfix_expression -- // - case 27: { action. consumeExpressionTypeIdInitializer(); break; + case 27: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 32: unary_expression ::= ++ unary_expression + // Rule 28: postfix_expression ::= ( type_id ) { initializer_list comma_opt } // - case 32: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; + case 28: { action. consumeExpressionTypeIdInitializer(); break; } // - // Rule 33: unary_expression ::= -- unary_expression + // Rule 33: unary_expression ::= ++ unary_expression // - case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; + case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 34: unary_expression ::= & cast_expression + // Rule 34: unary_expression ::= -- unary_expression // - case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; + case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 35: unary_expression ::= * cast_expression + // Rule 35: unary_expression ::= & cast_expression // - case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; + case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 36: unary_expression ::= + cast_expression + // Rule 36: unary_expression ::= * cast_expression // - case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; + case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 37: unary_expression ::= - cast_expression + // Rule 37: unary_expression ::= + cast_expression // - case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; + case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 38: unary_expression ::= ~ cast_expression + // Rule 38: unary_expression ::= - cast_expression // - case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; + case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 39: unary_expression ::= ! cast_expression + // Rule 39: unary_expression ::= ~ cast_expression // - case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; + case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 40: unary_expression ::= sizeof unary_expression + // Rule 40: unary_expression ::= ! cast_expression // - case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; + case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 42: cast_expression ::= ( type_id ) cast_expression + // Rule 41: unary_expression ::= sizeof unary_expression // - case 42: { action. consumeExpressionCast(IASTCastExpression.op_cast); break; + case 41: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 44: multiplicative_expression ::= multiplicative_expression * cast_expression + // Rule 43: cast_expression ::= ( type_id ) cast_expression // - case 44: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break; + case 43: { action. consumeExpressionCast(IASTCastExpression.op_cast); break; } // - // Rule 45: multiplicative_expression ::= multiplicative_expression / cast_expression + // Rule 45: multiplicative_expression ::= multiplicative_expression * cast_expression // - case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break; + case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break; } // - // Rule 46: multiplicative_expression ::= multiplicative_expression % cast_expression + // Rule 46: multiplicative_expression ::= multiplicative_expression / cast_expression // - case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break; + case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break; } // - // Rule 48: additive_expression ::= additive_expression + multiplicative_expression + // Rule 47: multiplicative_expression ::= multiplicative_expression % cast_expression // - case 48: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break; + case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break; } // - // Rule 49: additive_expression ::= additive_expression - multiplicative_expression + // Rule 49: additive_expression ::= additive_expression + multiplicative_expression // - case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break; + case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break; } // - // Rule 51: shift_expression ::= shift_expression << additive_expression + // Rule 50: additive_expression ::= additive_expression - multiplicative_expression // - case 51: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break; + case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break; } // - // Rule 52: shift_expression ::= shift_expression >> additive_expression + // Rule 52: shift_expression ::= shift_expression << additive_expression // - case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break; + case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break; } // - // Rule 54: relational_expression ::= relational_expression < shift_expression + // Rule 53: shift_expression ::= shift_expression >> additive_expression // - case 54: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break; + case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break; } // - // Rule 55: relational_expression ::= relational_expression > shift_expression + // Rule 55: relational_expression ::= relational_expression < shift_expression // - case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break; + case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break; } // - // Rule 56: relational_expression ::= relational_expression <= shift_expression + // Rule 56: relational_expression ::= relational_expression > shift_expression // - case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break; + case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break; } // - // Rule 57: relational_expression ::= relational_expression >= shift_expression + // Rule 57: relational_expression ::= relational_expression <= shift_expression // - case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break; + case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break; } // - // Rule 59: equality_expression ::= equality_expression == relational_expression + // Rule 58: relational_expression ::= relational_expression >= shift_expression // - case 59: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break; + case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break; } // - // Rule 60: equality_expression ::= equality_expression != relational_expression + // Rule 60: equality_expression ::= equality_expression == relational_expression // - case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break; + case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break; } // - // Rule 62: AND_expression ::= AND_expression & equality_expression + // Rule 61: equality_expression ::= equality_expression != relational_expression // - case 62: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break; + case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break; } // - // Rule 64: exclusive_OR_expression ::= exclusive_OR_expression ^ AND_expression + // Rule 63: and_expression ::= and_expression & equality_expression // - case 64: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break; + case 63: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break; } // - // Rule 66: inclusive_OR_expression ::= inclusive_OR_expression | exclusive_OR_expression + // Rule 65: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 66: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break; + case 65: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break; } // - // Rule 68: logical_AND_expression ::= logical_AND_expression && inclusive_OR_expression + // Rule 67: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 68: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break; + case 67: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break; } // - // Rule 70: logical_OR_expression ::= logical_OR_expression || logical_AND_expression + // Rule 69: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 70: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break; + case 69: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break; } // - // Rule 72: conditional_expression ::= logical_OR_expression ? expression : conditional_expression + // Rule 71: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 72: { action. consumeExpressionConditional(); break; + case 71: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break; } // - // Rule 74: assignment_expression ::= unary_expression = assignment_expression + // Rule 73: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 74: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; + case 73: { action. consumeExpressionConditional(); break; } // - // Rule 75: assignment_expression ::= unary_expression *= assignment_expression + // Rule 75: assignment_expression ::= unary_expression = assignment_expression // - case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break; + case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; } // - // Rule 76: assignment_expression ::= unary_expression /= assignment_expression + // Rule 76: assignment_expression ::= unary_expression *= assignment_expression // - case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break; + case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 77: assignment_expression ::= unary_expression %= assignment_expression + // Rule 77: assignment_expression ::= unary_expression /= assignment_expression // - case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break; + case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break; } // - // Rule 78: assignment_expression ::= unary_expression += assignment_expression + // Rule 78: assignment_expression ::= unary_expression %= assignment_expression // - case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break; + case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break; } // - // Rule 79: assignment_expression ::= unary_expression -= assignment_expression + // Rule 79: assignment_expression ::= unary_expression += assignment_expression // - case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break; + case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break; } // - // Rule 80: assignment_expression ::= unary_expression <<= assignment_expression + // Rule 80: assignment_expression ::= unary_expression -= assignment_expression // - case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break; + case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break; } // - // Rule 81: assignment_expression ::= unary_expression >>= assignment_expression + // Rule 81: assignment_expression ::= unary_expression <<= assignment_expression // - case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break; + case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 82: assignment_expression ::= unary_expression &= assignment_expression + // Rule 82: assignment_expression ::= unary_expression >>= assignment_expression // - case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break; + case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 83: assignment_expression ::= unary_expression ^= assignment_expression + // Rule 83: assignment_expression ::= unary_expression &= assignment_expression // - case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break; + case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 84: assignment_expression ::= unary_expression |= assignment_expression + // Rule 84: assignment_expression ::= unary_expression ^= assignment_expression // - case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break; + case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 87: expression_list ::= expression_list_actual + // Rule 85: assignment_expression ::= unary_expression |= assignment_expression // - case 87: { action. consumeExpressionList(); break; + case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 89: expression_list_opt ::= $Empty + // Rule 88: expression_list ::= expression_list_actual // - case 89: { action. consumeEmpty(); break; + case 88: { action. consumeExpressionList(); break; } // - // Rule 99: statement ::= ERROR_TOKEN + // Rule 90: expression_list_opt ::= $Empty // - case 99: { action. consumeStatementProblem(); break; + case 90: { action. consumeEmpty(); break; } // - // Rule 100: labeled_statement ::= identifier_token : statement + // Rule 100: statement ::= ERROR_TOKEN // - case 100: { action. consumeStatementLabeled(); break; + case 100: { action. consumeStatementProblem(); break; } // - // Rule 101: labeled_statement ::= case constant_expression : statement + // Rule 101: labeled_statement ::= identifier_token : statement // - case 101: { action. consumeStatementCase(); break; + case 101: { action. consumeStatementLabeled(); break; } // - // Rule 102: labeled_statement ::= default : statement + // Rule 102: labeled_statement ::= case constant_expression : statement // - case 102: { action. consumeStatementDefault(); break; + case 102: { action. consumeStatementCase(); break; } // - // Rule 103: compound_statement ::= { } + // Rule 103: labeled_statement ::= default : statement // - case 103: { action. consumeStatementCompoundStatement(false); break; + case 103: { action. consumeStatementDefault(); break; } // - // Rule 104: compound_statement ::= { block_item_list } + // Rule 104: compound_statement ::= { } // - case 104: { action. consumeStatementCompoundStatement(true); break; + case 104: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 108: block_item ::= declaration + // Rule 105: compound_statement ::= { block_item_list } // - case 108: { action. consumeStatementDeclarationWithDisambiguation(); break; + case 105: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 109: expression_statement ::= ; + // Rule 109: block_item ::= declaration // - case 109: { action. consumeStatementNull(); break; + case 109: { action. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 110: expression_statement ::= expression_in_statement ; + // Rule 110: expression_statement ::= ; // - case 110: { action. consumeStatementExpression(); break; + case 110: { action. consumeStatementNull(); break; } // - // Rule 111: selection_statement ::= if ( expression ) statement + // Rule 111: expression_statement ::= expression_in_statement ; // - case 111: { action. consumeStatementIf(false); break; + case 111: { action. consumeStatementExpression(); break; } // - // Rule 112: selection_statement ::= if ( expression ) statement else statement + // Rule 112: selection_statement ::= if ( expression ) statement // - case 112: { action. consumeStatementIf(true); break; + case 112: { action. consumeStatementIf(false); break; } // - // Rule 113: selection_statement ::= switch ( expression ) statement + // Rule 113: selection_statement ::= if ( expression ) statement else statement // - case 113: { action. consumeStatementSwitch(); break; + case 113: { action. consumeStatementIf(true); break; } // - // Rule 115: expression_opt ::= $Empty + // Rule 114: selection_statement ::= switch ( expression ) statement // - case 115: { action. consumeEmpty(); break; + case 114: { action. consumeStatementSwitch(); break; } // - // Rule 116: iteration_statement ::= do statement while ( expression ) ; + // Rule 116: expression_opt ::= $Empty // - case 116: { action. consumeStatementDoLoop(); break; + case 116: { action. consumeEmpty(); break; } // - // Rule 117: iteration_statement ::= while ( expression ) statement + // Rule 117: iteration_statement ::= do statement while ( expression ) ; // - case 117: { action. consumeStatementWhileLoop(); break; + case 117: { action. consumeStatementDoLoop(); break; } // - // Rule 118: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement + // Rule 118: iteration_statement ::= while ( expression ) statement // - case 118: { action. consumeStatementForLoop(); break; + case 118: { action. consumeStatementWhileLoop(); break; } // - // Rule 119: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement + // Rule 119: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement // case 119: { action. consumeStatementForLoop(); break; } // - // Rule 120: jump_statement ::= goto identifier_token ; + // Rule 120: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement // - case 120: { action. consumeStatementGoto(); break; + case 120: { action. consumeStatementForLoop(); break; } // - // Rule 121: jump_statement ::= continue ; + // Rule 121: jump_statement ::= goto identifier_token ; // - case 121: { action. consumeStatementContinue(); break; + case 121: { action. consumeStatementGoto(); break; } // - // Rule 122: jump_statement ::= break ; + // Rule 122: jump_statement ::= continue ; // - case 122: { action. consumeStatementBreak(); break; + case 122: { action. consumeStatementContinue(); break; } // - // Rule 123: jump_statement ::= return ; + // Rule 123: jump_statement ::= break ; // - case 123: { action. consumeStatementReturn(false); break; + case 123: { action. consumeStatementBreak(); break; } // - // Rule 124: jump_statement ::= return expression ; + // Rule 124: jump_statement ::= return ; // - case 124: { action. consumeStatementReturn(true); break; + case 124: { action. consumeStatementReturn(false); break; } // - // Rule 125: declaration ::= declaration_specifiers ; + // Rule 125: jump_statement ::= return expression ; // - case 125: { action. consumeDeclarationSimple(false); break; + case 125: { action. consumeStatementReturn(true); break; } // - // Rule 126: declaration ::= declaration_specifiers init_declarator_list ; + // Rule 126: declaration ::= declaration_specifiers ; // - case 126: { action. consumeDeclarationSimple(true); break; + case 126: { action. consumeDeclarationSimple(false); break; } // - // Rule 127: declaration_specifiers ::= simple_declaration_specifiers + // Rule 127: declaration ::= declaration_specifiers init_declarator_list ; // - case 127: { action. consumeDeclarationSpecifiersSimple(); break; + case 127: { action. consumeDeclarationSimple(true); break; } // - // Rule 128: declaration_specifiers ::= struct_or_union_declaration_specifiers + // Rule 128: declaration_specifiers ::= simple_declaration_specifiers // - case 128: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; + case 128: { action. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 129: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 129: declaration_specifiers ::= struct_or_union_declaration_specifiers // case 129: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; } // - // Rule 130: declaration_specifiers ::= enum_declaration_specifiers + // Rule 130: declaration_specifiers ::= elaborated_declaration_specifiers // case 130: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; } // - // Rule 131: declaration_specifiers ::= typdef_name_declaration_specifiers + // Rule 131: declaration_specifiers ::= enum_declaration_specifiers // - case 131: { action. consumeDeclarationSpecifiersTypedefName(); break; + case 131: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; } // - // Rule 156: init_declarator ::= complete_declarator = initializer + // Rule 132: declaration_specifiers ::= typdef_name_declaration_specifiers // - case 156: { action. consumeDeclaratorWithInitializer(true); break; + case 132: { action. consumeDeclarationSpecifiersTypedefName(); break; } // - // Rule 158: storage_class_specifier ::= storage_class_specifier_token + // Rule 157: init_declarator ::= complete_declarator = initializer // - case 158: { action. consumeToken(); break; + case 157: { action. consumeDeclaratorWithInitializer(true); break; } // - // Rule 164: simple_type_specifier ::= simple_type_specifier_token + // Rule 159: storage_class_specifier ::= storage_class_specifier_token // - case 164: { action. consumeToken(); break; + case 159: { action. consumeToken(); break; } // - // Rule 177: type_name_specifier ::= identifier_token + // Rule 165: simple_type_specifier ::= simple_type_specifier_token // - case 177: { action. consumeToken(); break; + case 165: { action. consumeToken(); break; } // - // Rule 178: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { struct_declaration_list_opt } + // Rule 178: type_name_specifier ::= identifier_token // - case 178: { action. consumeTypeSpecifierComposite(false); break; + case 178: { action. consumeToken(); break; } // - // Rule 179: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { struct_declaration_list_opt } + // Rule 179: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { struct_declaration_list_opt } // - case 179: { action. consumeTypeSpecifierComposite(true); break; + case 179: { action. consumeTypeSpecifierComposite(false); break; } // - // Rule 184: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token + // Rule 180: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { struct_declaration_list_opt } // - case 184: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break; + case 180: { action. consumeTypeSpecifierComposite(true); break; } // - // Rule 185: elaborated_specifier ::= union elaborated_specifier_hook identifier_token + // Rule 185: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token // - case 185: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break; + case 185: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break; } // - // Rule 186: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token + // Rule 186: elaborated_specifier ::= union elaborated_specifier_hook identifier_token // - case 186: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break; + case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break; } // - // Rule 192: struct_declaration ::= specifier_qualifier_list struct_declarator_list ; + // Rule 187: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token // - case 192: { action. consumeStructDeclaration(true); break; + case 187: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break; } // - // Rule 193: struct_declaration ::= specifier_qualifier_list ; + // Rule 193: struct_declaration ::= specifier_qualifier_list struct_declarator_list ; // - case 193: { action. consumeStructDeclaration(false); break; + case 193: { action. consumeStructDeclaration(true); break; } // - // Rule 194: struct_declaration ::= ERROR_TOKEN + // Rule 194: struct_declaration ::= specifier_qualifier_list ; // - case 194: { action. consumeDeclarationProblem(); break; + case 194: { action. consumeStructDeclaration(false); break; } // - // Rule 200: struct_declarator ::= : constant_expression + // Rule 195: struct_declaration ::= ERROR_TOKEN // - case 200: { action. consumeBitField(false); break; + case 195: { action. consumeDeclarationProblem(); break; } // - // Rule 201: struct_declarator ::= declarator : constant_expression + // Rule 201: struct_declarator ::= : constant_expression // - case 201: { action. consumeBitField(true); break; + case 201: { action. consumeBitField(false); break; } // - // Rule 202: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } + // Rule 202: struct_declarator ::= declarator : constant_expression // - case 202: { action. consumeTypeSpecifierEnumeration(false); break; + case 202: { action. consumeBitField(true); break; } // - // Rule 203: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } + // Rule 203: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } // - case 203: { action. consumeTypeSpecifierEnumeration(true); break; + case 203: { action. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 209: enumerator ::= identifier_token + // Rule 204: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } // - case 209: { action. consumeEnumerator(false); break; + case 204: { action. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 210: enumerator ::= identifier_token = constant_expression + // Rule 210: enumerator ::= identifier_token // - case 210: { action. consumeEnumerator(true); break; + case 210: { action. consumeEnumerator(false); break; } // - // Rule 211: type_qualifier ::= type_qualifier_token + // Rule 211: enumerator ::= identifier_token = constant_expression // - case 211: { action. consumeToken(); break; + case 211: { action. consumeEnumerator(true); break; } // - // Rule 215: function_specifier ::= inline + // Rule 212: type_qualifier ::= type_qualifier_token // - case 215: { action. consumeToken(); break; + case 212: { action. consumeToken(); break; } // - // Rule 217: declarator ::= pointer_seq direct_declarator + // Rule 216: function_specifier ::= inline // - case 217: { action. consumeDeclaratorWithPointer(true); break; + case 216: { action. consumeToken(); break; } // - // Rule 222: basic_direct_declarator ::= declarator_id_name + // Rule 218: declarator ::= pointer_seq direct_declarator // - case 222: { action. consumeDirectDeclaratorIdentifier(); break; + case 218: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 223: basic_direct_declarator ::= ( declarator ) + // Rule 223: basic_direct_declarator ::= declarator_id_name // - case 223: { action. consumeDirectDeclaratorBracketed(); break; + case 223: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 224: declarator_id_name ::= identifier + // Rule 224: basic_direct_declarator ::= ( declarator ) // - case 224: { action. consumeIdentifierName(); break; + case 224: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 225: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 225: declarator_id_name ::= identifier // - case 225: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 225: { action. consumeIdentifierName(); break; } // - // Rule 226: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 226: array_direct_declarator ::= basic_direct_declarator array_modifier // case 226: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 228: function_direct_declarator ::= basic_direct_declarator ( parameter_type_list ) + // Rule 227: array_direct_declarator ::= array_direct_declarator array_modifier // - case 228: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; + case 227: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 229: function_direct_declarator ::= basic_direct_declarator ( ) + // Rule 229: function_direct_declarator ::= basic_direct_declarator ( parameter_type_list ) // - case 229: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; + case 229: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; } // - // Rule 231: function_declarator ::= pointer_seq function_direct_declarator + // Rule 230: function_direct_declarator ::= basic_direct_declarator ( ) // - case 231: { action. consumeDeclaratorWithPointer(true); break; + case 230: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; } // - // Rule 232: knr_direct_declarator ::= basic_direct_declarator ( identifier_list ) + // Rule 232: function_declarator ::= pointer_seq function_direct_declarator // - case 232: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break; + case 232: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 234: knr_function_declarator ::= pointer_seq knr_direct_declarator + // Rule 233: knr_direct_declarator ::= basic_direct_declarator ( identifier_list ) // - case 234: { action. consumeDeclaratorWithPointer(true); break; + case 233: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break; } // - // Rule 235: identifier_list ::= identifier + // Rule 235: knr_function_declarator ::= pointer_seq knr_direct_declarator // - case 235: { action. consumeIdentifierKnR(); break; + case 235: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 236: identifier_list ::= identifier_list , identifier + // Rule 236: identifier_list ::= identifier // case 236: { action. consumeIdentifierKnR(); break; } // - // Rule 237: array_modifier ::= [ ] + // Rule 237: identifier_list ::= identifier_list , identifier // - case 237: { action. consumeDirectDeclaratorArrayModifier(false); break; + case 237: { action. consumeIdentifierKnR(); break; } // - // Rule 238: array_modifier ::= [ array_modifier_type_qualifiers ] + // Rule 238: array_modifier ::= [ ] // - case 238: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break; + case 238: { action. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 239: array_modifier ::= [ assignment_expression ] + // Rule 239: array_modifier ::= [ array_modifier_type_qualifiers ] // - case 239: { action. consumeDirectDeclaratorArrayModifier(true); break; + case 239: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break; } // - // Rule 240: array_modifier ::= [ array_modifier_type_qualifiers assignment_expression ] + // Rule 240: array_modifier ::= [ assignment_expression ] // - case 240: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break; + case 240: { action. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 241: array_modifier ::= [ static assignment_expression ] + // Rule 241: array_modifier ::= [ array_modifier_type_qualifiers assignment_expression ] // - case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break; + case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break; } // - // Rule 242: array_modifier ::= [ static array_modifier_type_qualifiers assignment_expression ] + // Rule 242: array_modifier ::= [ static assignment_expression ] // - case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; + case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break; } // - // Rule 243: array_modifier ::= [ array_modifier_type_qualifiers static assignment_expression ] + // Rule 243: array_modifier ::= [ static array_modifier_type_qualifiers assignment_expression ] // case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; } // - // Rule 244: array_modifier ::= [ * ] + // Rule 244: array_modifier ::= [ array_modifier_type_qualifiers static assignment_expression ] // - case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break; + case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; } // - // Rule 245: array_modifier ::= [ array_modifier_type_qualifiers * ] + // Rule 245: array_modifier ::= [ * ] // - case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break; + case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break; } // - // Rule 247: pointer_seq ::= pointer_hook * + // Rule 246: array_modifier ::= [ array_modifier_type_qualifiers * ] // - case 247: { action. consumePointer(); break; + case 246: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break; } // - // Rule 248: pointer_seq ::= pointer_seq pointer_hook * + // Rule 248: pointer_seq ::= pointer_hook * pointer_hook // case 248: { action. consumePointer(); break; } // - // Rule 249: pointer_seq ::= pointer_hook * type_qualifier_list + // Rule 249: pointer_seq ::= pointer_seq pointer_hook * pointer_hook // - case 249: { action. consumePointerTypeQualifierList(); break; + case 249: { action. consumePointer(); break; } // - // Rule 250: pointer_seq ::= pointer_seq pointer_hook * type_qualifier_list + // Rule 250: pointer_seq ::= pointer_hook * pointer_hook type_qualifier_list // case 250: { action. consumePointerTypeQualifierList(); break; } // - // Rule 254: parameter_type_list ::= parameter_list + // Rule 251: pointer_seq ::= pointer_seq pointer_hook * pointer_hook type_qualifier_list // - case 254: { action. consumeEmpty(); break; + case 251: { action. consumePointerTypeQualifierList(); break; } // - // Rule 255: parameter_type_list ::= parameter_list , ... + // Rule 255: parameter_type_list ::= parameter_list // - case 255: { action. consumePlaceHolder(); break; + case 255: { action. consumeEmpty(); break; } // - // Rule 256: parameter_type_list ::= ... + // Rule 256: parameter_type_list ::= parameter_list , ... // case 256: { action. consumePlaceHolder(); break; } // - // Rule 259: parameter_declaration ::= declaration_specifiers complete_parameter_declarator + // Rule 257: parameter_type_list ::= ... // - case 259: { action. consumeParameterDeclaration(); break; + case 257: { action. consumePlaceHolder(); break; } // - // Rule 260: parameter_declaration ::= declaration_specifiers + // Rule 260: parameter_declaration ::= declaration_specifiers complete_parameter_declarator // - case 260: { action. consumeParameterDeclarationWithoutDeclarator(); break; + case 260: { action. consumeParameterDeclaration(); break; } // - // Rule 263: type_id ::= specifier_qualifier_list + // Rule 261: parameter_declaration ::= declaration_specifiers // - case 263: { action. consumeTypeId(false); break; + case 261: { action. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 264: type_id ::= specifier_qualifier_list abstract_declarator + // Rule 264: type_id ::= specifier_qualifier_list // - case 264: { action. consumeTypeId(true); break; + case 264: { action. consumeTypeId(false); break; } // - // Rule 266: abstract_declarator ::= pointer_seq + // Rule 265: type_id ::= specifier_qualifier_list abstract_declarator // - case 266: { action. consumeDeclaratorWithPointer(false); break; + case 265: { action. consumeTypeId(true); break; } // - // Rule 267: abstract_declarator ::= pointer_seq direct_abstract_declarator + // Rule 267: abstract_declarator ::= pointer_seq // case 267: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 271: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 268: abstract_declarator ::= pointer_seq direct_abstract_declarator // - case 271: { action. consumeDirectDeclaratorBracketed(); break; + case 268: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 272: array_direct_abstract_declarator ::= array_modifier + // Rule 272: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 272: { action. consumeDirectDeclaratorArrayDeclarator(false); break; + case 272: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 273: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 273: array_direct_abstract_declarator ::= array_modifier // - case 273: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 273: { action. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 274: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 274: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // case 274: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 275: function_direct_abstract_declarator ::= ( ) + // Rule 275: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 275: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break; + case 275: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 276: function_direct_abstract_declarator ::= ( ) + // + case 276: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break; } // - // Rule 276: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( ) + // Rule 277: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( ) // - case 276: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; + case 277: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; } // - // Rule 277: function_direct_abstract_declarator ::= ( parameter_type_list ) + // Rule 278: function_direct_abstract_declarator ::= ( parameter_type_list ) // - case 277: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break; + case 278: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break; } // - // Rule 278: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_type_list ) + // Rule 279: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_type_list ) // - case 278: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; + case 279: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; } // - // Rule 279: initializer ::= assignment_expression + // Rule 280: initializer ::= assignment_expression // - case 279: { action. consumeInitializer(); break; + case 280: { action. consumeInitializer(); break; } // - // Rule 280: initializer ::= start_initializer_list { initializer_list comma_opt } end_initializer_list - // - case 280: { action. consumeInitializerList(); break; - } - - // - // Rule 281: initializer ::= { } + // Rule 281: initializer ::= start_initializer_list { initializer_list comma_opt } end_initializer_list // case 281: { action. consumeInitializerList(); break; } // - // Rule 282: start_initializer_list ::= $Empty + // Rule 282: initializer ::= { } // - case 282: { action. initializerListStart(); break; + case 282: { action. consumeInitializerList(); break; } // - // Rule 283: end_initializer_list ::= $Empty + // Rule 283: start_initializer_list ::= $Empty // - case 283: { action. initializerListEnd(); break; + case 283: { action. initializerListStart(); break; } // - // Rule 288: designated_initializer ::= designation = initializer + // Rule 284: end_initializer_list ::= $Empty // - case 288: { action. consumeInitializerDesignated(); break; + case 284: { action. initializerListEnd(); break; } // - // Rule 292: designator_base ::= [ constant_expression ] + // Rule 289: designated_initializer ::= designation = initializer // - case 292: { action. consumeDesignatorArray(); break; + case 289: { action. consumeInitializerDesignated(); break; } // - // Rule 293: designator_base ::= . identifier_token + // Rule 293: designator_base ::= [ constant_expression ] // - case 293: { action. consumeDesignatorField(); break; + case 293: { action. consumeDesignatorArray(); break; } // - // Rule 294: designator ::= [ constant_expression ] + // Rule 294: designator_base ::= . identifier_token // - case 294: { action. consumeDesignatorArray(); break; + case 294: { action. consumeDesignatorField(); break; } // - // Rule 295: designator ::= . identifier_token + // Rule 295: designator ::= [ constant_expression ] // - case 295: { action. consumeDesignatorField(); break; + case 295: { action. consumeDesignatorArray(); break; } // - // Rule 296: translation_unit ::= external_declaration_list + // Rule 296: designator ::= . identifier_token // - case 296: { action. consumeTranslationUnit(); break; + case 296: { action. consumeDesignatorField(); break; + } + + // + // Rule 297: translation_unit ::= external_declaration_list + // + case 297: { action. consumeTranslationUnit(); break; } // - // Rule 297: translation_unit ::= $Empty + // Rule 298: translation_unit ::= $Empty // - case 297: { action. consumeTranslationUnit(); break; + case 298: { action. consumeTranslationUnit(); break; } // - // Rule 302: external_declaration ::= ; + // Rule 303: external_declaration ::= ; // - case 302: { action. consumeDeclarationEmpty(); break; + case 303: { action. consumeDeclarationEmpty(); break; } // - // Rule 303: external_declaration ::= ERROR_TOKEN + // Rule 304: external_declaration ::= ERROR_TOKEN // - case 303: { action. consumeDeclarationProblem(); break; + case 304: { action. consumeDeclarationProblem(); break; } // - // Rule 306: function_definition ::= declaration_specifiers function_declarator function_body + // Rule 307: function_definition ::= declaration_specifiers function_declarator function_body // - case 306: { action. consumeFunctionDefinition(true); break; + case 307: { action. consumeFunctionDefinition(true); break; } // - // Rule 307: function_definition ::= function_declarator function_body + // Rule 308: function_definition ::= function_declarator function_body // - case 307: { action. consumeFunctionDefinition(false); break; + case 308: { action. consumeFunctionDefinition(false); break; } // - // Rule 308: function_definition ::= declaration_specifiers knr_function_declarator declaration_list compound_statement + // Rule 309: function_definition ::= declaration_specifiers knr_function_declarator declaration_list compound_statement // - case 308: { action. consumeFunctionDefinitionKnR(); break; + case 309: { action. consumeFunctionDefinitionKnR(); break; } // - // Rule 309: function_body ::= { } + // Rule 310: function_body ::= { } // - case 309: { action. consumeStatementCompoundStatement(false); break; + case 310: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 310: function_body ::= { block_item_list } + // Rule 311: function_body ::= { block_item_list } // - case 310: { action. consumeStatementCompoundStatement(true); break; + case 311: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 312: no_sizeof_type_id_start ::= ERROR_TOKEN + // Rule 313: no_sizeof_type_id_start ::= ERROR_TOKEN // - case 312: { action. consumeEmpty(); break; + case 313: { action. consumeEmpty(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParserprs.java index 8270e9e5ee5..b204a44fb06 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParserprs.java @@ -34,185 +34,184 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseCheck { public final static short baseCheck[] = {0, - 0,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3,1,1, - 4,4,3,3,2,2,8,1,0,1, - 1,2,2,2,2,2,2,2,2,2, - 1,4,1,3,3,3,1,3,3,1, - 3,3,1,3,3,3,3,1,3,3, - 1,3,1,3,1,3,1,3,1,3, - 1,5,1,3,3,3,3,3,3,3, - 3,3,3,3,1,1,2,1,0,1, - 3,1,1,1,1,1,1,1,1,3, - 4,3,2,4,1,2,1,1,1,2, - 5,7,5,1,0,7,5,9,8,3, - 2,2,2,3,2,4,2,2,2,2, - 2,1,1,1,1,2,1,2,2,2, - 1,2,2,1,2,2,1,2,2,1, - 2,2,1,3,1,3,1,1,1,1, + 0,0,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,3,1, + 1,4,4,3,3,2,2,8,1,0, + 1,1,2,2,2,2,2,2,2,2, + 2,1,4,1,3,3,3,1,3,3, + 1,3,3,1,3,3,3,3,1,3, + 3,1,3,1,3,1,3,1,3,1, + 3,1,5,1,3,3,3,3,3,3, + 3,3,3,3,3,1,1,2,1,0, + 1,3,1,1,1,1,1,1,1,1, + 3,4,3,2,4,1,2,1,1,1, + 2,5,7,5,1,0,7,5,9,8, + 3,2,2,2,3,2,4,2,2,2, + 2,2,1,1,1,1,2,1,2,2, + 2,1,2,2,1,2,2,1,2,2, + 1,2,2,1,3,1,3,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,6,8,0, - 0,1,1,3,3,3,0,1,0,1, - 2,4,2,1,1,1,3,1,1,2, - 3,7,8,0,1,0,1,3,1,3, - 1,1,1,1,1,1,3,1,1,1, - 1,1,3,1,2,2,1,5,3,1, - 3,5,1,3,1,3,2,4,3,5, - 4,6,6,3,5,1,2,3,4,5, - 0,1,2,1,3,1,1,3,2,1, - 1,1,1,2,1,2,3,1,1,1, - 3,1,2,2,2,3,4,5,1,7, - 3,0,0,1,1,3,3,4,1,1, - 2,3,2,3,2,1,0,1,2,1, - 1,1,1,1,2,4,3,6,2,4, - 1,1,-36,0,0,0,0,0,0,0, - 0,0,0,-78,0,0,0,0,0,0, - 0,0,0,0,0,-80,-114,0,-2,0, + 1,1,1,1,1,1,1,1,6,8, + 0,0,1,1,3,3,3,0,1,0, + 1,2,4,2,1,1,1,3,1,1, + 2,3,7,8,0,1,0,1,3,1, + 3,1,1,1,1,1,1,3,1,1, + 1,1,1,3,1,2,2,1,5,3, + 1,3,5,1,3,1,3,2,4,3, + 5,4,6,6,3,5,1,3,4,5, + 6,0,1,2,1,3,1,1,3,2, + 1,1,1,1,2,1,2,3,1,1, + 1,3,1,2,2,2,3,4,5,1, + 7,3,0,0,1,1,3,3,4,1, + 1,2,3,2,3,2,1,0,1,2, + 1,1,1,1,1,2,4,3,6,2, + 4,1,1,-36,0,0,0,0,0,0, + 0,0,0,0,-156,0,0,0,0,0, + 0,0,0,0,0,0,-114,0,-74,-2, + -33,0,0,0,0,-54,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-137,0,-115,0, + -116,0,-4,0,0,0,0,0,-6,0, + 0,0,0,0,0,0,0,0,0,0, 0,0,0,-120,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-4,0,-115,0,-14, - -69,-126,0,0,0,0,0,-110,0,0, + 0,0,0,0,-184,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-137,0,-116,0,-132, - 0,0,0,-6,0,0,0,0,0,0, - 0,0,0,-117,0,0,-184,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,-157,0,0, + 0,0,0,-110,0,0,0,0,0,0, + 0,0,0,0,0,0,-80,0,-14,-104, + -133,-29,0,0,-30,0,-16,0,-193,0, + 0,0,0,-117,0,-17,0,-157,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,-72,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-145,0,0,0, - 0,0,0,0,0,-16,-104,-17,0,0, - 0,0,0,0,-118,0,0,0,-81,-18, - 0,-19,-74,-75,-33,0,-72,0,0,0, + 0,0,0,0,0,0,0,0,0,-118, + 0,0,0,-5,0,0,0,0,0,0, + 0,0,-18,-69,0,0,0,-7,0,0, + 0,0,0,0,0,0,-180,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-3,0,0, + 0,0,0,0,0,0,0,0,-132,0, + 0,0,0,0,0,0,0,0,-51,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-34,0,-107,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-75,-125, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-180,0,0,0,0,0,0,0,0, - 0,0,-20,0,0,0,0,0,0,0, - 0,0,-3,0,0,0,0,0,0,0, + -129,0,-165,0,0,-85,0,-48,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-51,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-34, - 0,-107,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-67,0,0,0,0, + 0,0,-68,0,0,0,0,-52,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-21,-125,0,0,0,0,0, + 0,0,0,-19,0,0,-20,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-129,0,-141,0,-52, + -159,0,-182,0,0,0,0,0,0,0, + -27,0,0,0,0,0,0,0,0,0, + 0,-21,0,0,0,0,0,0,0,0, + 0,-56,0,0,0,0,0,0,0,0, + 0,0,-22,0,0,0,0,0,0,0, + 0,0,-57,0,0,0,0,0,0,0, + 0,0,0,-23,0,0,0,0,0,0, + 0,0,0,-58,0,0,0,0,0,0, + 0,0,0,0,-24,0,0,0,0,0, + 0,0,0,0,-59,0,0,0,0,0, + 0,0,0,0,0,-25,0,0,0,0, + 0,0,0,0,0,-60,0,0,0,0, + 0,0,0,0,0,0,-26,0,0,0, + 0,0,0,0,0,0,-61,0,0,0, + 0,0,0,0,0,0,0,-86,0,0, + 0,0,0,0,0,0,0,-62,0,0, + 0,0,0,0,0,0,0,0,-87,0, + 0,0,0,0,0,0,0,0,-63,0, + 0,0,0,0,0,0,0,0,0,-88, + 0,0,0,0,0,0,0,0,0,-64, 0,0,0,0,0,0,0,0,0,0, - -122,0,0,0,-67,-22,0,0,0,0, - -156,0,0,0,0,0,-27,0,0,0, + -89,0,0,0,0,0,0,0,0,0, + -65,0,0,0,0,0,0,0,0,0, + 0,-90,0,0,0,0,0,0,0,0, + 0,-66,0,0,0,0,0,0,0,0, + 0,0,-91,0,0,0,0,0,0,0, + 0,0,-119,0,0,0,0,0,0,0, + 0,0,0,-92,0,0,0,0,0,0, + 0,0,0,-142,0,0,0,0,0,0, + 0,0,0,0,-93,0,0,0,0,0, + 0,0,0,0,-143,0,0,0,0,0, + 0,0,0,0,0,-94,0,0,0,0, + 0,0,0,0,0,-160,0,0,0,0, + 0,0,0,0,0,0,-162,0,0,0, + 0,0,0,0,0,-183,0,0,0,0, + 0,0,0,0,0,0,-174,0,0,0, + 0,0,0,0,0,-95,-78,0,0,-136, + -96,0,-8,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,0,0,0,0,0,0,-23,0, - -159,0,0,0,-162,0,0,0,0,0, - -37,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-56,0,0,0,0, + -201,0,0,0,0,0,0,0,0,0, + 0,-97,0,0,0,0,0,0,0,0, + 0,-155,0,-98,-99,0,0,-9,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,-57,0,0,0, - 0,0,0,0,0,0,0,-24,0,0, - 0,0,0,0,0,0,0,-58,0,0, - 0,0,0,0,0,0,0,0,-25,0, - 0,0,0,0,0,0,0,0,-59,0, - 0,0,0,0,0,0,0,0,0,-26, - 0,0,0,0,0,0,0,0,0,-60, - 0,0,0,0,0,0,0,0,0,0, - -86,0,0,0,0,0,0,0,0,0, - -61,0,0,0,0,0,0,0,0,0, - 0,-87,0,0,0,0,0,0,0,0, - 0,-62,0,0,0,0,0,0,0,0, - 0,0,-88,0,0,0,0,0,0,0, - 0,0,-63,0,0,0,0,0,0,0, - 0,0,0,-89,0,0,0,0,0,0, - 0,0,0,-64,0,0,0,0,0,0, - 0,0,0,0,-90,0,0,0,0,0, - 0,0,0,0,-65,0,0,0,0,0, - 0,0,0,0,0,-91,0,0,0,0, - 0,0,0,0,0,-66,0,0,0,0, - 0,0,0,0,0,0,-92,0,0,0, - 0,0,0,0,0,0,-142,0,0,0, - 0,0,0,0,0,0,0,-93,0,0, - 0,0,0,0,0,0,0,-143,0,0, - 0,0,0,0,0,0,0,0,-136,0, - 0,0,0,0,0,0,0,0,-160,0, - 0,0,0,0,0,0,0,0,0,-173, - 0,0,0,0,0,0,0,0,-183,0, - 0,0,0,0,0,0,0,0,0,-174, - 0,0,0,0,0,0,0,0,-94,0, - 0,0,-177,-95,0,-7,0,0,0,0, - 0,0,0,-191,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-199,0,0,0,0,0,0, - 0,0,0,0,-133,0,0,0,0,0, - 0,0,0,0,-161,0,-182,0,0,0, - -8,0,0,0,0,0,0,0,-207,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-119,0, - 0,0,0,0,0,0,0,0,0,-96, - 0,0,0,0,0,0,0,0,-97,-192, - 0,-98,-83,-99,0,-54,0,0,0,0, - 0,0,0,0,0,0,-128,0,0,0, - 0,0,0,-29,0,-30,0,0,-48,0, - 0,0,0,0,0,0,0,0,0,-100, - 0,0,0,0,-101,-146,-102,-103,-106,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-1,-32,0,-53,-31,0,0,0,-85, - 0,0,0,0,0,0,0,-68,0,0, - 0,0,0,0,0,-121,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-171,0, - 0,-46,0,0,0,0,0,0,0,0, - 0,0,-130,0,-188,-135,-138,-140,-147,0, - 0,0,0,0,0,0,0,0,0,0, - -134,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-139,-152,0,0,0, - 0,0,0,0,-5,0,0,0,0,0, - 0,0,-49,0,0,0,0,0,0,0, - 0,0,0,-158,0,-50,0,0,0,0, - 0,0,0,0,0,0,-190,0,-206,-12, - 0,0,0,0,0,0,0,0,-165,0, - -209,-178,-179,-200,-205,0,-42,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-13,0, - 0,0,0,0,0,0,-43,0,0,0, - 0,0,0,0,0,0,0,-44,0,0, - 0,0,0,0,0,0,0,0,-45,0, + 0,0,0,0,0,0,-128,-46,0,0, + 0,0,0,0,0,0,0,0,-49,0, 0,0,0,0,0,0,0,0,0,-111, - 0,0,-47,0,0,0,0,0,0,0, - 0,0,-201,-38,0,0,0,0,0,0, - 0,0,0,0,-154,0,-163,0,0,-73, - -113,-170,-108,-189,-194,0,-76,0,-124,-185, - 0,0,0,-208,-127,0,0,0,0,0, + 0,0,0,-108,-173,-146,-122,-127,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-155,0, - 0,0,0,0,0,-172,0,0,0,0, + 0,-189,0,0,-1,0,0,0,0,-100, + 0,0,0,0,0,0,0,-101,0,0, + 0,0,0,0,0,-171,0,0,0,0, + -113,-131,0,-185,0,0,0,0,0,0, + 0,0,0,0,0,-102,-135,-103,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-9,0,0,0,0,0,0,0,-10, - 0,0,0,0,0,0,0,-11,0,0, - 0,0,0,0,0,-35,-39,0,0,0, - 0,0,0,0,0,-150,0,-40,0,0, - 0,0,0,0,0,0,0,0,-71,-149, - -197,0,-41,0,0,0,0,0,0,0, - 0,-148,0,0,-144,0,0,0,0,0, - -70,0,0,0,0,0,0,0,-112,0, - 0,-169,0,0,0,0,-77,0,0,0, - 0,0,0,-166,-15,-151,-167,0,0,-181, - -28,-168,-193,0,0,0,0,0,0,0, + 0,0,0,0,0,-106,0,0,0,0, + -50,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-208,0,-121,0,0, + -130,0,0,-134,-139,-152,0,-42,0,0, + 0,0,0,0,0,0,0,0,-47,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-79,0,0,0,0,0,0,0, - 0,0,-82,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-84,-153,0,0, - 0,0,0,0,0,-105,-198,0,0,0, - 0,0,0,-176,0,0,-186,0,0,-187, - -202,0,0,0,0,0,0,0,-175,-131, - 0,0,-203,0,-109,0,0,-123,-195,0, - 0,0,-196,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-204,0,0, - -164,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-12,0,0,0,0, + 0,0,0,-43,0,0,0,0,0,0, + 0,0,0,0,-44,0,0,0,0,0, + 0,0,0,0,0,-45,0,0,0,0, + 0,0,0,0,0,0,-203,0,0,-10, + 0,0,0,0,0,0,0,0,-37,0, + 0,0,0,0,0,0,0,-38,0,0, + 0,0,0,0,0,0,-73,-170,-138,0, + 0,0,0,0,0,0,-158,0,0,0, + -126,-178,-186,0,-76,-179,-177,-124,-190,0, + 0,-71,0,-145,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-210,0,0,-202, + -109,-147,-35,-123,0,-11,0,0,0,0, + 0,0,0,0,-207,-31,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-13,0,0,0, + 0,0,0,0,0,0,0,-39,0,0, + 0,0,0,0,0,0,0,-83,-81,0, + 0,-40,0,0,0,0,0,0,0,-41, + 0,0,0,0,0,0,0,-70,0,0, + 0,0,0,0,0,-112,0,-196,-169,0, + -140,-15,-176,0,-141,-154,0,-144,-77,0, + -150,-151,0,0,-148,0,0,-28,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-161,0,0,0,0,0,0, + 0,-149,0,0,-79,0,-187,0,-211,0, + 0,0,0,-163,0,0,-105,0,-82,0, + 0,0,0,-84,0,0,0,0,0,0, + -153,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-32,0,-188,-175,-204,-166,-164,-53, + -167,-172,-168,0,-181,0,0,-194,0,0, + 0,-195,0,-197,-191,-198,-199,-200,-205,0, + 0,0,0,0,0,0,0,-206,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0 + 0,0,0,0,0,0,0,0 }; }; public final static short baseCheck[] = BaseCheck.baseCheck; @@ -222,186 +221,185 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseAction { public final static char baseAction[] = { - 87,11,24,24,23,23,32,32,69,69, - 1,1,2,2,2,2,3,3,3,4, - 5,5,5,5,5,5,5,5,51,51, - 70,6,6,6,6,6,6,6,6,6, - 6,7,7,8,8,8,8,9,9,9, - 10,10,10,12,12,12,12,12,13,13, - 13,14,14,15,15,16,16,17,17,18, - 18,19,19,20,20,20,20,20,20,20, - 20,20,20,20,20,101,45,40,88,88, - 73,73,46,102,102,102,102,102,102,102, - 103,103,103,104,104,109,109,110,110,105, - 105,106,106,106,112,112,107,107,107,107, - 108,108,108,108,108,111,111,25,25,25, - 25,25,27,27,27,79,79,74,74,74, - 74,75,75,75,76,76,76,77,77,77, - 78,78,78,113,113,114,114,115,28,30, - 30,30,30,30,52,54,54,54,54,54, - 54,54,54,54,54,54,54,63,60,60, - 89,90,64,64,61,61,61,65,80,80, - 81,81,66,66,66,48,91,91,82,83, - 83,83,62,62,92,84,84,85,85,67, - 67,21,22,22,22,29,47,47,33,33, - 33,33,36,36,38,34,34,35,39,39, - 116,116,37,117,117,93,93,26,26,26, - 26,26,26,26,26,26,86,49,49,49, - 49,31,56,56,55,55,55,57,57,50, - 50,94,94,71,71,58,58,58,41,41, - 41,42,43,43,43,44,44,44,44,53, - 53,53,59,95,72,72,72,72,68,96, - 97,97,98,98,99,99,118,118,119,119, - 120,120,120,120,122,122,121,121,121,123, - 123,87,87,1,811,16,20,17,370,790, - 43,488,486,502,118,500,614,543,689,656, - 769,748,73,90,133,211,387,596,400,31, - 135,132,134,158,434,19,16,20,17,370, - 790,43,488,486,502,396,500,614,543,689, - 656,769,748,73,279,137,441,164,201,185, - 579,104,698,141,144,147,150,324,358,19, - 16,20,17,370,41,35,366,1457,1597,1633, - 1643,1657,1210,253,211,21,629,284,201,184, - 124,368,244,1296,506,19,16,20,17,370, - 41,39,285,337,662,1281,979,482,19,16, - 20,17,370,790,43,488,486,502,396,500, - 614,543,689,656,769,748,73,279,332,19, - 16,20,17,370,790,43,488,486,502,396, - 500,614,543,689,656,769,748,73,279,506, - 19,16,20,17,370,41,43,488,486,502, - 284,500,614,543,689,1187,1296,358,19,16, - 20,17,370,41,35,285,57,14,157,1455, - 1297,286,1324,1085,290,201,186,1296,344,414, - 6,245,30,144,327,513,287,275,19,16, - 20,17,370,790,43,488,486,502,1695,500, - 614,543,689,656,769,748,73,1453,1581,273, - 274,237,458,19,16,20,17,370,790,43, - 488,486,502,636,500,614,543,689,656,769, - 748,73,279,506,19,16,20,17,370,790, - 43,488,486,502,398,500,614,543,689,656, - 769,748,73,90,506,19,16,20,17,370, - 41,43,488,486,502,288,500,614,543,1142, - 513,1296,554,19,16,20,17,370,790,43, - 488,486,502,1698,500,614,543,689,656,769, - 748,73,1459,18,200,299,19,16,20,17, - 370,790,43,488,486,502,366,500,614,543, - 689,656,769,748,73,1575,189,177,52,238, - 506,19,16,20,17,370,41,43,488,486, - 502,695,500,614,1144,513,191,133,211,252, - 211,587,638,135,132,134,158,506,19,16, - 20,17,370,790,43,488,486,502,1188,500, - 614,543,689,656,769,748,73,91,137,344, - 164,201,293,27,1349,587,141,144,147,150, - 324,506,19,16,20,17,370,41,43,832, - 1457,1597,1633,1643,1657,1210,506,19,16,20, - 17,370,790,43,488,486,502,281,500,614, - 543,689,656,769,748,73,84,506,19,16, - 20,17,370,790,43,488,486,502,243,500, - 614,543,689,656,769,748,73,83,506,19, - 16,20,17,370,790,43,488,486,502,171, - 500,614,543,689,656,769,748,73,82,506, - 19,16,20,17,370,790,43,488,486,502, - 547,500,614,543,689,656,769,748,73,81, - 506,19,16,20,17,370,790,43,488,486, - 502,578,500,614,543,689,656,769,748,73, - 80,506,19,16,20,17,370,790,43,488, - 486,502,194,500,614,543,689,656,769,748, - 73,79,506,19,16,20,17,370,790,43, - 488,486,502,199,500,614,543,689,656,769, - 748,73,78,506,19,16,20,17,370,790, - 43,488,486,502,416,500,614,543,689,656, - 769,748,73,77,506,19,16,20,17,370, - 790,43,488,486,502,488,500,614,543,689, - 656,769,748,73,76,506,19,16,20,17, - 370,790,43,488,486,502,490,500,614,543, - 689,656,769,748,73,75,506,19,16,20, - 17,370,790,43,488,486,502,514,500,614, - 543,689,656,769,748,73,74,506,19,16, - 20,17,370,790,43,488,486,502,241,500, - 614,543,689,656,769,748,73,1604,506,19, - 16,20,17,370,790,43,488,486,502,711, - 500,614,543,689,656,769,748,73,1607,506, - 19,16,20,17,370,41,43,488,486,502, - 587,500,614,543,689,656,769,748,92,506, - 19,16,20,17,370,41,43,488,486,502, - 421,500,614,543,689,656,769,748,92,601, - 661,1265,178,721,245,1610,506,19,16,20, - 17,370,41,38,506,19,16,20,17,370, - 41,43,488,486,502,1613,500,614,543,689, - 656,769,748,92,506,19,16,20,17,370, - 41,43,488,486,502,14,500,614,543,689, - 656,769,748,92,1337,696,1658,201,295,193, - 210,506,19,16,20,17,370,41,37,506, - 19,16,20,17,370,41,43,488,486,502, - 200,500,614,543,689,656,769,748,92,506, - 19,16,20,17,370,41,43,488,486,502, - 13,500,614,543,689,656,769,748,72,50, - 201,1352,614,439,671,201,506,19,16,20, - 17,370,41,43,488,486,502,113,500,614, - 543,689,656,1185,201,30,201,30,1560,506, - 19,16,20,17,370,41,43,488,486,502, - 305,500,1034,272,291,324,207,600,97,676, - 216,1269,219,1572,221,222,227,1592,265,504, - 503,270,382,14,261,14,489,208,495,275, - 189,177,272,553,553,262,553,553,513,216, - 1269,219,1572,221,222,227,737,265,504,503, - 270,133,211,1612,24,414,23,136,132,134, - 158,22,86,86,1420,86,88,311,371,151, - 1180,259,506,19,16,20,17,370,41,43, - 488,958,138,670,164,281,14,14,707,499, - 142,145,148,151,324,272,1681,1489,695,1721, - 1226,205,217,1269,219,1572,221,222,227,339, - 267,504,503,270,1218,226,738,739,216,1269, - 219,1572,221,222,227,530,19,16,20,17, - 370,40,1354,506,19,16,20,17,370,41, - 43,488,486,502,697,1130,506,19,16,20, - 17,370,41,43,488,486,502,587,1139,281, - 530,19,16,20,17,370,33,196,198,710, - 1681,158,700,724,712,287,1667,506,19,16, - 20,17,370,41,43,488,486,874,1796,202, - 253,211,216,1269,219,1572,221,222,227,530, - 19,16,20,17,370,32,1354,506,19,16, - 20,17,370,41,43,488,486,895,506,19, - 16,20,17,370,41,43,488,486,916,506, - 19,16,20,17,370,41,43,488,486,937, - 513,197,198,506,19,16,20,17,370,41, - 43,488,1029,728,506,19,16,20,17,370, - 41,43,853,271,1681,14,280,14,1796,1796, - 326,679,679,104,721,711,1674,232,417,104, - 719,1589,1690,1677,733,513,216,1269,219,1572, - 221,222,227,275,276,229,272,239,133,211, - 1612,253,211,241,140,132,134,158,277,612, - 1352,265,504,503,270,1226,14,217,1269,219, - 1572,221,222,227,1796,1693,1718,1680,1420,139, - 1796,164,506,19,16,20,17,370,41,36, - 506,19,16,20,17,370,41,35,506,19, - 16,20,17,370,41,34,160,506,19,16, - 20,17,370,41,46,1796,357,1559,506,19, - 16,20,17,370,41,45,207,636,1796,44, - 44,587,272,506,19,16,20,17,370,41, - 44,1157,720,1033,1353,104,1796,265,504,503, - 270,409,19,16,20,17,370,41,42,567, - 1189,1189,567,179,264,1796,258,627,225,240, - 636,1796,1796,636,104,14,513,104,1666,1249, - 104,14,513,104,1157,1796,313,1157,133,211, - 1189,1796,313,1189,143,132,134,158,242,278, - 195,243,1796,632,292,223,195,294,1666,257, - 1796,1249,257,661,1465,86,1263,1465,1796,1263, - 590,86,1796,1536,133,211,590,666,48,1536, - 146,132,134,158,133,211,242,446,1796,636, - 149,132,134,158,612,1352,505,588,133,211, - 142,44,655,195,152,132,134,158,636,95, - 116,636,272,587,1796,52,1796,1226,52,513, - 636,636,1157,365,1796,195,1020,267,504,503, - 270,1796,1189,1796,195,1157,252,211,587,252, - 211,52,228,1796,190,203,232,257,1020,1796, - 1464,1796,1699,1796,1263,1796,192,1020,1000,1689, - 257,207,252,211,1796,1606,190,1263,1796,1796, - 1351,372,1796,1796,372,191,1796,1796,1454,1353, - 1561,1689,1796,1796,1796,1796,1796,1796,1796,1796, - 1703,1796,1796,1796,1796,1796,1796,1460,1796,1796, - 1796,615,1796,1796,947,1796,0,19,177,0, - 1,2020,0,1,2031,0 + 87,11,101,24,24,23,23,32,32,69, + 69,1,1,2,2,2,2,3,3,3, + 4,5,5,5,5,5,5,5,5,51, + 51,70,6,6,6,6,6,6,6,6, + 6,6,7,7,8,8,8,8,9,9, + 9,10,10,10,12,12,12,12,12,13, + 13,13,14,14,15,15,16,16,17,17, + 18,18,19,19,20,20,20,20,20,20, + 20,20,20,20,20,20,102,45,40,88, + 88,73,73,46,103,103,103,103,103,103, + 103,104,104,104,105,105,110,110,111,111, + 106,106,107,107,107,113,113,108,108,108, + 108,109,109,109,109,109,112,112,25,25, + 25,25,25,28,28,28,79,79,74,74, + 74,74,75,75,75,76,76,76,77,77, + 77,78,78,78,114,114,115,115,116,29, + 31,31,31,31,31,52,54,54,54,54, + 54,54,54,54,54,54,54,54,63,60, + 60,89,90,64,64,61,61,61,65,80, + 80,81,81,66,66,66,48,91,91,82, + 83,83,83,62,62,92,84,84,85,85, + 67,67,21,22,22,22,30,47,47,33, + 33,33,33,36,36,38,34,34,35,39, + 39,117,117,37,118,118,93,93,26,26, + 26,26,26,26,26,26,26,86,49,49, + 49,49,27,56,56,55,55,55,57,57, + 50,50,94,94,71,71,58,58,58,41, + 41,41,42,43,43,43,44,44,44,44, + 53,53,53,59,95,72,72,72,72,68, + 96,97,97,98,98,99,99,119,119,120, + 120,121,121,121,121,123,123,122,122,122, + 124,124,87,87,1,878,17,21,18,469, + 857,44,486,477,714,587,543,752,717,794, + 773,836,815,74,91,134,212,596,589,144, + 31,513,136,133,135,159,506,20,17,21, + 18,469,42,44,486,477,714,28,543,752, + 717,794,773,1248,1558,274,138,629,165,201, + 186,201,185,441,142,145,148,151,1097,506, + 20,17,21,18,469,42,40,373,1445,1579, + 1625,1639,1644,666,434,20,17,21,18,469, + 857,44,486,477,714,367,543,752,717,794, + 773,836,815,74,280,482,20,17,21,18, + 469,857,44,486,477,714,367,543,752,717, + 794,773,836,815,74,280,506,20,17,21, + 18,469,42,44,486,477,714,285,543,752, + 717,794,1276,1325,358,20,17,21,18,469, + 42,36,286,1437,1614,291,1100,387,285,579, + 14,14,201,31,1325,201,31,57,245,201, + 1442,394,1651,286,662,1324,157,1702,332,20, + 17,21,18,469,857,44,486,477,714,367, + 543,752,717,794,773,836,815,74,280,275, + 20,17,21,18,469,857,44,486,477,714, + 1481,543,752,717,794,773,836,815,74,1214, + 201,187,369,238,530,20,17,21,18,469, + 41,287,25,6,104,24,209,1325,506,20, + 17,21,18,469,42,39,288,458,20,17, + 21,18,469,857,44,486,477,714,22,543, + 752,717,794,773,836,815,74,280,506,20, + 17,21,18,469,857,44,486,477,714,124, + 543,752,717,794,773,836,815,74,91,506, + 20,17,21,18,469,42,44,486,477,714, + 289,543,752,717,1154,513,1325,554,20,17, + 21,18,469,857,44,486,477,714,1484,543, + 752,717,794,773,836,815,74,1448,19,327, + 299,20,17,21,18,469,857,44,486,477, + 714,373,543,752,717,794,773,836,815,74, + 1578,189,178,52,239,275,189,178,506,20, + 17,21,18,469,42,44,486,477,714,1326, + 543,1096,134,212,253,212,513,134,212,136, + 133,135,159,513,137,133,135,159,506,20, + 17,21,18,469,42,44,486,477,714,1278, + 543,752,1155,138,30,165,23,636,139,1443, + 165,142,145,148,151,1097,143,146,149,152, + 1097,201,294,201,296,1445,1579,1625,1639,1644, + 666,506,20,17,21,18,469,857,44,486, + 477,714,200,543,752,717,794,773,836,815, + 74,92,506,20,17,21,18,469,857,44, + 486,477,714,191,543,752,717,794,773,836, + 815,74,85,506,20,17,21,18,469,857, + 44,486,477,714,344,543,752,717,794,773, + 836,815,74,84,506,20,17,21,18,469, + 857,44,486,477,714,243,543,752,717,794, + 773,836,815,74,83,506,20,17,21,18, + 469,857,44,486,477,714,171,543,752,717, + 794,773,836,815,74,82,506,20,17,21, + 18,469,857,44,486,477,714,547,543,752, + 717,794,773,836,815,74,81,506,20,17, + 21,18,469,857,44,486,477,714,578,543, + 752,717,794,773,836,815,74,80,506,20, + 17,21,18,469,857,44,486,477,714,194, + 543,752,717,794,773,836,815,74,79,506, + 20,17,21,18,469,857,44,486,477,714, + 199,543,752,717,794,773,836,815,74,78, + 506,20,17,21,18,469,857,44,486,477, + 714,416,543,752,717,794,773,836,815,74, + 77,506,20,17,21,18,469,857,44,486, + 477,714,488,543,752,717,794,773,836,815, + 74,76,506,20,17,21,18,469,857,44, + 486,477,714,490,543,752,717,794,773,836, + 815,74,75,506,20,17,21,18,469,857, + 44,486,477,714,514,543,752,717,794,773, + 836,815,74,73,506,20,17,21,18,469, + 857,44,486,477,714,241,543,752,717,794, + 773,836,815,74,1688,506,20,17,21,18, + 469,857,44,486,477,714,601,543,752,717, + 794,773,836,815,74,1691,506,20,17,21, + 18,469,42,44,486,477,714,587,543,752, + 717,794,773,836,815,93,506,20,17,21, + 18,469,42,44,486,477,714,421,543,752, + 717,794,773,836,815,93,245,118,1232,282, + 711,13,1695,506,20,17,21,18,469,42, + 38,506,20,17,21,18,469,42,44,486, + 477,714,1698,543,752,717,794,773,836,815, + 93,506,20,17,21,18,469,42,44,486, + 477,714,50,543,752,717,794,773,836,815, + 93,325,612,1442,614,671,194,211,506,20, + 17,21,18,469,42,37,506,20,17,21, + 18,469,42,44,486,477,714,201,543,752, + 717,794,773,836,815,93,337,113,506,20, + 17,21,18,469,42,44,486,1025,1622,506, + 20,17,21,18,469,42,44,486,477,714, + 513,1101,202,273,104,587,207,44,513,208, + 217,1482,220,1585,222,223,228,1569,266,639, + 339,271,281,272,262,382,1447,1446,240,276, + 305,278,273,1687,1575,263,578,179,324,217, + 1482,220,1585,222,223,228,151,266,639,339, + 271,679,116,1693,52,217,1482,220,1585,222, + 223,228,1262,661,1210,87,600,14,97,1480, + 312,260,273,1318,277,253,212,1187,1152,218, + 1482,220,1585,222,223,228,676,268,639,339, + 271,506,20,17,21,18,469,42,44,486, + 477,714,258,1142,197,199,281,1582,737,1321, + 1568,670,340,1708,205,738,739,1687,506,20, + 17,21,18,469,42,44,486,477,941,506, + 20,17,21,18,469,42,44,486,1046,217, + 1482,220,1585,222,223,228,530,20,17,21, + 18,469,34,1480,506,20,17,21,18,469, + 42,44,486,477,962,506,20,17,21,18, + 469,42,44,486,477,983,506,20,17,21, + 18,469,42,44,486,477,1004,728,198,199, + 506,20,17,21,18,469,42,36,1687,506, + 20,17,21,18,469,42,44,899,506,20, + 17,21,18,469,42,44,920,326,679,14, + 217,1482,220,1585,222,223,228,697,1566,1627, + 1067,695,700,710,1693,232,724,721,104,721, + 276,230,44,273,358,20,17,21,18,469, + 42,36,254,212,254,212,134,212,266,639, + 339,271,242,141,133,135,159,733,246,1296, + 712,52,499,160,52,1210,506,20,17,21, + 18,469,42,35,1452,287,489,140,1705,165, + 1709,1637,253,212,1318,253,212,578,227,273, + 218,1482,220,1585,222,223,228,530,20,17, + 21,18,469,33,266,639,339,271,506,20, + 17,21,18,469,42,47,89,1441,439,414, + 1441,265,506,20,17,21,18,469,42,46, + 506,20,17,21,18,469,42,45,409,20, + 17,21,18,469,42,43,567,640,719,567, + 1014,44,14,612,1442,698,14,661,104,627, + 661,357,513,314,693,720,663,1573,14,254, + 212,1187,661,1296,1187,1789,1296,196,1689,314, + 134,212,241,530,371,279,1187,144,133,135, + 159,226,87,196,696,1637,258,615,1256,258, + 1483,1218,44,1321,1218,632,1321,588,87,158, + 484,259,1789,615,14,1789,1483,242,661,661, + 208,1789,1789,341,666,415,134,212,1789,1296, + 1789,48,1187,147,133,135,159,1449,1446,686, + 134,212,661,273,1318,134,212,150,133,135, + 159,1256,153,133,135,159,196,258,268,639, + 339,271,1704,14,1321,142,95,44,104,707, + 14,104,14,513,578,104,661,661,104,1087, + 1264,578,711,1685,513,587,365,587,446,587, + 196,196,243,292,1296,244,224,191,587,293, + 1706,1789,295,87,281,1789,1789,229,544,233, + 87,1215,1686,1087,1087,1240,1477,203,1789,180, + 1789,204,1789,1789,1789,1789,1789,1789,1789,1789, + 1629,191,192,1718,1789,1789,1789,1789,1789,1789, + 1789,1789,1789,1789,1789,1707,1686,1789,1789,1789, + 1789,1789,1789,1789,1789,1789,1789,193,1789,0, + 20,178,0,1,2014,0,1,2025,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -502,84 +500,84 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 1796,1806,1605,1807,1520,58,2008,2009,2010,1512, - 1091,1528,60,1,1379,1340,1305,1957,1808,1809, - 1810,1811,1036,404,1958,1956,2011,1959,1955,53, - 1796,1962,1967,1966,1964,1965,1963,1968,1969,1961, - 1970,1971,1972,251,1143,499,336,1796,1,59, - 1,1796,189,1,1,1,50,2008,2009,2010, - 1409,1398,1387,1357,1,1434,701,1409,1398,1387, - 1357,1,1,1,1,1,1252,1423,1,1, + 1789,1800,1572,1801,1400,59,2002,2003,2004,1158, + 1103,1486,61,1,1517,1356,534,1951,1802,1803, + 1804,1805,548,379,1952,1950,2005,1953,1949,54, + 1789,1956,1961,1960,1958,1959,1957,1962,1963,1955, + 1964,1965,1966,252,1538,1539,467,1789,1,60, + 1,1789,190,1,1,1,51,2002,2003,2004, + 1386,1375,1364,1328,1,1418,1409,1386,1375,1364, + 1328,1,1,1,1,1,1188,1339,1,1, 1,1,1,1,1,1,1,1,1,1, - 189,1,1,1,1796,1,1796,1,1990,188, - 1,1,1,1796,1409,1398,1387,1357,1799,487, - 1786,1,260,2020,1186,1,1,180,1,1, - 1,1,1,181,507,1,1,1,1,1, - 1,1,1,1,1,1,1,188,1,1, - 1,1796,1,269,1,1990,189,1,1,1, - 266,2020,1186,1798,251,507,47,283,1,263, - 1563,1450,507,1,2052,1,1,1,1,1, - 69,507,1,1,1,1,1,1,1,1, - 1,1,1,1,189,1,1,1,1796,1806, - 67,1807,1990,49,2008,2009,2010,1563,48,61, - 1796,1806,1563,1807,1796,1957,1,1790,1186,1548, - 1537,1801,1958,1956,2011,1959,1955,1445,507,1962, - 1967,1966,1964,1965,1963,1968,1969,1961,1970,1971, - 1972,127,1143,499,336,459,1800,2008,2009,2010, - 52,266,71,1450,62,251,1548,1537,1957,1434, - 701,1548,1537,507,574,1958,1956,2011,1959,1955, - 1326,1313,1962,1967,1966,1964,1965,1963,1968,1969, - 1961,1970,1971,1972,1,1806,1605,1807,378,1799, - 1,2020,1433,1512,1091,1528,1796,2032,1379,1340, - 1305,592,1808,1809,1810,1811,1036,404,1796,1806, - 1605,1807,477,1799,1796,1326,1313,1512,1091,1528, - 1146,1205,1379,1340,1305,968,1808,1809,1810,1811, - 1036,404,1796,70,1798,1,268,1450,1451,1796, - 1801,1,1806,1605,1807,1520,28,507,507,1064, - 1512,1091,1528,65,2839,1379,1340,1305,1798,1808, - 1809,1810,1811,1036,404,1800,1,1796,1806,1605, - 1807,1520,1799,1119,1796,1796,1512,1091,1528,1801, - 1796,1379,1340,1305,28,1808,1809,1810,1811,1036, - 404,1796,1,1,1,1,183,2850,459,2850, - 1,1,1,1355,1800,1,1,1,1796,1, - 1,1,1,1,1,2051,640,1798,1796,1806, - 1605,1807,1520,182,2851,57,2851,1512,1091,1528, - 1,487,1379,1340,1305,1805,1808,1809,1810,1811, - 1036,404,2108,1,1806,1605,1807,1520,204,2853, - 87,2853,1512,1091,1528,1796,2839,1379,1340,1305, - 1805,1808,1809,1810,1811,1036,404,1796,1806,1605, - 1807,1520,1252,1423,1796,1796,1512,1091,1528,667, - 2839,1379,1340,1305,1339,1808,1809,1810,1811,1036, - 404,1,1806,1605,1807,1520,1804,56,1,55, - 1512,1091,1528,89,2839,1379,1340,1305,218,1808, - 1809,1810,1811,1036,404,1796,1806,1605,1807,1520, - 507,1804,1796,54,1512,1091,1528,1801,89,1379, - 1340,1305,1796,1808,1809,1810,1811,1036,404,1796, - 1806,1611,1807,1520,1252,1423,1252,1423,1512,1091, - 1528,1796,1800,1379,1340,1305,41,1808,1809,1810, - 1811,1036,404,1,1806,1605,1807,1520,1796,1796, - 1252,1423,1512,1091,1528,1796,1,1379,1340,1305, - 251,1808,1809,1810,1811,1036,404,19,31,1787, - 1206,1787,1787,177,177,177,1796,1,1793,1787, - 1203,1803,1821,1822,177,1796,1806,1796,1807,68, - 51,177,177,177,177,177,926,1787,1075,1434, - 701,206,1806,66,1807,2052,905,884,863,842, - 821,779,800,758,737,716,128,1796,1796,1802, - 1166,129,2008,2009,2010,63,2052,2008,2009,2010, - 989,205,1140,1957,1140,1164,1169,1796,1957,1796, - 1958,1956,2011,1959,1955,1958,1956,2011,1959,1955, - 130,1796,1806,574,1807,131,2008,2009,2010,254, - 64,2008,2009,2010,1266,1796,640,1957,1,651, - 691,1169,1957,1801,1958,1956,2011,1959,1955,1958, - 1956,2011,1959,1955,247,289,1796,246,1546,209, - 1,1,1,2008,2009,2010,248,1009,1800,249, - 29,199,1,1,1,2008,2009,2010,250,220, - 29,1452,1796,205,2008,2009,2010,1,2020,1433, - 282,507,251,2020,1433,1267,1796,1796,1796,438, - 1268,187,187,1796,187,1796,1796,1087,1796,1824, - 1447,1496,2750,1796,183,182,532,204,1796,1044, - 1796,1796,1796,1796,1796,1796,1796,1796,1796,1796, - 1099,1796,1796,1267 + 190,1,1,1,1789,1,1789,1,1984,189, + 1,1,1,1789,1386,1375,1364,1328,1793,470, + 1779,1,261,2014,1216,1,1,181,1,1, + 1,1,1,182,509,1,1,1,1,1, + 1,1,1,1,1,1,1,189,1,1, + 1,1789,1,270,1,1984,190,1,1,1, + 267,2014,1216,1792,252,509,48,284,1,264, + 1550,1427,509,1,2046,1,1,1,1,1, + 70,509,1,1,1,1,1,1,1,1, + 1,1,1,1,190,1,1,1,1789,1800, + 68,1801,1984,50,2002,2003,2004,1550,49,62, + 1789,1800,1550,1801,1789,1951,1,1783,1216,1542, + 1528,1795,1952,1950,2005,1953,1949,1576,509,1956, + 1961,1960,1958,1959,1957,1962,1963,1955,1964,1965, + 1966,128,1538,1539,467,436,1794,2002,2003,2004, + 53,267,72,1427,63,252,1542,1528,1951,1418, + 1409,1542,1528,509,599,1952,1950,2005,1953,1949, + 1301,1199,1956,1961,1960,1958,1959,1957,1962,1963, + 1955,1964,1965,1966,1,1800,1572,1801,454,1793, + 1,2014,1397,1158,1103,1486,1789,2026,1517,1356, + 534,617,1802,1803,1804,1805,548,379,1789,1800, + 1572,1801,1454,1793,1789,1301,1199,1158,1103,1486, + 346,1690,1517,1356,534,1035,1802,1803,1804,1805, + 548,379,1789,71,1792,1,269,1427,1261,1789, + 1795,1,1800,1572,1801,1400,29,509,509,1131, + 1158,1103,1486,66,2833,1517,1356,534,1792,1802, + 1803,1804,1805,548,379,1794,1,1789,1800,1572, + 1801,1400,1793,993,1789,1789,1158,1103,1486,1795, + 1789,1517,1356,534,29,1802,1803,1804,1805,548, + 379,1789,1,1,1,1,184,2844,436,2844, + 1,1,1,1495,1794,1,1,1,1789,1, + 1,1,1,1,1,2045,698,1792,1789,1800, + 1572,1801,1400,183,2845,58,2845,1158,1103,1486, + 1,470,1517,1356,534,1799,1802,1803,1804,1805, + 548,379,2102,1,1800,1572,1801,1400,205,2847, + 88,2847,1158,1103,1486,1789,2833,1517,1356,534, + 1799,1802,1803,1804,1805,548,379,1789,1800,1572, + 1801,1400,1188,1339,1789,1789,1158,1103,1486,741, + 2833,1517,1356,534,1316,1802,1803,1804,1805,548, + 379,1,1800,1572,1801,1400,1798,57,1,56, + 1158,1103,1486,90,2833,1517,1356,534,219,1802, + 1803,1804,1805,548,379,1789,1800,1572,1801,1400, + 509,1798,1789,55,1158,1103,1486,1795,90,1517, + 1356,534,1789,1802,1803,1804,1805,548,379,1789, + 1800,1588,1801,1400,1188,1339,1188,1339,1158,1103, + 1486,1789,1794,1517,1356,534,42,1802,1803,1804, + 1805,548,379,1,1800,1572,1801,1400,1789,1789, + 1188,1339,1158,1103,1486,1789,1,1517,1356,534, + 252,1802,1803,1804,1805,548,379,20,32,1780, + 1496,1780,1780,178,178,178,1789,1,1786,1780, + 1683,1797,1815,1816,178,1789,1800,1789,1801,69, + 52,178,178,178,178,178,972,1780,471,1418, + 1409,207,1800,67,1801,2046,951,930,909,888, + 867,825,846,804,783,762,129,1789,1789,1796, + 475,130,2002,2003,2004,64,2046,2002,2003,2004, + 1056,206,479,1951,479,472,668,1789,1951,1789, + 1952,1950,2005,1953,1949,1952,1950,2005,1953,1949, + 131,1789,1800,599,1801,132,2002,2003,2004,255, + 65,2002,2003,2004,1277,1789,698,1951,1,1217, + 731,668,1951,1795,1952,1950,2005,1953,1949,1952, + 1950,2005,1953,1949,247,290,1789,248,1581,210, + 2002,2003,2004,1,1,1,249,1076,1794,250, + 30,200,1,1,1,2002,2003,2004,251,221, + 30,1428,1789,206,2002,2003,2004,1,2014,1397, + 283,509,252,2014,1397,1429,1789,1789,1789,488, + 1571,188,188,1789,188,1789,1789,733,1789,1818, + 1634,1692,2744,1789,184,183,557,205,1789,1111, + 1789,1789,1789,1789,1789,1789,1789,1789,1789,1789, + 1166,1789,1789,1429 }; }; public final static char termAction[] = TermAction.termAction; @@ -587,27 +585,28 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 231,1,104,41,104,104,104,104,104,104, - 104,104,104,3,380,73,70,77,75,83, - 81,85,84,87,86,10,104,380,309,309, - 249,104,187,187,337,380,104,104,104,104, - 104,104,104,104,104,104,104,104,104,104, - 104,104,104,104,104,104,104,104,104,104, - 104,104,104,104,104,104,187,187,45,52, - 341,98,279,185,184,312,324,66,324,66, - 66,324,66,324,394,141,70,70,75,75, - 75,75,73,73,81,77,77,84,83,349, - 86,85,68,50,337,341,121,45,417,102, - 187,351,282,66,309,309,66,309,104,50, - 341,332,417,45,101,98,187,335,394,186, - 284,68,197,68,268,270,228,224,68,332, - 417,104,104,45,102,279,344,343,341,284, - 187,68,197,268,268,224,48,277,309,104, - 227,224,50,417,332,45,45,187,351,282, - 335,197,224,190,197,268,270,274,270,52, - 45,309,104,50,332,284,197,192,270,224, - 104,309,45,270,187,186,224,94,104,93, - 117,341,224,224,310,192,104,117,270 + 199,1,106,41,106,106,106,106,106,106, + 106,106,106,3,340,23,20,27,25,33, + 31,35,34,37,36,9,106,340,253,253, + 292,106,189,189,286,340,106,106,106,106, + 106,106,106,106,106,106,106,106,106,106, + 106,106,106,106,106,106,106,106,106,106, + 106,106,106,106,106,106,189,189,45,82, + 290,100,223,187,186,261,273,96,273,96, + 96,273,96,273,354,143,20,20,25,25, + 25,25,23,23,31,27,27,34,33,197, + 36,35,98,80,286,290,123,45,377,104, + 189,311,226,96,253,253,96,253,106,80, + 290,281,377,45,103,100,189,284,354,188, + 228,98,48,98,217,219,390,75,98,281, + 281,106,106,45,104,223,382,381,290,228, + 189,98,48,217,217,75,78,259,253,106, + 389,75,80,281,377,45,45,189,311,226, + 284,48,75,192,48,217,219,256,219,82, + 45,253,106,80,377,281,228,48,194,219, + 75,106,253,45,219,281,189,188,75,385, + 106,384,119,290,75,75,254,194,106,119, + 219 }; }; public final static char asb[] = Asb.asb; @@ -615,48 +614,46 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static byte asr[] = {0, - 80,0,66,12,2,52,67,14,15,11, - 4,9,10,53,54,47,48,55,56,57, - 58,61,62,63,64,65,68,69,43,60, - 70,71,72,73,74,76,75,77,78,79, - 59,30,80,29,50,5,0,5,43,12, - 52,14,15,11,4,9,10,22,23,16, - 2,18,19,20,21,1,3,13,0,4, + 80,0,12,2,52,67,14,15,60,70, + 71,72,73,74,76,75,77,78,79,4, 53,54,9,10,48,47,55,56,57,58, - 61,62,11,63,64,65,50,30,43,80, - 68,69,59,66,5,29,0,6,7,8, - 17,50,5,18,19,20,21,3,14,15, - 11,9,10,22,23,16,4,2,1,0, - 6,7,8,2,18,19,20,21,1,3, - 14,15,11,4,9,10,22,23,16,0, - 7,17,28,8,27,26,25,6,24,52, - 67,14,15,11,9,10,53,54,47,48, - 55,56,57,58,61,62,63,64,65,68, - 69,60,70,71,72,73,74,75,76,77, - 78,79,4,2,12,29,30,5,0,66, - 5,4,1,2,59,0,24,31,6,32, - 44,25,33,26,34,35,27,7,36,37, - 17,45,28,46,38,39,8,40,41,42, - 1,3,51,5,43,0,60,12,52,0, - 16,18,19,20,21,1,3,2,14,15, - 11,4,9,10,22,23,51,0,5,30, - 16,18,19,20,21,1,3,2,14,15, - 11,4,9,10,22,23,0,1,3,5, - 43,29,0,5,29,43,60,0,4,2, - 12,30,5,24,31,6,32,44,25,33, - 26,34,35,27,7,36,37,17,45,28, - 46,38,39,8,40,41,42,49,3,1, - 0,39,31,36,34,35,33,32,37,38, - 40,41,42,59,66,28,25,17,24,27, - 26,6,7,8,29,1,5,30,2,12, - 4,0,2,5,29,30,66,12,59,0, + 61,62,11,63,64,65,43,66,68,69, + 59,30,80,29,50,5,0,24,31,6, + 32,44,25,33,26,34,35,27,7,36, + 37,17,45,28,46,38,39,8,40,41, + 42,1,3,51,5,43,0,5,43,12, + 52,14,15,11,4,9,10,22,23,16, + 2,18,19,20,21,1,3,13,0,6, + 7,8,17,50,5,18,19,20,21,3, + 14,15,11,9,10,22,23,16,4,2, + 1,0,6,7,8,2,18,19,20,21, + 1,3,14,15,11,4,9,10,22,23, + 16,0,7,17,28,8,27,26,25,6, + 24,52,67,14,15,11,9,10,53,54, + 47,48,55,56,57,58,61,62,63,64, + 65,68,69,60,70,71,72,73,74,75, + 76,77,78,79,4,2,12,29,30,5, + 0,66,5,4,1,2,59,0,16,18, + 19,20,21,1,3,2,14,15,11,4, + 9,10,22,23,51,0,1,3,5,43, + 29,0,4,2,12,30,5,24,31,6, + 32,44,25,33,26,34,35,27,7,36, + 37,17,45,28,46,38,39,8,40,41, + 42,49,3,1,0,5,29,43,60,0, + 39,31,36,34,35,33,32,37,38,40, + 41,42,59,66,28,25,17,24,27,26, + 6,7,8,29,1,5,30,2,12,4, + 0,5,30,16,18,19,20,21,1,3, + 2,14,15,11,4,9,10,22,23,0, 4,24,31,6,32,44,25,33,26,34, 35,27,7,36,37,17,45,28,46,38, 39,8,40,41,42,1,3,49,0,16, 18,19,20,21,2,14,15,11,4,9, 10,22,23,1,3,44,45,46,39,31, 36,34,35,33,32,37,38,40,41,42, - 28,25,17,24,27,26,6,7,8,0 + 28,25,17,24,27,26,6,7,8,0, + 2,30,12,59,66,5,29,0,60,12, + 52,0 }; }; public final static byte asr[] = Asr.asr; @@ -664,27 +661,28 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasb { public final static byte nasb[] = {0, - 60,38,20,38,20,20,20,20,20,20, - 20,20,20,38,98,38,38,38,38,38, - 38,38,38,38,38,38,20,98,51,51, - 63,99,88,88,83,1,20,20,20,20, + 61,38,20,38,20,20,20,20,20,20, + 20,20,20,38,96,38,38,38,38,38, + 38,38,38,38,38,38,20,96,15,15, + 85,97,71,71,74,1,20,20,20,20, 20,20,20,20,20,20,20,20,20,20, - 20,20,99,20,20,20,20,20,20,20, - 20,20,20,20,20,20,88,88,26,20, - 90,24,82,22,22,71,72,9,72,49, - 49,72,48,72,66,38,38,38,38,38, + 20,20,97,20,20,20,20,20,20,20, + 20,20,20,20,20,20,71,71,24,20, + 80,22,73,11,11,44,45,50,45,89, + 89,45,88,45,39,38,38,38,38,38, 38,38,38,38,38,38,38,38,38,38, - 38,38,38,58,106,38,28,26,118,25, - 88,93,87,7,7,7,7,7,20,18, - 38,58,118,26,25,11,88,54,31,38, - 95,15,58,38,58,41,13,58,38,58, - 118,20,20,26,25,53,22,22,90,95, - 88,38,102,58,7,39,17,38,7,20, - 46,39,58,118,11,26,26,88,93,87, - 74,58,39,43,114,7,41,38,38,19, - 26,7,20,18,11,110,102,56,41,39, - 20,7,26,41,88,88,39,44,20,38, - 56,90,39,39,38,56,20,76,80 + 38,38,38,59,108,38,28,24,83,23, + 71,91,70,7,7,7,7,7,20,18, + 38,68,83,24,23,78,71,55,31,38, + 93,26,59,38,59,52,13,59,38,68, + 59,20,20,24,23,54,11,11,80,93, + 71,38,112,59,7,9,17,38,7,20, + 100,9,59,59,83,24,24,71,91,70, + 64,59,9,47,116,7,52,38,38,19, + 24,7,20,18,83,78,102,112,57,52, + 9,20,7,24,52,78,71,71,9,48, + 20,38,57,80,9,9,38,57,20,66, + 106 }; }; public final static byte nasb[] = Nasb.nasb; @@ -692,18 +690,18 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasr { public final static char nasr[] = {0, - 79,77,76,64,75,74,1,0,89,0, - 21,0,97,0,90,0,68,11,59,5, - 0,26,0,11,5,24,0,5,11,0, - 79,78,77,76,64,75,74,0,32,0, - 51,0,11,69,0,99,0,92,65,0, - 70,0,23,43,42,36,34,11,0,11, - 87,0,11,88,0,64,60,61,62,63, - 52,27,0,43,42,36,34,31,0,95, - 0,23,42,43,11,0,11,23,0,31, - 49,0,31,49,11,25,0,48,11,45, - 0,81,11,48,0,43,42,31,0,93, - 11,25,0,11,48,66,0,56,0 + 79,77,76,64,75,74,1,0,32,0, + 26,0,97,0,70,0,68,11,59,5, + 0,11,5,24,0,90,0,5,11,0, + 79,78,77,76,64,75,74,0,64,60, + 61,62,63,52,28,0,11,69,0,89, + 0,51,0,23,43,42,36,34,11,0, + 11,87,0,43,42,36,34,27,0,11, + 23,0,23,42,43,11,0,21,0,27, + 49,0,56,0,11,88,0,92,65,0, + 27,49,11,25,0,48,11,45,0,99, + 0,93,11,25,0,95,0,43,42,27, + 0,81,11,48,0,11,48,66,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -729,18 +727,18 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, 100,0,0,0,102,106,107,108,109,110, - 0,111,112,113,114,115,116,117,118,119, - 129,0,97,96,122,150,128,0,0,0, - 0,98,146,148,0,149,0,0,0,0, - 159,160,161,0,101,121,137,141,147,156, - 0,131,136,0,151,154,155,158,0,132, - 133,134,135,138,0,140,145,162,99,103, - 104,105,120,123,124,125,126,127,130,0, - 139,143,0,0,144,153,95,0,0,0, - 142,0,152,157,0,163,164,0,165,0, + 0,111,112,113,114,115,116,117,0,118, + 128,0,97,96,121,149,0,127,0,0, + 0,98,145,147,0,148,0,0,0,0, + 158,159,160,0,101,120,136,140,146,155, + 0,130,135,0,150,153,154,157,0,131, + 132,133,134,137,0,139,144,161,99,103, + 104,105,119,122,123,124,125,126,129,0, + 138,142,0,0,143,152,95,0,0,0, + 141,0,151,156,0,162,163,0,164,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0 + 0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -770,9 +768,9 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLhs { public final static char scopeLhs[] = { - 62,60,5,62,26,26,60,53,106,44, + 62,60,5,62,26,26,60,53,107,44, 26,39,44,26,66,5,5,19,99,98, - 42,26,36,3,68,66,7,107,5,66, + 42,26,36,3,68,66,7,108,5,66, 39,37,39 }; }; @@ -803,20 +801,20 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeRhs { public final static char scopeRhs[] = {0, - 139,12,0,96,0,189,104,0,31,136, + 139,12,0,96,0,189,104,0,31,135, 0,144,165,104,13,152,0,98,0,0, 148,104,2,135,0,97,0,148,104,2, 0,151,2,0,113,17,179,104,12,0, 113,179,104,17,12,0,113,17,12,0, 113,179,104,12,0,113,12,0,129,0, - 2,0,152,97,0,2,97,0,148,104, - 2,129,0,2,0,151,97,0,140,2, + 2,0,151,97,0,2,97,0,148,104, + 2,129,0,2,0,150,97,0,140,2, 0,144,177,104,13,94,185,44,0,98, 0,144,177,104,13,185,44,0,141,0, - 99,0,184,104,141,0,104,141,0,142, + 99,0,184,104,141,0,104,141,0,141, 99,0,173,104,13,183,94,182,157,0, - 173,104,13,182,157,0,195,85,0,77, - 2,101,97,99,0,195,116,138,2,89, + 173,104,13,182,157,0,196,85,0,77, + 2,101,97,99,0,196,116,138,2,89, 0,53,0,0,138,69,111,0,29,118, 0,164,2,0,97,107,0,144,165,104, 13,116,164,2,0,97,3,0,105,0, @@ -829,15 +827,15 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 1085,0,1680,1689,1658,0,396,0,1464,1339, - 1433,1265,1249,1186,1157,0,636,1210,313,0, - 1572,1269,504,503,1249,1186,1157,1666,1450,1536, - 0,1379,1340,1305,477,378,1581,459,1146,640, - 574,1326,1313,1169,1423,1252,1409,1398,1387,1357, - 1563,1548,1537,1434,701,1528,1520,1512,1091,1036, - 404,1099,1064,1044,1009,989,968,947,615,1119, - 592,507,926,905,884,863,842,821,800,779, - 758,737,716,313,667,553,532,417,438,344, + 1614,0,1685,1686,1651,0,367,0,1477,1316, + 1397,1232,1256,1216,1187,0,661,666,314,0, + 1585,1482,639,339,1256,1216,1187,1637,1427,1483, + 0,1517,1356,534,1454,454,1558,436,346,698, + 599,1301,1199,668,1339,1188,1386,1375,1364,1328, + 1550,1542,1528,1418,1409,1486,1400,1158,1103,548, + 379,1166,1131,1111,1076,1056,1035,1014,640,993, + 617,509,972,951,930,909,888,867,846,825, + 804,783,762,314,741,578,557,415,488,394, 0 }; }; @@ -856,17 +854,18 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 104,12,2,136,135,167,168,157,169,46, 45,170,44,171,172,94,101,101,103,103, 103,103,102,102,106,105,105,108,107,138, - 110,109,116,13,142,124,17,113,104,4, + 110,109,116,13,142,120,17,113,104,4, 151,104,2,182,158,158,185,158,59,104, - 124,4,104,113,179,149,148,118,104,150, + 120,4,104,113,179,149,148,118,104,150, 104,94,13,94,13,165,104,13,152,4, - 104,179,17,113,4,2,127,129,104,29, + 120,179,17,113,4,2,127,129,104,29, 148,183,104,13,104,144,29,189,52,12, - 190,104,13,104,149,113,113,140,104,2, + 190,104,13,120,104,113,113,140,104,2, 142,13,173,141,174,104,177,94,178,60, - 139,52,12,104,149,104,104,104,177,144, - 60,29,139,165,148,186,173,184,59,140, - 2,104,144,144,29,29,59,142,125 + 139,52,12,104,104,149,104,104,104,177, + 144,60,29,139,165,149,148,186,173,184, + 59,140,2,104,144,144,29,29,59,142, + 125 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -987,12 +986,11 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab "shift_expression", "relational_expression", "equality_expression", - "AND_expression", - "exclusive_OR_expression", - "inclusive_OR_expression", - "logical_AND_expression", - "logical_OR_expression", - "conditional_expression", + "and_expression", + "exclusive_or_expression", + "inclusive_or_expression", + "logical_and_expression", + "logical_or_expression", "assignment_expression", "expression_list_actual", "constant_expression", @@ -1062,20 +1060,20 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 209, + NUM_STATES = 211, NT_OFFSET = 93, - LA_STATE_OFFSET = 2108, + LA_STATE_OFFSET = 2102, MAX_LA = 2, - NUM_RULES = 312, - NUM_NONTERMINALS = 123, - NUM_SYMBOLS = 216, + NUM_RULES = 313, + NUM_NONTERMINALS = 124, + NUM_SYMBOLS = 217, SEGMENT_SIZE = 8192, - START_STATE = 1202, + START_STATE = 1235, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 80, EOLT_SYMBOL = 80, - ACCEPT_ACTION = 1786, - ERROR_ACTION = 1796; + ACCEPT_ACTION = 1779, + ERROR_ACTION = 1789; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java index 57e3d633329..7ebe9ef388a 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java @@ -17,20 +17,29 @@ import lpg.lpgjavaruntime.*; import java.util.*; import org.eclipse.cdt.core.dom.ast.*; +import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter; +import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap; import org.eclipse.cdt.core.dom.lrparser.IParser; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.ITokenCollector; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack; +import org.eclipse.cdt.core.parser.IScanner; +import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider; +import org.eclipse.cdt.core.index.IIndex; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; +import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser; import org.eclipse.cdt.core.dom.ast.cpp.*; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPNodeFactory; import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPBuildASTParserAction; import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPSecondaryParserFactory; -public class CPPExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser< IASTExpression > +public class CPPExpressionParser extends PrsStream implements RuleAction, ITokenStream, + ITokenCollector, IParser< IASTExpression > + , ISecondaryParser< IASTExpression > { private static ParseTable prs = new CPPExpressionParserprs(); private FixedBacktrackingParser btParser; @@ -168,7 +177,11 @@ public class CPPExpressionParser extends PrsStream implements RuleAction , IPars private CPPBuildASTParserAction action; private IASTCompletionNode compNode; -public CPPExpressionParser() { // constructor + +public CPPExpressionParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Set options) { + initActions(options); + action.initializeTranslationUnit(scanner, builtinBindingsProvider, index); + CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap); } private void initActions(Set options) { @@ -187,10 +200,9 @@ public void addToken(IToken token) { } -public IASTExpression parse(Set options) { +public IASTExpression parse() { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(options); final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse @@ -233,12 +245,12 @@ public void setTokens(List tokens) { addToken(new Token(null, 0, 0, CPPExpressionParsersym.TK_EOF_TOKEN)); } -public CPPExpressionParser(IParserActionTokenProvider parser) { // constructor +public CPPExpressionParser(ITokenStream parser, Set options) { // constructor for creating secondary parser + initActions(options); tokenMap = new TokenMap(CPPExpressionParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols()); } - public void ruleAction(int ruleNumber) { switch (ruleNumber) @@ -1421,19 +1433,19 @@ public CPPExpressionParser(IParserActionTokenProvider parser) { // constructor } // - // Rule 328: ptr_operator ::= pointer_hook * cv_qualifier_seq_opt + // Rule 328: ptr_operator ::= pointer_hook * pointer_hook cv_qualifier_seq_opt // case 328: { action. consumePointer(); break; } // - // Rule 329: ptr_operator ::= pointer_hook & + // Rule 329: ptr_operator ::= pointer_hook & pointer_hook // case 329: { action. consumeReferenceOperator(); break; } // - // Rule 330: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * cv_qualifier_seq_opt + // Rule 330: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook cv_qualifier_seq_opt // case 330: { action. consumePointerToMember(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java index c18c485cd7a..1830b1f5952 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java @@ -69,7 +69,7 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP 1,3,1,1,1,6,5,7,6,1, 0,6,5,6,4,1,3,1,0,1, 1,2,1,1,3,1,3,1,1,1, - 1,3,9,2,2,3,2,4,2,6, + 1,3,9,2,2,3,2,5,3,7, 0,1,2,2,1,0,1,1,1,3, 1,2,1,1,2,3,1,1,1,3, 2,1,2,2,9,8,2,1,3,1, @@ -92,451 +92,449 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP 4,1,2,5,5,3,3,1,4,3, 1,0,1,3,1,1,-62,0,0,0, -2,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-477,0, - 0,0,0,0,0,-263,0,0,-4,0, - 0,0,0,0,-398,0,0,0,0,-71, + 0,0,0,0,0,0,0,0,-480,0, + 0,0,0,0,0,-264,0,0,-4,0, + 0,0,0,0,-401,0,0,0,0,-71, 0,0,0,-5,0,0,0,0,0,0, - 0,0,-459,0,-88,0,0,0,0,0, + 0,0,-462,0,-88,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,-6,0,0,0, 0,0,0,0,0,0,-58,0,0,0, -20,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-7,0,0,0,0,0,-239,0, - 0,-49,-8,-272,0,0,0,-72,0,0, + 0,0,-7,0,0,0,0,0,-240,0, + 0,-49,-293,-273,0,0,0,-72,0,0, 0,0,0,0,0,0,0,0,0,0, - -417,0,0,0,0,0,0,0,0,-115, + -8,0,0,0,0,0,0,0,0,-115, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,-127,0,0, - 0,0,0,-113,0,-178,0,0,0,-387, + 0,0,0,-113,0,-178,0,0,0,-53, -128,0,0,0,0,-116,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-258,0,-9, - 0,0,0,0,0,0,0,0,-356,0, + 0,0,0,0,0,0,0,0,0,-137, + 0,0,0,0,0,0,0,0,-358,0, 0,-142,0,0,0,-51,0,0,0,0, - 0,0,-533,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-183, - 0,-11,-54,0,0,-131,0,0,0,0, + 0,0,-536,0,0,0,0,0,0,0, + 0,0,0,0,0,-221,0,0,0,-183, + 0,-9,0,0,0,-131,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,-61, - 0,0,0,0,0,0,0,0,-402,0, - 0,-206,0,0,0,0,0,0,-64,0, + 0,0,0,0,0,-11,0,0,0,0, + 0,-225,0,0,0,-120,0,0,-64,0, 0,-220,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-12,0,-13,0,0,0,-179, - 0,0,0,0,-353,-53,0,-225,-15,0, - -224,0,0,0,0,0,0,0,-150,0, - 0,0,-28,0,0,0,0,0,0,0, - 0,-59,0,0,0,0,0,-463,0,0, - 0,-508,0,0,0,-447,0,0,0,0, + 0,0,0,-259,0,0,0,0,0,-179, + 0,0,0,0,-355,-54,0,-226,-10,0, + -233,0,0,0,0,-65,0,0,-150,0, + 0,0,-12,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-138,0, + 0,-511,0,0,0,-13,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-243,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-15, + 0,0,0,0,-535,0,0,0,-129,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-10,0,0,0,-29, - 0,0,0,0,-532,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-206,0, + 0,0,0,-346,0,0,0,-189,0,-332, 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,0,0, - 0,0,-30,-390,0,0,0,0,0,-331, + 0,0,0,0,0,0,0,0,-188,0, + 0,0,0,0,0,0,0,0,-409,0, + 0,0,0,0,-442,0,0,0,-257,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-222,0, + 0,0,0,0,0,0,0,-234,0,0, + 0,0,-349,-3,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-289,0,0,-122,0,0,0,0, + 0,-271,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,0,-28,0, + 0,0,0,0,0,0,0,0,-330,0, + -420,0,0,0,-277,0,0,0,-29,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-30,0,0,0,0,-312,0, + 0,0,-124,-31,-373,0,0,-152,0,0, + 0,-32,0,0,0,0,0,0,0,0, + -241,0,0,0,-320,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-33,0,0,0, + 0,0,0,0,0,0,0,0,-130,0, + 0,0,-274,0,0,0,0,-223,0,-321, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-31,0,0,0,0,0,0,-406,0, - 0,0,0,0,-439,0,0,0,-256,0, + 0,0,0,0,0,0,0,-34,0,0, + 0,0,-39,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-35,0,0,0,0,0, + 0,0,0,0,0,0,-50,0,0,0, + 0,0,-36,0,0,0,-41,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-37,0, + 0,0,0,0,0,0,0,0,-390,0, + -57,0,0,0,0,-38,0,0,0,-94, + 0,0,0,-40,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-55,0,0,0,0,0,0,-56,0, + 0,-416,0,-186,0,0,0,0,-66,-59, + 0,0,-95,0,0,0,-67,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-69,0,0,0,0,0, + 0,0,0,0,-496,0,-190,0,0,0, + -523,0,-70,0,0,-96,0,0,0,-109, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-110,0,0, + 0,0,0,0,0,0,0,-534,0,-298, + 0,0,0,0,-466,0,0,0,-97,0, + 0,0,-111,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -112,0,0,0,0,0,0,0,0,0, + -540,0,-305,0,0,0,0,0,0,0, + 0,-98,0,0,0,-132,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-32,0, - 0,0,0,0,0,0,0,-233,0,0, - 0,0,-347,-3,0,0,0,0,0,0, + 0,0,0,-139,0,-387,0,0,0,0, + 0,-60,0,0,-99,0,0,0,-140,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-141,0,0,0, + 0,0,0,0,0,0,-155,0,-200,0, + 0,0,0,-156,-107,0,0,-100,0,0, + 0,-157,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-158, + 0,-205,0,0,0,0,-159,-108,0,0, + -101,0,0,0,-160,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-288,0,0,-122,0,-33,0,0, - 0,-232,0,0,0,0,-106,0,0,0, + 0,0,-144,0,-231,0,0,0,0,-366, + -114,0,0,-102,0,0,0,-161,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-34,0, - 0,0,0,0,0,-188,0,0,-242,0, - 0,0,0,0,-276,0,0,0,-35,0, + 0,0,0,0,0,-388,0,0,0,0, + 0,0,0,0,0,-154,0,0,0,0, + 0,-450,-403,-162,0,0,-103,0,0,0, + -344,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-163,0, + 0,0,0,0,0,0,0,0,-164,0, + 0,0,0,0,-402,0,0,0,0,-104, + 0,0,0,-334,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-65,0,0,0,0,-311,0, - 0,0,-270,0,0,0,0,-152,0,0, - 0,-36,0,0,0,0,0,0,0,0, - -240,0,0,0,-319,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-37,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-273,0,0,0,0,0,0,-320, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-38,0,0, - 0,0,-39,0,0,0,-40,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-55,0,0,0,0,0, - 0,-221,0,0,-56,0,-50,0,0,0, - 0,0,-66,0,0,-342,-41,0,0,0, - -67,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-69,0, - 0,0,0,0,0,-70,0,0,-120,0, - -57,0,0,0,0,0,0,0,0,-94, - 0,0,0,-109,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-110,0,0,0,0,0,0,0,0, - 0,-413,0,-186,0,0,0,0,-111,-60, - 0,0,-95,0,0,0,-112,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-132,0,0,0,0,0, - 0,0,0,0,-493,0,-190,0,0,0, - -370,0,-139,0,0,-96,0,0,0,-140, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-141,0,0, - 0,0,0,0,0,0,0,-531,0,-200, - 0,0,0,0,0,-155,0,0,-97,0, - 0,0,-156,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -157,0,0,0,0,0,0,0,0,0, - -537,0,-304,0,0,0,0,0,-158,0, - 0,-98,0,0,0,-159,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-160,0,0,0,0,0,0, - 0,0,0,-161,0,-384,0,0,0,0, - 0,-107,0,0,-99,0,0,0,-162,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-163,0,-205,0, - 0,0,0,-164,-108,0,0,-100,0,0, 0,-165,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-129, - 0,-222,0,0,0,0,-166,-114,0,0, - -101,0,0,0,-167,0,0,0,0,0, + 0,-196,0,-397,0,0,0,0,0,-149, + 0,0,-135,0,0,0,-378,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-168,0,-230,0,0,0,0,-344, - -169,0,0,-102,0,0,0,-170,0,0, + 0,0,0,0,-166,0,-333,0,0,0, + -213,0,0,0,-230,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-385,0,0,0,0, - 0,0,0,0,0,-130,0,0,0,0, - 0,-507,-363,-171,0,0,-103,0,0,0, - -172,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-173,0, - 0,0,0,0,0,-360,0,0,-144,0, - 0,0,0,0,-399,0,0,0,0,-104, - 0,0,0,-292,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-167, 0,0,0,0,0,0,0,0,0,0, - 0,-174,0,0,0,0,0,0,0,0, - 0,-175,0,-394,0,0,0,0,0,-137, - 0,0,-135,0,0,0,-375,0,0,0, + -168,0,0,-74,0,0,-169,0,0,0, + -529,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-176,0,-177,0,0,0, - -213,0,0,0,-180,0,0,0,0,0, + 0,0,0,0,-411,0,0,0,-202,0, + -510,0,0,-347,0,0,0,-170,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-181, - 0,0,0,0,0,0,0,0,0,-189, - 0,0,0,-74,-154,0,0,0,0,0, - -526,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-212,0,0,0,0, + 0,0,-171,0,0,0,0,-364,0,0, + 0,-357,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-408,0,0,0,-138,0, - -149,0,0,-345,0,0,0,-196,0,0, + -412,0,0,-172,0,0,0,0,0,-16, + 0,0,0,-280,-316,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,-124,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-355,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-226,0,0,0,0,0,0, - -182,0,0,0,0,-332,0,0,0,-16, - 0,0,0,-229,-315,0,0,0,0,0, - 0,-379,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-185,0,0,0,0,0,0, - -193,0,0,0,0,-400,0,0,0,-380, + 0,0,0,-302,0,-173,0,0,0,-383, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-194,0,0,0,0,0,-147,0,0, - 0,-279,0,0,0,0,0,0,0,-450, + 0,0,0,0,0,0,0,-147,0,0, + 0,-281,-356,0,0,0,0,0,-174,-453, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-381,0,0,0,0,0,0,0,0, - 0,-416,0,-333,0,0,0,-93,0,0, + 0,-300,0,0,0,0,0,0,-423,0, + 0,-419,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,-197, 0,0,0,0,0,0,0,0,0,0, - 0,-335,0,0,0,0,-266,0,0,0, - 0,0,-410,0,0,0,0,-91,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-337,0,0,0,-175,-227,0,0,0, + 0,0,-413,0,0,0,0,-91,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,-153, 0,0,0,0,0,0,0,0,0,-92, - 0,0,0,-208,0,0,0,0,0,0, + 0,0,0,-176,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-177,0, + -394,0,0,0,0,0,0,0,0,0, + 0,0,0,-89,0,0,0,-367,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-146,-180,-148,-313,0,-136,-362,-181,0, + 0,-433,0,0,0,-267,-182,-324,0,0, + 0,0,-185,0,0,-377,0,0,0,-193, + 0,0,0,0,0,0,0,-194,0,-476, + -211,0,0,0,0,0,-90,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-187,0,0,0,0, + -197,0,0,0,0,0,-237,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-446,0,0,0,0,-208,0, + -209,0,0,0,0,0,-218,0,0,0, + -247,0,0,0,0,-283,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-444, + 0,0,-219,-118,0,0,0,0,0,0, + 0,0,-228,0,-195,0,0,0,-236,0, + -238,0,0,-246,-307,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, + -248,0,0,0,-260,-384,-245,-398,-393,-262, + 0,0,0,0,-263,0,-467,0,-143,0, + 0,0,0,0,-275,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-239,-380,0,0,0,0,0, + 0,-360,0,-278,0,0,0,0,0,0, + 0,0,0,-279,0,0,-287,0,0,0, + 0,0,0,0,0,0,-198,-82,0,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,-83,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-290,0,0,0, + 0,0,-199,-294,0,-295,0,0,-303,0, + 0,0,0,0,0,-304,-309,-256,0,0, + 0,0,-317,-318,0,-329,0,0,0,-84, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -391,0,0,0,0,0,0,0,0,0, - 0,0,0,-89,0,0,0,-255,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-218,-409,-377,0,0,-136,0,0,-219, - 0,-509,0,0,0,-202,-118,-420,0,0, - 0,0,0,0,0,-374,0,0,0,0, - -267,0,0,0,0,0,0,-227,0,0, - -211,0,0,0,-314,0,-90,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-280,0, - 0,0,0,0,0,-212,0,0,0,-235, - 0,0,-119,0,0,0,-236,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-143,0, - 0,0,-146,-429,0,0,0,0,0,0, - -151,0,0,0,-198,-282,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-237,0, - 0,0,0,-245,0,0,0,0,-254,-207, - -259,0,0,0,0,0,0,-261,-238,0, - 0,0,0,0,0,0,-312,0,-262,0, - 0,0,0,-277,0,0,0,0,0,0, - 0,0,-121,-246,0,0,0,-354,0,0, - 0,0,-306,0,0,0,0,0,0,0, - 0,0,0,0,0,-260,0,0,0,0, - 0,0,-82,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-278,0,0,0,0,-247, - 0,0,0,-438,0,0,0,0,-289,0, - 0,0,0,0,0,0,0,-274,0,0, - 0,0,-299,0,0,0,-329,-293,0,0, - 0,0,0,0,0,0,0,0,-83,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -520,0,0,0,0,-84,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-77,0,0,0,-294,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-302,0,0,0,0,0, - -440,0,0,0,0,0,0,0,0,0, - 0,0,0,-187,0,0,0,-85,0,0, + 0,0,0,0,0,0,-85,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-234, - 0,0,0,0,-428,-123,0,0,0,0, - -199,-441,-303,0,0,0,0,0,-268,0, - 0,0,0,0,0,-323,0,-430,0,0, - 0,0,0,0,-241,-308,0,-14,-148,-248, - -316,0,0,0,0,-228,0,0,0,0, - 0,0,0,0,0,0,0,0,-448,0, - 0,0,0,-249,0,-269,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-250,0,0,0, - 0,-362,0,0,0,0,0,0,0,-317, + 0,0,0,0,0,0,0,0,-235,0, + 0,0,0,-431,0,0,0,0,-314,0, + 0,0,0,0,-432,0,0,-269,-348,0, + -242,0,-285,-350,-473,0,0,0,0,0, + 0,-119,0,-315,0,-368,-435,0,0,0, + -371,0,0,0,0,-151,0,0,0,0, + 0,0,0,0,0,0,0,0,-451,0, + -249,-441,0,-250,-386,0,-512,0,0,0, + 0,0,0,0,0,0,0,0,-486,0, + 0,-405,0,-251,-121,0,-395,0,0,0, + 0,0,0,0,-396,0,0,0,0,-376, + 0,-268,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-399,0,0,0, + 0,0,-400,0,0,0,0,0,0,0, + 0,0,0,-528,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-252,0,-52, + 0,0,0,-353,0,0,-497,-286,-327,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-328,-346,0,0,0,0,0,-348, - -432,0,0,0,0,0,0,0,0,0, - 0,0,0,-525,0,0,0,0,0,0, - 0,0,0,0,0,0,-452,-195,-52,0, - 0,0,0,0,0,-301,-365,-326,0,0, + 0,0,0,0,0,-455,-488,-406,-408,0, 0,0,0,0,0,0,0,0,0,0, - -18,0,0,0,0,0,0,-364,-466,0, - 0,0,0,0,0,-467,0,0,0,-395, - -473,-251,0,0,0,0,0,0,-464,-523, - -368,0,-43,-44,0,0,0,0,0,0, + 0,-1,0,0,0,0,0,0,0,-526, + -379,-229,0,0,0,0,-414,0,0,0, + 0,0,-421,0,0,0,0,0,0,0, + 0,0,0,0,-428,-429,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-296,0,-452,0,0,-270,0,-454,-456, + 0,0,0,0,0,0,0,-354,0,-457, + -477,0,0,0,0,-458,0,0,0,0, + 0,-459,0,0,-297,-19,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-271,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-286, - 0,0,0,-383,-392,0,0,0,0,0, - -313,0,0,0,-19,0,0,0,0,0, + 0,0,-86,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-123,0,0,0,-87,0, + 0,0,-464,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-86,0,0,0,-393,0,0,0,0, + -460,0,0,0,0,-461,-479,0,0,-425, + 0,-465,-14,0,0,0,0,0,0,-272, + 0,-524,0,0,-192,0,0,0,-125,0, + -481,0,-482,-276,0,-325,0,0,0,0, + 0,-484,-232,0,0,0,0,0,0,0, + 0,0,0,0,0,-483,0,0,0,0, + -478,0,0,0,-527,-363,0,0,0,0, + 0,0,0,0,0,-299,0,0,-489,-323, + 0,0,0,-493,0,0,0,-244,0,-500, + 0,-508,0,0,0,0,-517,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-125,0,0,0,-87,0,0, - 0,-285,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-457, - 0,0,0,0,-284,-422,-275,-358,0,0, - 0,0,-470,0,-396,-1,-298,-397,-318,0, - -461,0,-192,0,0,0,0,0,0,0, - -322,0,0,0,-295,0,-403,0,0,0, - -231,0,0,0,0,0,0,0,0,0, - 0,0,0,-480,0,0,0,0,0,-287, + -485,0,-525,0,0,0,0,0,-530,-391, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-134,-405,0,0, - 0,0,0,0,0,-297,-45,-411,-418,0, - 0,0,0,0,-462,0,0,0,0,0, - 0,0,0,0,0,0,0,-482,0,0, - -296,0,0,0,0,0,0,0,0,0, + -48,-288,0,-541,0,0,0,0,-422,0, + -301,0,0,-306,0,0,0,0,0,0, + 0,0,-282,0,0,0,0,0,0,0, + 0,0,0,0,0,-502,0,-310,-311,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-425,0,-494,0,0,0,-48, - -46,0,0,0,0,0,0,0,-281,0, - 0,0,-426,0,0,0,0,0,0,0, - 0,-499,0,0,-243,0,0,-105,0,0, - -300,0,-324,0,0,0,0,0,0,0, - 0,0,0,0,-524,0,-244,-449,-283,0, - 0,0,0,0,-145,0,0,-451,0,0, - 0,0,0,-453,0,0,0,0,0,0, - 0,0,0,0,0,-513,0,0,0,0, - -454,-325,0,-455,0,0,0,0,-361,0, - 0,0,0,0,0,0,0,0,-521,0, - 0,-305,0,0,0,0,0,-456,-204,-458, - -388,0,0,0,0,0,-340,0,0,0, - 0,0,0,0,0,0,0,0,0,-515, - 0,0,-73,0,-476,0,0,-478,0,0, - -479,0,0,0,0,0,0,0,0,0, - 0,0,-481,0,-369,0,0,-486,0,0, - 0,0,-490,0,-419,0,0,0,0,0, - -497,0,0,0,-334,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-349, - 0,0,0,-465,0,0,0,0,0,0, - 0,0,0,0,-517,0,0,0,0,0, - 0,0,0,0,0,0,0,-359,-47,0, - 0,0,-351,0,-309,0,-505,-514,0,0, - 0,-485,0,0,-310,0,0,-519,0,-321, - -350,0,-522,0,-527,0,0,-538,-184,0, - 0,0,0,0,-443,0,0,0,0,0, + 0,0,0,0,0,-43,0,0,0,0, + -491,-468,-117,-471,0,0,0,0,-322,0, 0,0,0,0,0,0,0,0,0,0, + -145,0,0,0,0,0,0,0,0,0, + -516,0,-105,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-469,0,0,0,0,0,0, + 0,0,-134,0,0,0,0,0,0,0, + 0,0,-342,0,0,0,0,0,0,0, + 0,0,0,0,0,-518,0,0,0,0, + -328,-335,0,-339,0,0,0,0,0,0, + 0,0,0,0,0,-501,0,0,-341,0, + 0,0,0,-343,0,0,0,0,-359,0, + 0,0,0,0,0,0,-392,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-252,-534,0,0,0, - 0,0,0,0,-352,0,0,0,0,0, - 0,0,-474,0,0,0,0,0,0,-376, - -209,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-401,-386,0, + 0,0,-351,0,0,0,-389,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-539,0,-327,0,0,-337,0,0,0, + -520,0,0,0,0,0,0,0,0,0, + 0,0,0,-17,-415,-463,0,0,0,0, + 0,-470,0,0,0,0,0,-522,-447,0, + 0,0,0,-418,-427,0,0,0,0,0, + 0,0,0,0,0,-319,0,-430,0,0, + 0,0,0,0,0,0,0,-284,0,0, + 0,0,0,0,0,0,0,0,0,-407, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-339,0,0,0,0,-528, - 0,0,0,0,-341,0,0,0,0,0, + 0,0,-537,0,-472,-474,0,-475,0,0, + -494,0,0,0,0,0,0,0,0,0, + 0,0,-492,0,0,0,0,0,0,-352, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-357,-389,0,0,0, + 0,0,0,0,0,0,0,-44,0,0, + 0,0,0,0,0,0,0,-542,0,-214, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-78,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-261,0,0,-531,0,0,0,0, + -498,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-79,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-499,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-80,0,0,0,0, + 0,0,-77,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-81, - 0,0,0,-475,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-78,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-336,0,-373,-412,0,-468,0,0,-415, - -445,-372,-291,0,0,0,0,0,0,0, - -444,0,-446,0,0,0,0,-253,0,0, - -424,0,0,0,0,-427,-469,0,0,0, - 0,-471,0,0,0,0,-488,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-472,0, - 0,0,0,0,0,-489,-496,0,0,0, + 0,0,-79,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-378,0, + 0,0,0,0,0,0,-80,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-330,0,0,0,0,0,-437,-491, - 0,0,0,0,0,0,0,0,-436,-404, - 0,0,0,-495,-492,0,0,0,0,0, - 0,0,0,-500,-407,0,0,0,-191,0, + 0,0,0,0,0,0,0,0,-503,0, + -81,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-338,0,-215,-505,0,-507,0,-509, + 0,0,-375,0,0,-513,0,-372,0,0, + 0,-515,-506,-45,0,0,0,0,0,0, + 0,-519,0,0,0,-532,-539,0,-514,0, + -533,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,-504,0,0, - -512,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-21,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-502, - -506,0,0,0,0,-22,0,0,0,0, + 0,0,0,0,0,-538,0,0,0,0, + 0,0,0,0,0,-336,0,0,0,-381, 0,0,0,0,0,0,0,0,0,0, + 0,0,-18,0,0,0,0,0,0,-440, 0,0,0,0,0,0,0,0,0,0, - -510,0,0,0,0,0,-23,0,0,0, + 0,-361,-253,0,0,0,0,0,0,0, + 0,0,0,0,0,-254,0,-331,-365,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-24,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-443,0,0, 0,0,0,0,0,0,0,0,0,0, - -25,0,0,0,0,0,0,0,0,0, + 0,0,-439,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-21,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-26,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-27,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-63,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-75,0, + 0,0,0,0,0,-47,0,0,0,0, + 0,0,0,0,0,0,0,-22,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -76,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-133,0,0,0,0,0,0,0, + 0,0,0,-23,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-203,0,0,0,0,0, + 0,0,0,0,0,-24,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-338,-460,-214,-511, - 0,0,0,-516,0,0,-366,-530,0,0, - 0,-215,0,-529,0,0,-371,0,0,0, - 0,0,-536,0,0,0,0,0,0,-535, + 0,0,0,0,0,0,0,-25,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-26, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-27,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-63,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-75,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-414, - 0,0,0,0,0,0,0,0,-498,-423, - 0,0,0,0,0,-216,0,0,0,0, + 0,0,0,0,0,0,0,-76,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-133, 0,0,0,0,0,0,0,0,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,-307,0,0,0,0,0,0, + 0,0,0,-340,-216,-217,0,0,0,0, + 0,0,0,-369,0,0,0,0,0,0, + 0,0,0,-374,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-343,0,0,0, - 0,0,0,0,0,0,0,0,0,-382, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-126,0, - 0,0,-217,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-404, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-501,0,0,0,0,0, + 0,0,0,0,0,0,-417,0,0,0, + 0,-291,0,0,0,0,-426,0,0,0, + 0,0,0,0,0,0,-42,-46,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-483,0,-290,0,0,-223,0,0,-431, - 0,0,-518,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-264, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-367, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-265,0,0,0,0, - 0,-421,0,0,0,0,0,0,0,0, - 0,0,-433,0,0,0,0,0,0,0, - 0,0,0,-434,0,0,0,-442,0,0, + 0,0,0,-308,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-201,0, + 0,0,-345,0,0,0,0,0,0,0, + 0,0,0,0,0,-385,0,0,0,0, + 0,0,0,0,0,0,0,0,-504,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-292,0, + 0,0,0,0,-521,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,-434,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,-503,0,0,0,0,0,0,0,-17, - -42,0,0,0,0,0,0,0,0,0, - 0,-68,0,0,0,0,0,0,0,0, + 0,0,0,0,-265,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-370, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-435,0, - 0,0,0,0,0,0,0,-210,0,0, - 0,-257,0,0,0,0,0,-484,0,0, + 0,0,0,0,0,0,0,-266,0,-326, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-487,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-410,0,0,0,0,0,-424,0, + 0,0,0,0,-436,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-437,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-68,0,0,0,0,-204, + 0,0,0,0,0,0,0,0,-445,0, + 0,0,-184,0,0,0,0,0,0,0, + 0,0,0,0,-191,0,0,0,-201,0, + 0,0,0,0,0,-210,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-438, + -487,0,0,0,0,0,-448,0,0,0, + 0,0,0,-258,0,0,0,0,0,0, + -490,0,0,0,0,0,-449,0,0,0, + 0,0,0,-495,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -544,7 +542,15 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,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; @@ -575,19 +581,19 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP 66,56,56,179,179,70,70,70,103,103, 180,180,71,71,71,181,181,72,72,72, 72,72,73,73,84,84,84,84,84,84, - 84,84,49,49,49,49,49,116,116,114, - 114,50,182,22,22,22,22,22,48,48, + 84,84,50,50,50,50,50,116,116,114, + 114,51,182,22,22,22,22,22,48,48, 87,87,87,87,87,152,152,147,147,147, 147,147,148,148,148,149,149,149,150,150, 150,151,151,151,88,88,88,88,88,89, 89,89,13,13,13,13,13,13,13,13, 13,13,13,98,120,120,120,120,120,120, 118,118,118,153,119,119,183,155,155,154, - 154,122,122,104,79,79,80,81,52,47, - 156,156,53,51,86,86,157,157,146,146, + 154,122,122,104,79,79,80,81,53,47, + 156,156,54,52,86,86,157,157,146,146, 123,124,124,125,76,76,158,158,63,63, 63,60,60,59,64,64,75,75,58,58, - 58,54,90,90,100,99,99,62,62,61, + 58,49,90,90,100,99,99,62,62,61, 61,55,55,45,101,101,101,93,93,93, 94,94,95,95,95,96,96,105,105,105, 107,107,106,106,202,202,91,91,185,185, @@ -607,498 +613,504 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP 82,82,173,173,132,132,133,133,133,133, 133,133,3,134,134,131,131,112,112,85, 78,74,161,161,113,113,197,197,197,135, - 135,126,126,198,198,174,174,1119,35,1568, - 1550,1278,2539,27,30,31,916,929,26,28, - 1543,25,23,50,943,106,76,77,108,1964, - 1000,1082,1043,1178,1129,1229,236,1209,1307,1982, - 1272,273,1368,1377,143,1243,35,396,158,144, - 1217,35,914,32,71,2551,27,30,31,916, - 929,57,28,588,3897,3121,35,914,32,232, - 3011,27,30,31,916,929,26,28,822,25, - 23,50,943,106,76,77,108,1267,1000,1082, - 1043,1178,1129,1757,235,230,231,588,1439,1525, - 34,3121,35,914,32,274,3011,27,30,31, - 916,929,26,28,822,25,23,50,943,106, + 135,126,126,198,198,174,174,1119,35,1697, + 1679,1278,2639,27,30,31,966,1000,26,28, + 1664,25,23,50,1209,106,76,77,108,1964, + 1229,1264,1254,1307,1272,1395,236,1368,1439,1982, + 1413,273,1456,1464,143,1243,35,396,158,144, + 1217,35,943,32,71,2876,27,30,31,966, + 1000,57,28,588,3371,3121,35,943,32,232, + 3973,27,30,31,966,1000,26,28,866,25, + 23,50,1209,106,76,77,108,1267,1229,1264, + 1254,1307,1272,1965,235,230,231,588,1525,1636, + 34,3121,35,943,32,274,3973,27,30,31, + 966,1000,26,28,866,25,23,50,1209,106, 76,77,85,2023,242,245,248,251,1176,2079, - 35,277,56,2168,1643,2881,690,1449,1860,35, - 914,32,523,2551,27,30,31,916,929,56, - 28,2244,569,3324,2447,2513,2623,2846,3164,4569, - 2316,35,914,32,2989,3011,27,30,31,916, - 929,26,28,822,25,23,50,943,106,76, - 77,108,343,1000,1082,1043,1178,1129,1229,61, - 1209,1307,1623,1272,3100,1368,1377,143,327,35, - 279,517,144,3999,1279,860,588,35,1525,2432, - 1721,929,35,1421,388,518,2316,35,914,32, - 2989,3011,27,30,31,916,929,26,28,822, - 25,23,50,943,106,76,77,108,343,1000, - 1082,1043,1178,1129,1229,49,1209,1307,2049,1272, - 2493,1368,1377,143,1413,2181,287,517,144,588, - 2881,860,327,35,279,920,1599,4789,3213,736, - 1034,518,513,2344,35,914,32,60,4888,27, - 30,31,916,929,26,28,404,511,2145,2940, - 1773,1975,1016,1614,2000,3579,2316,35,914,32, - 2989,3011,27,30,31,916,929,26,28,822, - 25,23,50,943,106,76,77,108,343,1000, - 1082,1043,1178,1129,1229,497,1209,1307,513,1272, - 2147,1368,1377,143,3267,312,356,517,144,838, - 920,860,1868,2845,2174,531,3355,2131,333,1017, - 2000,518,2524,35,914,32,2989,3011,27,30, - 31,916,929,26,28,822,25,23,50,943, - 106,76,77,108,343,1000,1082,1043,1178,1129, - 1229,288,1209,1307,2681,1272,2682,1368,1377,143, - 588,35,2440,517,144,2122,1010,860,142,2683, - 3669,588,35,2461,2317,352,182,518,513,1715, - 35,914,32,2245,4888,27,30,31,916,929, - 59,28,1614,344,2059,1930,349,2222,588,3493, - 2000,342,2659,35,914,32,1088,3011,27,30, - 31,916,929,26,28,822,25,23,50,943, - 106,76,77,108,4293,1000,1082,1043,1178,1129, - 1229,443,1209,1307,514,1272,69,1368,1377,143, - 413,3549,3919,379,144,2385,35,914,32,498, - 3011,27,30,31,916,929,26,28,822,25, - 23,50,943,106,76,77,108,1666,1000,1082, - 1043,1178,1129,1229,1607,1209,1307,2859,1272,3579, - 1368,1377,143,1445,2154,3919,379,144,4440,93, - 3121,35,914,32,3385,3011,27,30,31,916, - 929,26,28,822,25,23,50,943,106,76, - 77,108,1621,1000,1082,1043,1178,1129,1229,522, - 1209,1307,64,1272,3860,1368,2300,164,2174,2122, - 385,3031,332,429,3669,2591,35,914,32,322, - 3011,27,30,31,916,929,26,28,822,25, - 23,50,943,106,76,77,108,3104,1000,1082, - 1043,1178,1129,1229,820,1209,1307,559,1272,2284, - 1368,1377,143,386,3031,3919,379,144,588,35, - 1525,276,2932,2750,2887,35,914,32,3429,3011, - 27,30,31,916,929,26,28,822,25,23, - 50,943,106,76,77,108,389,1000,1082,1043, - 1178,1129,1229,2580,1209,1307,1229,1272,587,1368, - 1377,143,1947,35,277,158,144,3121,35,914, - 32,1666,3011,27,30,31,916,929,26,28, - 822,25,23,50,943,106,76,77,108,494, - 1000,1082,1043,1178,1129,1229,69,1209,1307,1988, - 1272,2886,1869,377,3031,2887,35,914,32,1355, - 3011,27,30,31,916,929,26,28,822,25, - 23,50,943,106,76,77,108,2698,1000,1082, - 1043,1178,1129,1229,2121,1209,1307,430,1272,2433, - 1368,1377,143,2449,35,280,373,144,1715,35, - 914,32,400,4888,27,30,31,916,929,58, - 28,1543,35,1525,276,2887,35,914,32,569, - 3011,27,30,31,916,929,26,28,822,25, - 23,50,943,106,76,77,108,1226,1000,1082, - 1043,1178,1129,1229,88,1209,1307,102,1272,2228, - 1368,1377,143,588,35,282,373,144,3111,1216, - 2887,35,914,32,421,3011,27,30,31,916, - 929,26,28,822,25,23,50,943,106,76, - 77,108,372,1000,1082,1043,1178,1129,1229,1173, - 1209,1307,2689,1272,2814,1368,1377,143,1146,390, - 427,373,144,2457,35,914,32,1617,3011,27, - 30,31,916,929,26,28,822,25,23,50, - 943,106,76,77,108,1625,1000,1082,1043,1178, - 1129,1229,135,1209,1307,1627,1272,56,1368,1377, - 143,746,371,1174,142,144,2728,2887,35,914, - 32,2690,3011,27,30,31,916,929,26,28, - 822,25,23,50,943,106,76,77,108,1323, - 1000,1082,1043,1178,1129,1229,1441,1209,1307,1330, - 1272,56,1368,1377,143,826,2589,369,159,144, - 2887,35,914,32,160,3011,27,30,31,916, - 929,26,28,822,25,23,50,943,106,76, - 77,108,676,1000,1082,1043,1178,1129,1229,1494, - 1209,1307,1721,1272,56,1368,1377,143,4637,848, - 1614,155,144,2887,35,914,32,1167,3011,27, - 30,31,916,929,26,28,822,25,23,50, - 943,106,76,77,108,2691,1000,1082,1043,1178, - 1129,1229,24,1209,1307,1721,1272,69,1368,1377, - 143,2050,3231,1503,154,144,2887,35,914,32, - 3321,3011,27,30,31,916,929,26,28,822, - 25,23,50,943,106,76,77,108,1453,1000, - 1082,1043,1178,1129,1229,3650,1209,1307,159,1272, - 56,1368,1377,143,2599,447,408,153,144,2887, - 35,914,32,580,3011,27,30,31,916,929, - 26,28,822,25,23,50,943,106,76,77, - 108,1015,1000,1082,1043,1178,1129,1229,355,1209, - 1307,159,1272,69,1368,1377,143,531,3447,1700, - 152,144,2887,35,914,32,1787,3011,27,30, - 31,916,929,26,28,822,25,23,50,943, - 106,76,77,108,1223,1000,1082,1043,1178,1129, - 1229,323,1209,1307,1385,1272,2627,1368,1377,143, - 531,3995,1614,151,144,2887,35,914,32,1559, - 3011,27,30,31,916,929,26,28,822,25, - 23,50,943,106,76,77,108,1623,1000,1082, - 1043,1178,1129,1229,69,1209,1307,1875,1272,56, - 1368,1377,143,1219,1965,1614,150,144,2887,35, - 914,32,2022,3011,27,30,31,916,929,26, - 28,822,25,23,50,943,106,76,77,108, - 381,1000,1082,1043,1178,1129,1229,68,1209,1307, - 1010,1272,56,1368,1377,143,2408,1709,1614,149, - 144,2887,35,914,32,2491,3011,27,30,31, - 916,929,26,28,822,25,23,50,943,106, - 76,77,108,380,1000,1082,1043,1178,1129,1229, - 53,1209,1307,2558,1272,56,1368,1377,143,664, - 1604,1701,148,144,2887,35,914,32,1703,3011, - 27,30,31,916,929,26,28,822,25,23, - 50,943,106,76,77,108,314,1000,1082,1043, - 1178,1129,1229,460,1209,1307,1010,1272,402,1368, - 1377,143,1088,2552,486,147,144,2887,35,914, - 32,1374,3011,27,30,31,916,929,26,28, - 822,25,23,50,943,106,76,77,108,1515, - 1000,1082,1043,1178,1129,1229,2580,1209,1307,1010, - 1272,406,1368,1377,143,1243,35,396,146,144, - 2887,35,914,32,666,3011,27,30,31,916, - 929,26,28,822,25,23,50,943,106,76, - 77,108,1883,1000,1082,1043,1178,1129,1229,459, - 1209,1307,2125,1272,69,1368,1377,143,438,4742, - 1873,145,144,2832,35,914,32,2728,3011,27, - 30,31,916,929,26,28,822,25,23,50, - 943,106,76,77,108,522,1000,1082,1043,1178, - 1129,1229,4315,1209,1307,2276,1272,2413,1368,2300, - 164,2887,35,914,32,2306,3011,27,30,31, - 916,929,26,28,822,25,23,50,943,106, - 76,77,108,3343,1000,1082,1043,1178,1129,1229, - 2139,1209,1307,2741,1272,353,1368,1377,143,70, - 2129,2144,140,144,56,1010,327,89,1144,2433, - 102,3005,35,914,32,2068,3011,27,30,31, - 916,929,26,28,822,25,23,50,943,106, - 76,77,108,156,1000,1082,1043,1178,1129,1229, - 1795,1209,1307,2015,1272,69,1368,1377,143,1699, - 4753,1614,189,144,3121,35,914,32,1010,3011, - 27,30,31,916,929,26,28,822,25,23, - 50,943,106,76,77,108,241,1000,1082,1043, - 1178,1129,1229,87,1209,1307,3668,1272,51,1368, - 2300,164,3121,35,914,32,447,3011,27,30, - 31,916,929,26,28,822,25,23,50,943, - 106,76,77,108,2551,1000,1082,1043,1178,1129, - 1229,2347,1209,1307,354,1272,1010,1368,2300,164, - 1500,35,914,32,1330,322,41,30,31,916, - 929,326,3121,35,914,32,423,3011,27,30, - 31,916,929,26,28,822,25,23,50,943, - 106,76,77,108,1096,1000,1082,1043,1178,1129, - 1229,2149,1209,1307,3086,1272,2552,1368,2300,164, - 3121,35,914,32,292,3011,27,30,31,916, - 929,26,28,822,25,23,50,943,106,76, - 77,108,284,1000,1082,1043,1178,1129,1229,97, - 1209,1307,2453,1272,299,1368,2300,164,2407,35, - 914,32,2556,2906,40,30,31,916,929,1537, - 3176,35,914,32,422,3011,27,30,31,916, - 929,26,28,822,25,23,50,943,106,76, - 77,108,2371,1000,1082,1043,1178,1129,1229,2010, - 1209,1307,2552,1272,666,1368,2300,164,3121,35, - 914,32,425,3011,27,30,31,916,929,26, - 28,822,25,23,50,943,106,76,77,108, - 49,1000,1082,1043,1178,1129,1229,324,1209,1307, - 221,1844,2407,35,914,32,2589,142,1843,30, - 31,916,929,588,35,1421,388,2228,3121,35, - 914,32,3483,3011,27,30,31,916,929,26, - 28,822,25,23,50,943,106,76,77,108, - 1614,1000,1082,1043,1178,1129,1229,431,1209,1801, - 3121,35,914,32,1817,3011,27,30,31,916, - 929,26,28,822,25,23,50,943,106,76, - 77,108,52,1000,1082,1043,1178,1129,1229,71, - 1808,1518,35,914,32,3571,3520,27,30,31, - 916,929,339,28,3121,35,914,32,737,3011, - 27,30,31,916,929,26,28,822,25,23, - 50,943,106,76,77,108,3555,1000,1082,1043, - 1178,1765,2418,69,327,35,453,2417,4764,3980, - 2515,2851,1243,35,396,2174,1818,3347,69,332, - 319,2499,321,4768,314,2232,2407,35,914,32, - 239,2699,2186,30,31,916,929,313,2218,351, - 3207,757,35,1421,388,1643,2881,3121,35,914, - 32,4537,3011,27,30,31,916,929,26,28, - 822,25,23,50,943,106,76,77,108,2380, - 1000,1082,1043,1178,1793,273,1334,328,335,232, - 1250,2228,352,1225,306,310,681,1400,35,914, - 32,3379,3339,27,30,31,916,929,339,28, - 344,2059,1930,349,240,230,231,2272,2555,2212, - 35,1421,388,56,843,35,453,1144,3279,3980, - 3573,932,35,1421,388,1614,1888,35,914,32, - 3412,3339,27,30,31,916,929,339,28,2584, - 3565,2228,2590,49,325,232,319,2499,321,2305, - 314,2232,1413,2446,2553,49,72,350,351,1790, - 1614,2271,352,2675,1413,2506,3213,287,2693,2234, - 244,230,231,2989,446,3227,3268,2433,2471,2465, - 344,2059,1930,349,1714,319,2499,321,2614,314, - 2232,2517,90,1240,588,2708,1525,74,322,2628, - 2940,352,3363,1898,35,2960,32,3571,3520,27, - 30,31,916,929,339,28,2129,35,293,344, - 2059,1930,349,3121,35,914,32,2555,3011,27, - 30,31,916,929,26,28,822,25,23,50, - 943,106,76,77,108,1906,1000,1082,1043,1654, - 1543,35,1525,2777,56,232,3361,2174,1144,2587, - 360,332,319,2499,321,285,314,2232,588,35, - 1525,278,366,2121,3172,2510,2579,1988,2707,1143, - 247,230,231,3892,450,3227,3268,391,427,3121, - 35,914,32,4537,3011,27,30,31,916,929, - 26,28,822,25,23,50,943,106,76,77, - 108,2615,1000,1082,1043,1664,3121,35,914,32, - 2996,3011,27,30,31,916,929,26,28,822, - 25,23,50,943,106,76,77,108,2312,1000, - 1082,1043,1679,3121,35,914,32,2614,3011,27, - 30,31,916,929,26,28,822,25,23,50, - 943,106,76,77,108,2621,1000,1586,417,419, - 2954,1691,35,914,32,3571,3339,27,30,31, - 916,929,339,28,1243,35,2468,2124,3121,35, - 914,32,1800,3011,27,30,31,916,929,26, - 28,822,25,23,50,943,106,76,77,108, - 1614,1000,1082,1043,1707,259,1606,1876,49,537, - 2689,1375,2552,2716,523,2989,3579,1413,931,56, - 319,2499,321,1259,314,2232,2484,228,588,35, - 1421,388,3197,2517,156,1614,2620,313,2715,1351, - 1614,2654,2989,180,2987,869,932,35,1421,388, - 303,203,215,4720,202,212,213,214,216,1, - 343,169,452,537,1614,2174,56,3250,232,332, - 2607,168,67,183,167,170,171,172,173,174, - 49,228,928,796,307,310,681,1614,156,1413, - 47,2228,1010,250,230,231,66,180,2987,869, - 2727,2988,360,1263,3651,203,215,4720,202,212, - 213,214,216,2622,2729,169,2840,2510,2579,65, - 2492,588,35,1421,388,168,181,184,167,170, - 171,172,173,174,2070,35,914,32,3379,3339, - 27,30,31,916,929,339,28,2552,1983,3231, - 35,1421,388,3579,741,434,1330,2272,1363,35, - 914,32,237,3520,27,30,31,916,929,339, - 28,1976,35,1421,388,98,42,2364,322,588, - 35,1421,388,273,2899,179,588,35,1421,388, - 322,1330,1614,319,2499,321,3687,314,2232,1330, - 1330,2731,2174,56,56,49,333,2989,2989,352, - 526,232,2174,433,1413,1254,333,319,2499,321, - 432,315,2232,352,64,343,343,344,2059,1930, - 349,3984,442,352,456,527,235,230,231,869, - 869,346,2059,1930,349,297,56,274,860,860, - 2475,346,2059,1930,349,3970,525,296,1464,1482, - 588,35,1525,2953,2735,2448,242,245,248,251, - 1176,588,35,1525,281,3066,35,914,32,1449, - 3011,27,30,31,916,929,26,28,822,25, - 23,50,943,86,76,77,2447,2513,2623,2846, - 3164,4569,3121,35,914,32,2786,3011,27,30, - 31,916,929,26,28,822,25,23,50,943, - 106,76,77,108,1780,1000,1082,1714,3121,35, - 914,32,1614,3011,27,30,31,916,929,26, - 28,822,25,23,50,943,106,76,77,108, - 345,1000,1082,1722,537,2624,2646,56,2234,2989, - 2989,3209,2989,322,3684,2068,2249,737,2732,737, - 1144,2552,228,588,35,1421,388,2517,2517,156, - 2517,588,35,1421,388,1614,232,2747,180,2987, - 869,929,35,1421,388,156,203,215,4720,202, - 212,213,214,216,431,535,169,273,537,198, - 56,253,230,231,2707,273,168,55,3488,167, - 170,171,172,173,174,49,228,1607,2739,3207, - 304,3207,3579,156,1413,47,56,56,2755,2751, - 3505,2989,180,2987,869,2552,361,505,1323,360, - 203,215,4720,202,212,213,214,216,517,343, - 169,1614,537,3441,2510,2579,334,335,3736,335, - 168,275,178,167,170,171,172,173,174,340, - 228,2174,860,197,2790,332,322,156,503,504, - 1354,56,1499,54,1144,2989,180,2987,869,929, - 35,1421,388,2791,203,215,4720,202,212,213, - 214,216,603,343,169,1607,537,2988,56,160, - 3579,56,1144,1614,168,3852,176,167,170,171, - 172,173,174,49,228,1330,860,2440,2782,1607, - 541,156,1413,2866,3579,1785,1507,156,2789,2989, - 180,2987,869,382,87,322,3221,1851,203,215, - 4720,202,212,213,214,216,689,343,169,2174, - 537,2757,1375,3863,2761,869,2989,3579,168,1614, - 177,167,170,171,172,173,174,1758,228,1778, - 872,524,1390,2174,2517,156,1416,332,2763,56, - 2765,1614,3651,2989,180,2987,869,932,35,1421, - 388,101,203,215,4720,202,212,213,214,216, - 775,343,169,1354,537,2444,2174,1144,2769,2998, - 332,173,168,3855,187,167,170,171,172,173, - 174,49,228,2792,860,2129,3146,293,2788,156, - 1413,47,160,2793,2875,1614,1578,94,180,2987, - 869,1761,2998,360,2456,737,203,215,4720,202, - 212,213,214,216,44,2364,169,2840,2510,2579, - 929,35,1421,388,1614,3361,168,2852,3575,167, - 170,171,172,173,174,1952,35,914,32,3571, - 3339,27,30,31,916,929,339,28,737,588, - 35,1421,388,2433,49,56,451,2773,2798,3553, - 2350,1709,2717,1413,2262,56,537,3207,861,3635, - 56,1607,537,2799,3198,2110,3579,3221,1337,588, - 35,1421,388,49,4028,588,35,293,5444,2996, - 228,156,1413,734,319,2499,321,156,314,2232, - 180,2987,5444,5444,330,335,180,2987,869,5444, - 3207,313,5444,49,203,215,4720,202,212,213, - 214,216,1413,1402,169,2174,1354,947,195,332, - 1144,537,5444,5444,168,2433,192,167,170,171, - 172,173,174,588,35,293,5444,3737,335,228, - 1330,588,35,1421,388,160,156,5444,306,310, - 681,4550,5444,393,427,180,2987,869,1330,929, - 35,1421,388,203,215,4720,202,212,213,214, - 216,4354,1033,169,56,49,537,56,3548,3834, - 869,3862,3279,168,46,186,167,170,171,172, - 173,174,5444,49,228,56,376,5444,869,3854, - 2481,156,1413,47,1144,56,5444,5444,5444,1937, - 180,2987,869,3225,376,5444,2323,5444,203,215, - 4720,202,212,213,214,216,56,56,169,156, - 740,1492,5444,4822,196,392,427,3927,168,162, - 194,167,170,171,172,173,174,3121,35,914, - 32,5444,3011,27,30,31,916,929,26,28, - 822,25,23,50,943,106,76,77,108,5444, - 1000,1593,3121,35,914,32,5444,3011,27,30, - 31,916,929,26,28,822,25,23,50,943, - 106,76,77,108,5444,1611,3121,35,914,32, - 374,3011,27,30,31,916,929,26,28,822, - 25,23,50,943,106,76,77,108,3886,1629, - 3121,35,914,32,2552,3011,27,30,31,916, - 929,26,28,822,25,23,50,943,106,76, - 77,108,1562,1636,2646,56,2989,2446,2989,3979, - 56,56,1823,2034,3969,2989,2989,5444,3579,5444, - 5444,2647,302,56,228,2989,2517,2989,1354,5444, - 5444,56,1144,343,228,3871,56,56,4370,529, - 966,1535,1614,2517,5444,343,5444,2552,205,215, - 4720,204,212,213,214,216,860,160,205,215, - 4720,204,212,213,214,216,509,2174,860,56, - 5444,3863,5444,3326,378,5444,2552,2552,507,206, - 208,210,294,295,2609,201,217,207,209,206, - 208,210,294,295,2609,505,217,207,209,2062, - 35,2960,32,3571,3339,27,30,31,916,929, - 339,28,505,1354,199,298,3018,1144,4357,1910, - 56,5444,5444,2989,1842,3301,3030,5444,4357,737, - 929,35,1421,388,56,56,502,504,962,2989, - 5444,228,160,5444,1614,929,35,1421,388,588, - 35,1421,388,502,504,96,5444,343,319,2499, - 321,5444,314,2232,49,205,215,4720,204,212, - 213,214,216,1413,47,1143,3406,3205,56,49, - 860,2447,3535,49,5444,2974,5444,2868,1413,47, - 534,3207,1413,1182,3465,5444,206,208,210,294, - 295,2609,2961,217,207,209,3121,1439,914,1446, - 3419,3011,27,30,31,916,929,26,28,822, - 25,23,50,943,106,76,77,84,3887,335, - 1614,1614,5444,3203,5444,4357,3121,35,914,32, - 5444,3011,27,30,31,916,929,26,28,822, - 25,23,50,943,106,76,77,83,5444,5444, - 5444,1614,3460,3568,418,419,2954,3121,35,914, - 32,5444,3011,27,30,31,916,929,26,28, - 822,25,23,50,943,106,76,77,82,3121, - 35,914,32,3040,3011,27,30,31,916,929, - 26,28,822,25,23,50,943,106,76,77, - 81,3121,35,914,32,5444,3011,27,30,31, - 916,929,26,28,822,25,23,50,943,106, - 76,77,80,3121,35,914,32,5444,3011,27, - 30,31,916,929,26,28,822,25,23,50, - 943,106,76,77,79,3121,35,914,32,5444, - 3011,27,30,31,916,929,26,28,822,25, - 23,50,943,106,76,77,78,2950,35,914, - 32,5444,3011,27,30,31,916,929,26,28, - 822,25,23,50,943,106,76,77,104,3121, - 35,914,32,5444,3011,27,30,31,916,929, - 26,28,822,25,23,50,943,106,76,77, - 110,3121,35,914,32,5444,3011,27,30,31, - 916,929,26,28,822,25,23,50,943,106, - 76,77,109,3121,35,914,32,5444,3011,27, - 30,31,916,929,26,28,822,25,23,50, - 943,106,76,77,107,3121,35,914,32,5444, - 3011,27,30,31,916,929,26,28,822,25, - 23,50,943,106,76,77,105,1997,2717,56, - 1614,2989,1144,1144,2552,5444,5444,1649,1614,5444, - 5444,2989,56,5444,2552,5444,1144,1736,5444,228, - 5444,2989,5444,2552,5444,5444,5444,156,156,228, - 1614,5444,3375,5444,5444,5444,200,3926,2880,228, - 4363,156,3710,205,215,4720,204,212,213,214, - 216,2904,222,205,215,4720,204,212,213,214, - 216,193,3682,205,215,4720,204,212,213,214, - 216,5444,5444,5444,206,208,210,294,295,2609, - 5444,520,207,209,206,208,210,294,295,2609, - 5444,519,207,209,206,208,210,294,295,2609, - 2084,218,207,209,2989,5444,5444,5444,5444,2775, - 2171,5444,5444,2989,2989,5444,56,5444,5444,5444, - 1144,5444,228,5444,5444,5444,5444,5444,5444,5444, - 5444,343,228,5444,5444,5444,5444,5444,5444,5444, - 5444,5444,5444,5444,5444,156,205,215,4720,204, - 212,213,214,216,4031,2927,205,215,4720,204, - 212,213,214,216,1691,35,914,32,3571,3339, - 27,30,31,916,929,339,28,206,208,210, - 294,295,2609,5444,305,207,209,206,208,210, - 294,295,2609,5444,499,207,209,2156,35,914, - 32,5444,3520,27,30,31,916,929,339,28, - 2156,35,914,32,5444,3520,27,30,31,916, - 929,339,28,319,2499,321,5444,314,2232,3280, - 35,1421,388,56,741,5444,5444,1144,5444,5444, - 3363,5444,238,5444,5444,5444,5444,5444,5444,5444, - 5444,2174,5444,5444,5444,333,319,2499,321,5444, - 317,2232,156,273,2174,5444,5444,5444,333,319, - 2499,321,3032,315,2232,1691,35,914,32,3571, - 3339,27,30,31,916,929,339,28,5444,5444, - 5444,232,56,5444,56,5444,537,1180,1144,5444, - 1354,2989,4892,56,1144,5444,4340,1144,5444,5444, - 5444,5444,5444,5444,343,5444,236,230,231,228, - 5444,156,5444,156,5444,5444,5444,274,5444,160, - 5444,188,156,2136,319,2499,321,4615,314,2232, - 5444,5444,4348,778,407,4700,243,246,249,252, - 1176,3558,5444,5444,5444,5444,5444,5444,5444,1449, - 1490,35,914,32,2633,3339,27,30,31,916, - 929,339,28,5444,408,409,410,294,295,2609, - 2236,35,914,32,2391,3339,27,30,31,916, - 929,339,28,5444,5444,3994,1285,3524,403,2591, - 2989,4892,2151,35,1421,388,5444,5444,5444,5444, - 5444,5444,5444,929,35,1421,388,5444,228,316, - 2876,321,5444,5444,929,35,1421,388,2164,35, - 1421,388,5444,5444,5444,5444,49,5444,5444,316, - 2876,321,778,407,4700,1413,47,49,5444,588, - 35,1421,388,5444,5444,5444,1413,47,49,3585, - 411,413,49,5444,5444,5444,5444,1413,47,5444, - 3019,1413,47,408,409,410,294,295,2609,5444, - 5444,3026,2722,49,1099,3643,537,4736,5444,5444, - 56,56,1413,659,537,537,5444,5444,2591,5444, - 5444,5444,56,5444,343,5444,537,5444,5444,5444, - 5444,156,343,343,5444,5444,5444,5444,3432,156, - 156,188,5444,5444,343,5444,5444,4615,5444,1500, - 1715,156,5444,5444,5444,860,860,5444,3432,2208, - 5444,1500,5444,2989,5444,952,1672,860,588,35, - 1421,388,588,35,1421,388,5444,2061,56,411, - 414,343,537,5444,5444,5444,5444,5444,5444,5444, - 5444,530,5444,5444,5444,5444,5444,56,5444,5444, - 343,537,49,5444,860,190,49,156,5444,5444, - 5444,1413,1254,5444,533,1413,2703,188,5444,343, - 5444,5444,5444,4615,5444,5444,156,5444,5444,5444, - 5444,5444,5444,5444,5444,5444,188,5444,5444,5444, - 5444,5444,4615,5444,5444,5444,5444,5444,5444,5444, - 5444,5444,5444,5444,5444,5444,5444,5444,5444,5444, - 5444,5444,5444,5444,5444,5444,5444,5444,5444,5444, - 5444,5444,5444,5444,5444,5444,5444,5444,5444,5444, - 5444,4080,4344,5444,5444,5444,5444,5444,5444,5444, - 5444,5444,5444,5444,5444,5444,5444,5444,5444,5444, - 4081,5444,5444,5444,5444,5444,5444,5444,5444,5444, - 5444,5444,5444,5444,5444,5444,5444,5444,5444,5444, - 5444,5444,5444,5444,5444,5444,5444,5444,5444,5444, - 5444,5444,5444,5444,5444,5444,5444,5444,5444,5444, - 5444,5444,5444,5444,5444,5444,5444,5444,5444,5444, - 5444,5444,5444,5444,5444,5444,5444,3857,5444,0, - 39,5459,0,39,5458,0,662,29,0,440, - 1407,0,454,1451,0,38,627,0,38,5459, - 0,38,5458,0,2746,126,0,1,444,0, - 458,1750,0,457,1836,0,2543,91,0,662, - 387,0,35,33,0,32,34,0,39,627, - 0,1,996,0,1,5716,0,1,5715,0, - 1,5714,0,1,5713,0,1,5712,0,1, - 5711,0,1,5710,0,1,5709,0,1,5708, - 0,1,5707,0,1,5706,0,39,1,5459, - 0,39,1,5458,0,2140,1,0,283,394, - 0,283,286,0,5678,241,0,5677,241,0, - 5782,241,0,5781,241,0,5705,241,0,5704, - 241,0,5703,241,0,5702,241,0,5701,241, - 0,5700,241,0,5699,241,0,5698,241,0, - 5716,241,0,5715,241,0,5714,241,0,5713, - 241,0,5712,241,0,5711,241,0,5710,241, - 0,5709,241,0,5708,241,0,5707,241,0, - 5706,241,0,39,5459,241,0,39,5458,241, - 0,5482,241,0,5459,48,0,5458,48,0, - 5450,1,0,5449,1,0,3330,237,0,32, - 388,0,29,387,0,43,5480,0,43,37, - 0,2746,128,0,2746,127,0,331,445,0, - 5482,1,0,39,1,0,47,37,0,1, - 92,0,501,2598,0,5482,1,229,0,39, - 1,229,0,229,416,0,5459,37,0,5458, - 37,0,5459,2,37,0,5458,2,37,0, - 5459,36,0,5458,36,0,5480,45,0,37, - 45,0,5454,405,0,5453,405,0,1,4504, - 0,1,2878,0,1,627,0,229,415,0, - 3570,318,0,331,95,0,35,73,0,1, - 331,0,3626,278,0,501,4347,0,1,229, - 0,229,220,0,229,219,0,1,575,0, - 1,1885,0,5456,1,0,5452,1,0,1, - 229,3388,0,5453,229,0,3394,229,0,5456, - 383,0,5455,383,0,3471,229,0,10,12, - 0,8,10,12,0,185,3627,0,3578,383, - 0,8,12,0 + 35,277,56,666,1643,2773,690,876,1860,35, + 943,32,523,2876,27,30,31,966,1000,56, + 28,2168,569,3055,2574,2862,2915,3155,3209,4668, + 2316,35,943,32,2980,3973,27,30,31,966, + 1000,26,28,866,25,23,50,1209,106,76, + 77,108,343,1229,1264,1254,1307,1272,1395,61, + 1368,1439,1623,1413,2687,1456,1464,143,327,35, + 279,517,144,4905,1279,860,588,35,1636,2547, + 1010,929,35,1507,388,518,2316,35,943,32, + 2980,3973,27,30,31,966,1000,26,28,866, + 25,23,50,1209,106,76,77,108,343,1229, + 1264,1254,1307,1272,1395,49,1368,1439,70,1413, + 1873,1456,1464,143,1499,2460,287,517,144,588, + 2773,860,327,35,279,920,1599,4909,3205,736, + 3373,518,513,2344,35,943,32,60,4916,27, + 30,31,966,1000,26,28,135,511,2145,2774, + 1773,2433,2493,498,2439,4893,2316,35,943,32, + 2980,3973,27,30,31,966,1000,26,28,866, + 25,23,50,1209,106,76,77,108,343,1229, + 1264,1254,1307,1272,1395,353,1368,1439,513,1413, + 2147,1456,1464,143,3433,2609,1016,517,144,2453, + 920,860,588,35,2932,2446,1330,2447,333,1017, + 2439,518,2524,35,943,32,2980,3973,27,30, + 31,966,1000,26,28,866,25,23,50,1209, + 106,76,77,108,343,1229,1264,1254,1307,1272, + 1395,288,1368,1439,2049,1413,1494,1456,1464,143, + 588,35,2573,517,144,2122,1614,860,142,69, + 3517,1947,35,277,4116,352,2121,518,513,1715, + 35,943,32,2681,4916,27,30,31,966,1000, + 59,28,404,344,959,780,349,2468,497,1699, + 2439,342,2659,35,943,32,2682,3973,27,30, + 31,966,1000,26,28,866,25,23,50,1209, + 106,76,77,108,1988,1229,1264,1254,1307,1272, + 1395,443,1368,1439,514,1413,2645,1456,1464,143, + 2683,2228,3618,379,144,2385,35,943,32,1010, + 3973,27,30,31,966,1000,26,28,866,25, + 23,50,1209,106,76,77,108,1666,1229,1264, + 1254,1307,1272,1395,354,1368,1439,2848,1413,1868, + 1456,1464,143,3268,1604,3618,379,144,2129,1975, + 3121,35,943,32,3391,3973,27,30,31,966, + 1000,26,28,866,25,23,50,1209,106,76, + 77,108,1621,1229,1264,1254,1307,1272,1395,69, + 1368,1439,402,1413,3032,1456,2511,164,1795,2122, + 385,2470,460,429,3517,2591,35,943,32,322, + 3973,27,30,31,966,1000,26,28,866,25, + 23,50,1209,106,76,77,108,2895,1229,1264, + 1254,1307,1272,1395,1173,1368,1439,2747,1413,135, + 1456,1464,143,386,2470,3618,379,144,588,35, + 1636,276,2098,2750,2887,35,943,32,3202,3973, + 27,30,31,966,1000,26,28,866,25,23, + 50,1209,106,76,77,108,389,1229,1264,1254, + 1307,1272,1395,2580,1368,1439,1229,1413,329,1456, + 1464,143,2449,35,280,158,144,3121,35,943, + 32,1666,3973,27,30,31,966,1000,26,28, + 866,25,23,50,1209,106,76,77,108,2245, + 1229,1264,1254,1307,1272,1395,93,1368,1439,1988, + 1413,2244,2186,377,2470,2887,35,943,32,413, + 3973,27,30,31,966,1000,26,28,866,25, + 23,50,1209,106,76,77,108,2839,1229,1264, + 1254,1307,1272,1395,1445,1368,1439,430,1413,2433, + 1456,1464,143,241,64,2050,373,144,1715,35, + 943,32,2284,4916,27,30,31,966,1000,58, + 28,1543,35,1636,276,2887,35,943,32,569, + 3973,27,30,31,966,1000,26,28,866,25, + 23,50,1209,106,76,77,108,587,1229,1264, + 1254,1307,1272,1395,88,1368,1439,102,1413,1010, + 1456,1464,143,588,35,282,373,144,135,1079, + 2887,35,943,32,421,3973,27,30,31,966, + 1000,26,28,866,25,23,50,1209,106,76, + 77,108,372,1229,1264,1254,1307,1272,1395,2438, + 1368,1439,2747,1413,2506,1456,1464,143,494,390, + 427,373,144,2457,35,943,32,2768,3973,27, + 30,31,966,1000,26,28,866,25,23,50, + 1209,106,76,77,108,1355,1229,1264,1254,1307, + 1272,1395,459,1368,1439,312,1413,56,1456,1464, + 143,746,371,400,142,144,1537,2887,35,943, + 32,1623,3973,27,30,31,966,1000,26,28, + 866,25,23,50,1209,106,76,77,108,1226, + 1229,1264,1254,1307,1272,1395,1048,1368,1439,1721, + 1413,56,1456,1464,143,826,1146,369,159,144, + 2887,35,943,32,1617,3973,27,30,31,966, + 1000,26,28,866,25,23,50,1209,106,76, + 77,108,1625,1229,1264,1254,1307,1272,1395,1627, + 1368,1439,1721,1413,56,1456,1464,143,4691,1174, + 1614,155,144,2887,35,943,32,2690,3973,27, + 30,31,966,1000,26,28,866,25,23,50, + 1209,106,76,77,108,1323,1229,1264,1254,1307, + 1272,1395,4340,1368,1439,1721,1413,69,1456,1464, + 143,2615,3223,1441,154,144,2887,35,943,32, + 160,3973,27,30,31,966,1000,26,28,866, + 25,23,50,1209,106,76,77,108,676,1229, + 1264,1254,1307,1272,1395,356,1368,1439,159,1413, + 135,1456,1464,143,531,588,3264,153,144,2887, + 35,943,32,848,3973,27,30,31,966,1000, + 26,28,866,25,23,50,1209,106,76,77, + 108,1167,1229,1264,1254,1307,1272,1395,355,1368, + 1439,159,1413,69,1456,1464,143,531,3443,3462, + 152,144,2887,35,943,32,2691,3973,27,30, + 31,966,1000,26,28,866,25,23,50,1209, + 106,76,77,108,523,1229,1264,1254,1307,1272, + 1395,323,1368,1439,1503,1413,2627,1456,1464,143, + 531,4813,1614,151,144,2887,35,943,32,3321, + 3973,27,30,31,966,1000,26,28,866,25, + 23,50,1209,106,76,77,108,1453,1229,1264, + 1254,1307,1272,1395,24,1368,1439,408,1413,56, + 1456,1464,143,2664,580,1614,150,144,2887,35, + 943,32,1015,3973,27,30,31,966,1000,26, + 28,866,25,23,50,1209,106,76,77,108, + 381,1229,1264,1254,1307,1272,1395,69,1368,1439, + 1700,1413,56,1456,1464,143,984,1787,1614,149, + 144,2887,35,943,32,1223,3973,27,30,31, + 966,1000,26,28,866,25,23,50,1209,106, + 76,77,108,380,1229,1264,1254,1307,1272,1395, + 68,1368,1439,1010,1413,56,1456,1464,143,664, + 2552,1614,148,144,2887,35,943,32,1385,3973, + 27,30,31,966,1000,26,28,866,25,23, + 50,1209,106,76,77,108,314,1229,1264,1254, + 1307,1272,1395,53,1368,1439,1010,1413,406,1456, + 1464,143,1088,2552,1559,147,144,2887,35,943, + 32,2728,3973,27,30,31,966,1000,26,28, + 866,25,23,50,1209,106,76,77,108,1875, + 1229,1264,1254,1307,1272,1395,4362,1368,1439,1965, + 1413,299,1456,1464,143,1243,35,396,146,144, + 2887,35,943,32,666,3973,27,30,31,966, + 1000,26,28,866,25,23,50,1209,106,76, + 77,108,2022,1229,1264,1254,1307,1272,1395,51, + 1368,1439,1010,1413,69,1456,1464,143,438,4819, + 1614,145,144,2832,35,943,32,2728,3973,27, + 30,31,966,1000,26,28,866,25,23,50, + 1209,106,76,77,108,522,1229,1264,1254,1307, + 1272,1395,87,1368,1439,1709,1413,1010,1456,2511, + 164,2887,35,943,32,1330,3973,27,30,31, + 966,1000,26,28,866,25,23,50,1209,106, + 76,77,108,3056,1229,1264,1254,1307,1272,1395, + 2491,1368,1439,559,1413,326,1456,1464,143,71, + 3031,2558,140,144,56,3200,327,1701,1144,2131, + 447,3005,35,943,32,1922,3973,27,30,31, + 966,1000,26,28,866,25,23,50,1209,106, + 76,77,108,156,1229,1264,1254,1307,1272,1395, + 97,1368,1439,1836,1413,69,1456,1464,143,1818, + 4825,1088,189,144,3121,35,943,32,1703,3973, + 27,30,31,966,1000,26,28,866,25,23, + 50,1209,106,76,77,108,1334,1229,1264,1254, + 1307,1272,1395,486,1368,1439,4460,1413,1010,1456, + 2511,164,3121,35,943,32,447,3973,27,30, + 31,966,1000,26,28,866,25,23,50,1209, + 106,76,77,108,2228,1229,1264,1254,1307,1272, + 1395,69,1368,1439,1374,1413,4843,1456,2511,164, + 1500,35,943,32,2556,322,41,30,31,966, + 1000,2228,3121,35,943,32,423,3973,27,30, + 31,966,1000,26,28,866,25,23,50,1209, + 106,76,77,108,522,1229,1264,1254,1307,1272, + 1395,98,1368,1439,1330,1413,1515,1456,2511,164, + 3121,35,943,32,292,3973,27,30,31,966, + 1000,26,28,866,25,23,50,1209,106,76, + 77,108,284,1229,1264,1254,1307,1272,1395,324, + 1368,1439,1541,1413,3464,1456,2511,164,2407,35, + 943,32,2380,322,40,30,31,966,1000,1883, + 3176,35,943,32,422,3973,27,30,31,966, + 1000,26,28,866,25,23,50,1209,106,76, + 77,108,2121,1229,1264,1254,1307,1272,1395,69, + 1368,1439,2552,1413,4889,1456,2511,164,3121,35, + 943,32,425,3973,27,30,31,966,1000,26, + 28,866,25,23,50,1209,106,76,77,108, + 285,1229,1264,1254,1307,1272,1395,325,1368,1439, + 221,2093,2407,35,943,32,2125,2551,1800,30, + 31,966,1000,588,35,1507,388,2312,3121,35, + 943,32,3222,3973,27,30,31,966,1000,26, + 28,866,25,23,50,1209,106,76,77,108, + 1614,1229,1264,1254,1307,1272,1395,431,1368,2017, + 3121,35,943,32,2276,3973,27,30,31,966, + 1000,26,28,866,25,23,50,1209,106,76, + 77,108,52,1229,1264,1254,1307,1272,1395,2413, + 2068,1518,35,943,32,3640,3513,27,30,31, + 966,1000,339,28,3121,35,943,32,322,3973, + 27,30,31,966,1000,26,28,866,25,23, + 50,1209,106,76,77,108,3077,1229,1264,1254, + 1307,2000,56,2306,1351,2433,1144,2417,2580,2139, + 2453,2753,588,35,1507,388,142,2347,2484,332, + 319,2232,321,1096,314,2144,2407,35,943,32, + 2149,2720,1843,30,31,966,1000,313,2453,351, + 1330,757,35,1507,388,297,452,3121,35,943, + 32,4603,3973,27,30,31,966,1000,26,28, + 866,25,23,50,1209,106,76,77,108,2541, + 1229,1264,1254,1307,2011,273,1243,35,2583,2317, + 3701,49,352,2228,306,310,1221,1400,35,943, + 32,3588,3333,27,30,31,966,1000,339,28, + 344,959,780,349,588,35,293,2272,2697,1817, + 49,588,35,1507,388,391,427,2418,3043,1499, + 872,588,2754,1636,74,3348,1888,35,943,32, + 4760,3333,27,30,31,966,1000,339,28,2594, + 2552,42,2539,2515,3347,49,319,2232,321,89, + 314,2144,102,2218,46,1983,72,239,351,1250, + 4893,2305,352,2684,2553,1898,35,2854,32,3640, + 3513,27,30,31,966,1000,339,28,303,1790, + 344,959,780,349,928,319,2232,321,2674,314, + 2144,1543,35,1636,2756,2271,2371,2440,322,2154, + 2693,352,3216,4487,2453,2465,232,1330,3241,2212, + 35,1507,388,333,2453,588,35,1636,278,344, + 959,780,349,332,319,2232,321,2697,314,2144, + 352,240,230,231,2234,327,35,453,2980,3564, + 3600,1143,2234,49,1714,2609,2980,2912,346,959, + 780,349,1499,2059,1906,4603,2517,588,35,1636, + 2776,2228,2541,3621,2517,296,3205,1614,3121,35, + 943,32,366,3973,27,30,31,966,1000,26, + 28,866,25,23,50,1209,106,76,77,108, + 1614,1229,1264,1254,1765,3121,35,943,32,350, + 3973,27,30,31,966,1000,26,28,866,25, + 23,50,1209,106,76,77,108,2587,1229,1264, + 1254,1808,90,1375,2707,360,2614,2980,4893,2621, + 417,419,2849,360,44,2539,2716,2620,56,2988, + 2589,2591,3256,2654,2727,2517,2622,3300,2589,2591, + 3121,35,943,32,1044,3973,27,30,31,966, + 1000,26,28,866,25,23,50,1209,106,76, + 77,108,2453,1229,1264,1254,1844,3121,35,943, + 32,332,3973,27,30,31,966,1000,26,28, + 866,25,23,50,1209,106,76,77,108,1614, + 1229,1264,1254,1869,259,446,3008,3009,537,588, + 35,1636,281,2585,360,843,35,453,56,2729, + 3600,1614,1259,2624,2492,322,228,2980,2829,2589, + 2591,3214,1225,156,1643,2773,2272,588,35,1507, + 388,2731,180,3006,2912,2517,932,35,1507,388, + 203,215,4740,3312,202,212,213,214,216,1, + 169,1614,56,537,1614,2735,1144,1243,35,396, + 168,434,183,167,170,171,172,173,174,56, + 49,228,838,537,1614,1240,2834,2448,156,1499, + 2086,3616,304,67,232,2786,66,180,3006,2912, + 2646,343,2699,2471,2980,203,215,4740,156,202, + 212,213,214,216,361,169,65,2068,188,244, + 230,231,2517,2732,4629,168,181,184,167,170, + 171,172,173,174,2070,35,943,32,3588,3333, + 27,30,31,966,1000,339,28,232,1614,182, + 3231,35,1507,388,2433,741,287,322,1614,1363, + 35,943,32,237,3513,27,30,31,966,1000, + 339,28,247,230,231,3293,2552,2717,2747,2739, + 64,537,3839,2889,273,450,3008,3009,2233,2774, + 3461,505,2249,319,2232,321,1144,314,2144,3868, + 1330,1330,932,35,1507,388,156,2755,2453,352, + 526,3349,232,2751,179,180,3006,333,319,2232, + 321,156,315,2144,382,2790,2791,344,959,780, + 349,535,502,504,352,527,49,235,230,231, + 2912,2912,1614,195,2782,1499,47,56,274,2789, + 87,2435,346,959,780,349,525,376,2433,1182, + 2757,588,35,293,393,427,2761,242,245,248, + 251,1176,2763,2947,55,1614,3066,35,943,32, + 876,3973,27,30,31,966,1000,26,28,866, + 25,23,50,1209,86,76,77,2574,2862,2915, + 3155,3209,4668,3121,35,943,32,54,3973,27, + 30,31,966,1000,26,28,866,25,23,50, + 1209,106,76,77,108,1606,1229,1264,1879,3121, + 35,943,32,2552,3973,27,30,31,966,1000, + 26,28,866,25,23,50,1209,106,76,77, + 108,345,1229,1264,1912,537,2765,2444,3883,196, + 2646,374,2552,2715,2980,3727,541,2980,392,427, + 56,198,1778,228,2864,588,35,1507,388,1780, + 156,2769,2517,173,56,343,1614,232,3576,180, + 3006,2912,2792,929,35,1507,388,203,215,4740, + 197,202,212,213,214,216,431,169,796,273, + 537,2552,250,230,231,1330,1614,168,322,3259, + 167,170,171,172,173,174,737,49,228,2788, + 588,35,1507,388,2793,156,1499,47,1607,1578, + 1761,232,2773,4893,180,3006,2912,2798,101,302, + 1323,505,203,215,4740,2912,202,212,213,214, + 216,517,169,2799,273,537,253,230,231,2110, + 1614,524,168,275,178,167,170,171,172,173, + 174,1354,56,228,1337,1144,1219,2453,3956,1614, + 156,56,503,504,1390,3863,4649,5505,1851,180, + 3006,2912,3545,929,35,1507,388,203,215,4740, + 160,202,212,213,214,216,603,169,56,56, + 537,2570,2984,3088,5505,328,335,168,340,176, + 167,170,171,172,173,174,56,49,228,5505, + 2980,2552,1614,1607,2446,156,1499,2448,4893,56, + 5505,5505,5505,2672,180,3006,2912,442,343,456, + 3260,1785,203,215,4740,2980,202,212,213,214, + 216,689,169,56,451,537,529,1144,1801,201, + 94,860,168,343,177,167,170,171,172,173, + 174,1550,2453,228,588,35,1507,388,5505,5505, + 156,332,156,1607,5505,5505,1039,5505,4893,180, + 3006,2912,2134,932,35,1507,388,203,215,4740, + 5505,202,212,213,214,216,775,169,433,5505, + 537,56,56,820,56,3992,4009,168,3873,187, + 167,170,171,172,173,174,2775,49,228,56, + 2980,5505,2453,2930,56,156,1499,47,1937,56, + 5505,332,5505,1449,180,3006,2912,56,343,5505, + 2456,1492,203,215,4740,5505,202,212,213,214, + 216,5505,169,929,35,1507,388,929,35,1507, + 388,3882,168,2585,3299,167,170,171,172,173, + 174,1952,35,943,32,3640,3333,27,30,31, + 966,1000,339,28,56,56,2717,49,537,4053, + 1144,49,588,35,1507,388,1499,2626,861,2647, + 1499,47,537,2980,56,56,343,1752,3980,3559, + 3260,5505,5505,156,2323,156,737,5505,56,5505, + 228,2517,1842,1672,200,3633,432,156,1607,860, + 319,2232,321,4893,314,2144,180,3006,2912,1500, + 929,35,1507,388,203,215,4740,313,202,212, + 213,214,216,947,169,56,1614,537,56,1535, + 5505,56,2987,5505,168,2061,192,167,170,171, + 172,173,174,2552,49,228,5505,2453,3956,5505, + 1607,5505,156,1499,47,4893,332,5505,378,5505, + 505,180,3006,2912,306,310,1221,2442,56,203, + 215,4740,2980,202,212,213,214,216,1033,169, + 56,199,537,3899,1144,3489,335,3896,2989,168, + 343,186,167,170,171,172,173,174,3043,2453, + 228,502,504,2129,35,293,2481,156,332,156, + 1144,56,5505,860,5505,962,180,3006,2912,2891, + 5505,5505,5505,1568,203,215,4740,5505,202,212, + 213,214,216,5505,169,156,5505,2552,5505,5505, + 4616,5505,3187,3321,168,162,194,167,170,171, + 172,173,174,3121,35,943,32,5505,3973,27, + 30,31,966,1000,26,28,866,25,23,50, + 1209,106,76,77,108,298,1229,1707,3121,35, + 943,32,5505,3973,27,30,31,966,1000,26, + 28,866,25,23,50,1209,106,76,77,108, + 5505,1229,1714,3121,35,943,32,2184,3973,27, + 30,31,966,1000,26,28,866,25,23,50, + 1209,106,76,77,108,5505,1722,3121,35,943, + 32,5505,3973,27,30,31,966,1000,26,28, + 866,25,23,50,1209,106,76,77,108,1614, + 1750,3121,35,943,32,5505,3973,27,30,31, + 966,1000,26,28,866,25,23,50,1209,106, + 76,77,108,1562,1757,56,1614,2980,56,1144, + 1614,3401,3531,1823,3946,5505,1614,2980,2129,2925, + 293,5505,2447,2722,56,228,2964,537,2980,5505, + 5505,5505,2552,5505,156,228,2552,2552,3456,1614, + 5505,1614,3558,1354,2894,343,343,1144,3030,205, + 215,4740,156,204,212,213,214,216,3321,205, + 215,4740,188,204,212,213,214,216,4629,860, + 3696,3245,160,3897,222,193,5505,5505,5505,1593, + 206,208,210,294,295,2635,1614,217,207,209, + 206,208,210,294,295,2635,737,217,207,209, + 2062,35,2854,32,3640,3333,27,30,31,966, + 1000,339,28,1976,35,1507,388,2408,3668,4404, + 1910,5505,2184,5505,2980,5505,190,2628,5505,4404, + 5505,5505,737,1354,5505,5505,5505,1144,5505,5505, + 2350,5505,228,5505,5505,5505,1354,49,1354,737, + 1144,5505,1144,5505,5505,5505,1499,936,3956,319, + 2232,321,160,314,2144,5505,205,215,4740,5505, + 204,212,213,214,216,160,1143,160,1691,35, + 943,32,3640,3333,27,30,31,966,1000,339, + 28,5505,5505,737,3956,334,335,206,208,210, + 294,295,2635,3892,217,207,209,3121,1525,943, + 1543,3956,3973,27,30,31,966,1000,26,28, + 866,25,23,50,1209,106,76,77,84,5505, + 3072,3497,335,5505,2855,5505,4404,319,2232,321, + 5505,314,2144,3105,5505,3246,5505,5505,330,335, + 5505,5505,5505,5505,313,3956,588,35,1507,388, + 5505,5505,5505,5505,5505,418,419,2849,3121,35, + 943,32,5505,3973,27,30,31,966,1000,26, + 28,866,25,23,50,1209,106,76,77,83, + 49,5505,3615,335,5505,5505,5505,5505,5505,1499, + 734,307,310,1221,3121,35,943,32,5505,3973, + 27,30,31,966,1000,26,28,866,25,23, + 50,1209,106,76,77,82,3121,35,943,32, + 5505,3973,27,30,31,966,1000,26,28,866, + 25,23,50,1209,106,76,77,81,3121,35, + 943,32,5505,3973,27,30,31,966,1000,26, + 28,866,25,23,50,1209,106,76,77,80, + 3121,35,943,32,5505,3973,27,30,31,966, + 1000,26,28,866,25,23,50,1209,106,76, + 77,79,3121,35,943,32,5505,3973,27,30, + 31,966,1000,26,28,866,25,23,50,1209, + 106,76,77,78,2950,35,943,32,5505,3973, + 27,30,31,966,1000,26,28,866,25,23, + 50,1209,106,76,77,104,3121,35,943,32, + 5505,3973,27,30,31,966,1000,26,28,866, + 25,23,50,1209,106,76,77,110,3121,35, + 943,32,5505,3973,27,30,31,966,1000,26, + 28,866,25,23,50,1209,106,76,77,109, + 3121,35,943,32,5505,3973,27,30,31,966, + 1000,26,28,866,25,23,50,1209,106,76, + 77,107,3121,35,943,32,5505,3973,27,30, + 31,966,1000,26,28,866,25,23,50,1209, + 106,76,77,105,1997,56,56,5505,2980,1144, + 1144,5505,5505,5505,1649,5505,5505,5505,2980,5505, + 5505,5505,5505,5505,1736,5505,228,5505,2980,5505, + 5505,5505,5505,5505,156,156,228,5505,5505,5505, + 5505,5505,5505,5505,2914,2978,228,5505,5505,5505, + 205,215,4740,5505,204,212,213,214,216,5505, + 205,215,4740,5505,204,212,213,214,216,5505, + 205,215,4740,5505,204,212,213,214,216,5505, + 1330,206,208,210,294,295,2635,5505,520,207, + 209,206,208,210,294,295,2635,5505,519,207, + 209,206,208,210,294,295,2635,2084,218,207, + 209,2980,56,5505,5505,5505,1144,2171,5505,5505, + 2912,2980,5505,5505,5505,5505,5505,56,56,228, + 5505,537,2980,5505,5505,5505,376,5505,5505,228, + 5505,156,5505,5505,5505,5505,5505,5505,5505,343, + 343,1967,5505,205,215,4740,156,204,212,213, + 214,216,5505,205,215,4740,1758,204,212,213, + 214,216,860,860,5505,5505,5505,5505,5505,5505, + 5505,5505,1715,1611,206,208,210,294,295,2635, + 5505,305,207,209,206,208,210,294,295,2635, + 5505,499,207,209,1691,35,943,32,3640,3333, + 27,30,31,966,1000,339,28,5505,5505,5505, + 5505,5505,5505,2156,35,943,32,5505,3513,27, + 30,31,966,1000,339,28,2156,35,943,32, + 3578,3513,27,30,31,966,1000,339,28,1691, + 35,943,32,3640,3333,27,30,31,966,1000, + 339,28,5505,319,2232,321,5505,314,2144,2034, + 5505,5505,2453,5505,4893,56,5505,5505,5505,1144, + 3216,333,319,2232,321,2453,317,2144,3280,35, + 1507,388,5505,741,333,319,2232,321,5505,315, + 2144,238,1354,5505,156,5505,1144,5505,319,2232, + 321,1180,314,2144,3901,2980,4954,5505,2453,5505, + 5505,5505,273,5505,5505,3277,5505,4649,5505,5505, + 5505,160,5505,228,5505,1490,35,943,32,2595, + 3333,27,30,31,966,1000,339,28,5505,5505, + 232,5505,5505,5505,5505,5505,5505,914,407,4715, + 2236,35,943,32,2391,3333,27,30,31,966, + 1000,339,28,403,5505,236,230,231,1285,5505, + 1375,5505,2980,4954,2980,4893,274,5505,408,409, + 410,294,295,2635,316,2767,321,5505,5505,3372, + 228,5505,2517,5505,5505,243,246,249,252,1176, + 5505,96,5505,2625,5505,5505,5505,5505,876,316, + 2767,321,5505,5505,914,407,4715,5505,5505,2453, + 5505,5505,5505,929,35,1507,388,5505,332,2151, + 35,1507,388,5505,5505,929,35,1507,388,5505, + 5505,5505,5505,5505,5505,408,409,410,294,295, + 2635,5505,5505,929,35,1507,388,49,5505,5505, + 2989,360,5505,49,411,413,1499,47,5505,49, + 2625,5505,1499,47,5505,2829,2589,2591,1499,47, + 2867,5505,5505,3324,5505,56,2534,49,1099,537, + 56,4758,3424,5505,2980,5505,1499,47,5505,2164, + 35,1507,388,588,35,1507,388,343,3324,5505, + 3552,5505,343,5505,156,588,35,1507,388,588, + 35,1507,388,5505,1672,5505,588,35,1507,388, + 860,411,414,49,5505,860,5505,49,5505,5505, + 1930,5505,1499,47,5505,2851,1499,816,5505,49, + 2208,56,5505,49,2980,537,3091,56,1499,931, + 49,2980,1499,659,588,35,1507,388,5505,1499, + 936,56,343,343,5505,537,5505,56,5505,343, + 156,2980,530,5505,56,5505,5505,5505,2980,5505, + 188,5505,5505,343,5505,860,4629,5505,49,343, + 156,5505,860,5505,5505,533,343,1499,2262,5505, + 188,5505,509,5505,5505,5505,4629,5505,5505,5505, + 5505,5505,860,5505,5505,5505,5505,5505,5505,860, + 5505,5505,507,5505,5505,5505,5505,5505,5505,534, + 5505,5505,5505,5505,5505,5505,5505,5505,5505,5505, + 5505,5505,5505,5505,3866,5505,5505,5505,5505,5505, + 5505,5505,5505,5505,5505,5505,5505,5505,5505,5505, + 5505,5505,5505,5505,3870,5505,5505,5505,5505,5505, + 5505,5505,5505,5505,5505,5505,5505,5505,5505,5505, + 5505,5505,5505,5505,5505,5505,5505,5505,5505,5505, + 5505,5505,5505,5505,5505,5505,5505,5505,5505,5505, + 5505,5505,5505,5505,5505,5505,5505,5505,5505,5505, + 5505,5505,5505,5505,5505,5505,5505,5505,5505,5505, + 5505,5505,5505,5505,5505,5505,5505,5505,5505,5505, + 5505,5505,5505,5505,5505,5505,5505,5505,3374,5505, + 0,39,5520,0,39,5519,0,662,29,0, + 440,1407,0,454,1451,0,38,627,0,38, + 5520,0,38,5519,0,2780,126,0,1,444, + 0,458,1009,0,457,1319,0,2432,91,0, + 662,387,0,35,33,0,32,34,0,39, + 627,0,1,929,0,1,5777,0,1,5776, + 0,1,5775,0,1,5774,0,1,5773,0, + 1,5772,0,1,5771,0,1,5770,0,1, + 5769,0,1,5768,0,1,5767,0,39,1, + 5520,0,39,1,5519,0,2140,1,0,283, + 394,0,283,286,0,5739,241,0,5738,241, + 0,5843,241,0,5842,241,0,5766,241,0, + 5765,241,0,5764,241,0,5763,241,0,5762, + 241,0,5761,241,0,5760,241,0,5759,241, + 0,5777,241,0,5776,241,0,5775,241,0, + 5774,241,0,5773,241,0,5772,241,0,5771, + 241,0,5770,241,0,5769,241,0,5768,241, + 0,5767,241,0,39,5520,241,0,39,5519, + 241,0,5543,241,0,5520,48,0,5519,48, + 0,5511,1,0,5510,1,0,3311,237,0, + 32,388,0,29,387,0,43,5541,0,43, + 37,0,2780,128,0,2780,127,0,331,445, + 0,5543,1,0,39,1,0,47,37,0, + 1,92,0,501,2630,0,5543,1,229,0, + 39,1,229,0,229,416,0,5520,37,0, + 5519,37,0,5520,2,37,0,5519,2,37, + 0,5520,36,0,5519,36,0,5541,45,0, + 37,45,0,5515,405,0,5514,405,0,1, + 4584,0,1,3193,0,1,627,0,229,415, + 0,3379,318,0,331,95,0,35,73,0, + 1,331,0,3993,278,0,501,4394,0,1, + 229,0,229,220,0,229,219,0,1,575, + 0,1,1885,0,5517,1,0,5513,1,0, + 1,229,3079,0,5514,229,0,3080,229,0, + 5517,383,0,5516,383,0,3213,229,0,10, + 12,0,8,10,12,0,185,3613,0,3314, + 383,0,8,12,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1462,346 +1474,346 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface TermAction { public final static char termAction[] = {0, - 5444,5409,5388,5388,5388,5388,5388,5388,5425,5388, + 5505,5470,5449,5449,5449,5449,5449,5449,5486,5449, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5413,1,1, + 1,1,1,1,1,1,1,5474,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,139,1, - 1,1,1,1,1,1,1,1,1,958, - 1,5619,1541,115,3041,1,1,5455,39,3830, - 5444,5451,5482,4831,3039,3440,3285,2240,3211,3378, - 3190,3438,593,3414,4338,3411,10,5428,5428,5428, - 5428,5428,5428,5428,5428,5428,5428,5428,5428,5428, - 5428,5428,5428,5428,5428,5428,5428,5428,5428,5428, - 5428,5428,5428,5428,5428,5428,5428,5428,5428,5428, - 5428,5428,5428,5428,5428,5428,5428,5428,5428,5428, - 5428,5428,5428,5428,331,5428,5428,5428,5428,5428, - 5428,395,5428,5428,5428,5428,5428,5428,5428,1187, - 5428,5428,5428,5428,3358,3806,3782,5428,384,5444, - 5428,5428,5428,5428,5428,5428,5428,5428,5428,5428, - 5428,5428,8,5431,5431,5431,5431,5431,5431,5431, - 5431,5431,5431,5431,5431,5431,5431,5431,5431,5431, - 5431,5431,5431,5431,5431,5431,5431,5431,5431,5431, - 5431,5431,5431,5431,5431,5431,5431,5431,5431,5431, - 5431,5431,5431,5431,5431,5431,5431,5431,5431,5431, - 5444,5431,5431,5431,5431,5431,5431,1912,5431,5431, - 5431,5431,5431,5431,5431,301,5431,5431,5431,5431, - 286,5181,5181,5431,283,5744,5431,5431,5431,5431, - 5431,5431,5431,5431,5431,5431,5431,5431,5444,5409, - 5388,5388,5388,5388,5388,5388,5416,5388,1,1, + 1,1,1,1,1,1,1,1,1,1585, + 1,5680,1265,115,2871,1,1,5516,39,3841, + 5505,5512,5543,4507,2637,3186,3192,2240,3163,3074, + 3181,3102,593,3096,3546,3090,10,5489,5489,5489, + 5489,5489,5489,5489,5489,5489,5489,5489,5489,5489, + 5489,5489,5489,5489,5489,5489,5489,5489,5489,5489, + 5489,5489,5489,5489,5489,5489,5489,5489,5489,5489, + 5489,5489,5489,5489,5489,5489,5489,5489,5489,5489, + 5489,5489,5489,5489,331,5489,5489,5489,5489,5489, + 5489,395,5489,5489,5489,5489,5489,5489,5489,1187, + 5489,5489,5489,5489,3403,3817,3793,5489,384,5505, + 5489,5489,5489,5489,5489,5489,5489,5489,5489,5489, + 5489,5489,8,5492,5492,5492,5492,5492,5492,5492, + 5492,5492,5492,5492,5492,5492,5492,5492,5492,5492, + 5492,5492,5492,5492,5492,5492,5492,5492,5492,5492, + 5492,5492,5492,5492,5492,5492,5492,5492,5492,5492, + 5492,5492,5492,5492,5492,5492,5492,5492,5492,5492, + 5505,5492,5492,5492,5492,5492,5492,2239,5492,5492, + 5492,5492,5492,5492,5492,301,5492,5492,5492,5492, + 286,5242,5242,5492,283,5805,5492,5492,5492,5492, + 5492,5492,5492,5492,5492,5492,5492,5492,5505,5470, + 5449,5449,5449,5449,5449,5449,5477,5449,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5413,1,1,1,1, + 1,1,1,1,1,5474,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5444,1,1,1, - 1,1,1,439,1,1,1,958,1,5619, - 1541,5444,3041,1,1,5455,5444,5083,5080,5452, - 5482,5444,3039,3440,3285,2240,3211,3378,3190,3438, - 593,3414,4338,3411,5444,5409,5388,5388,5388,5388, - 5388,5388,5416,5388,1,1,1,1,1,1, + 1,1,1,1,1,1,5505,1,1,1, + 1,1,1,439,1,1,1,1585,1,5680, + 1265,5505,2871,1,1,5516,5505,5144,5141,5513, + 5543,5505,2637,3186,3192,2240,3163,3074,3181,3102, + 593,3096,3546,3090,5505,5470,5449,5449,5449,5449, + 5449,5449,5477,5449,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5413,1,1,1,1,1,1,1,1, + 1,5474,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5451,1,1,1,1,1,1,135, - 1,1,1,958,1,5619,1541,117,3041,1, - 1,5455,111,3830,5444,5879,5880,5881,3039,3440, - 3285,2240,3211,3378,3190,3438,593,3414,4338,3411, - 5444,5409,5388,5388,5388,5388,5388,5388,5416,5388, + 1,1,5512,1,1,1,1,1,1,135, + 1,1,1,1585,1,5680,1265,117,2871,1, + 1,5516,111,3841,5505,5940,5941,5942,2637,3186, + 3192,2240,3163,3074,3181,3102,593,3096,3546,3090, + 5505,5470,5449,5449,5449,5449,5449,5449,5477,5449, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5413,1,1, + 1,1,1,1,1,1,1,5474,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5444,1, - 1,1,1,1,1,136,1,1,1,958, - 1,5619,1541,131,3041,1,1,5455,2328,3806, - 3782,4249,595,4271,3039,3440,3285,2240,3211,3378, - 3190,3438,593,3414,4338,3411,5444,5409,5388,5388, - 5388,5388,5388,5388,5416,5388,1,1,1,1, + 1,1,1,1,1,1,1,1,5505,1, + 1,1,1,1,1,136,1,1,1,1585, + 1,5680,1265,131,2871,1,1,5516,2328,3817, + 3793,4296,595,4318,2637,3186,3192,2240,3163,3074, + 3181,3102,593,3096,3546,3090,5505,5470,5449,5449, + 5449,5449,5449,5449,5477,5449,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5413,1,1,1,1,1,1, + 1,1,1,5474,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5444,1,1,1,1,1, - 1,5444,1,1,1,958,1,5619,1541,116, - 3041,1,1,5455,2328,3830,121,5444,5458,5459, - 3039,3440,3285,2240,3211,3378,3190,3438,593,3414, - 4338,3411,5444,5409,5388,5388,5388,5388,5388,5388, - 5416,5388,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5413, + 1,1,1,1,5505,1,1,1,1,1, + 1,5505,1,1,1,1585,1,5680,1265,116, + 2871,1,1,5516,2328,3841,121,5505,5519,5520, + 2637,3186,3192,2240,3163,3074,3181,3102,593,3096, + 3546,3090,5505,5470,5449,5449,5449,5449,5449,5449, + 5477,5449,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5474, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5444,1,1,1,1,1,1,5444,1,1, - 1,958,1,5619,1541,5444,3041,1,1,5455, - 2624,3806,3782,3142,3168,5444,3039,3440,3285,2240, - 3211,3378,3190,3438,593,3414,4338,3411,5444,5409, - 5388,5388,5388,5388,5388,5388,5416,5388,1,1, + 5505,1,1,1,1,1,1,5505,1,1, + 1,1585,1,5680,1265,5505,2871,1,1,5516, + 2551,3817,3793,3133,3159,5505,2637,3186,3192,2240, + 3163,3074,3181,3102,593,3096,3546,3090,5505,5470, + 5449,5449,5449,5449,5449,5449,5477,5449,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5413,1,1,1,1, + 1,1,1,1,1,5474,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,336,1,1,1, - 1,1,1,1922,1,1,1,958,1,5619, - 1541,5444,3041,1,1,5455,5444,5458,5459,5781, - 5782,2624,3039,3440,3285,2240,3211,3378,3190,3438, - 593,3414,4338,3411,5444,5409,5388,5388,5388,5388, - 5388,5388,5416,5388,1,1,1,1,1,1, + 1,1,1,2316,1,1,1,1585,1,5680, + 1265,5505,2871,1,1,5516,5505,5519,5520,5842, + 5843,2551,2637,3186,3192,2240,3163,3074,3181,3102, + 593,3096,3546,3090,5505,5470,5449,5449,5449,5449, + 5449,5449,5477,5449,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5413,1,1,1,1,1,1,1,1, + 1,5474,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5444,1,1,1,1,1,1,5444, - 1,1,1,958,1,5619,1541,1,3041,1, - 1,5455,5444,5083,5080,5406,5482,5444,3039,3440, - 3285,2240,3211,3378,3190,3438,593,3414,4338,3411, - 5444,5409,5388,5388,5388,5388,5388,5388,5416,5388, + 1,1,5505,1,1,1,1,1,1,5505, + 1,1,1,1585,1,5680,1265,1,2871,1, + 1,5516,5505,5144,5141,5467,5543,5505,2637,3186, + 3192,2240,3163,3074,3181,3102,593,3096,3546,3090, + 5505,5470,5449,5449,5449,5449,5449,5449,5477,5449, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5413,1,1, + 1,1,1,1,1,1,1,5474,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5451,1, - 1,1,1,1,1,1965,1,1,1,958, - 1,5619,1541,5444,3041,1,1,5455,5444,5267, - 5264,48,5267,5264,3039,3440,3285,2240,3211,3378, - 3190,3438,593,3414,4338,3411,5444,5409,5388,5388, - 5388,5388,5388,5388,5416,5388,1,1,1,1, + 1,1,1,1,1,1,1,1,5512,1, + 1,1,1,1,1,2364,1,1,1,1585, + 1,5680,1265,5505,2871,1,1,5516,5505,5328, + 5325,48,5328,5325,2637,3186,3192,2240,3163,3074, + 3181,3102,593,3096,3546,3090,5505,5470,5449,5449, + 5449,5449,5449,5449,5477,5449,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5413,1,1,1,1,1,1, + 1,1,1,5474,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5444,1,1,1,1,1, - 1,5444,1,1,1,958,1,5619,1541,5444, - 3041,1,1,5455,114,5444,91,5448,3330,5116, - 3039,3440,3285,2240,3211,3378,3190,3438,593,3414, - 4338,3411,5444,3388,1,1,1,1,1,1, - 3394,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5453, + 1,1,1,1,5505,1,1,1,1,1, + 1,5505,1,1,1,1585,1,5680,1265,5505, + 2871,1,1,5516,114,5505,91,5509,3311,5177, + 2637,3186,3192,2240,3163,3074,3181,3102,593,3096, + 3546,3090,5505,3079,1,1,1,1,1,1, + 3080,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5514, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5444,1,1,1,1,1,1,5444,1,1, - 1,958,1,5619,1541,5444,3041,1,1,5455, - 5444,1752,5444,4249,5773,4271,3039,3440,3285,2240, - 3211,3378,3190,3438,593,3414,4338,3411,39,5083, - 5080,4830,2140,4056,4139,2878,5447,4161,792,5708, - 5706,5715,5714,5710,5711,5709,5712,5713,5716,5707, - 5704,5781,5782,4117,4086,137,5698,5705,5701,5677, - 5703,5702,5699,5700,5678,4205,4183,5463,5842,631, - 617,780,5465,653,3115,663,5444,5466,5464,584, - 5460,5461,5462,5444,2086,5843,5844,2879,1373,5444, - 5319,5319,229,5315,229,229,229,5323,229,1, + 5505,1,1,1,1,1,1,5505,1,1, + 1,1585,1,5680,1265,5505,2871,1,1,5516, + 5505,1328,5505,4296,1129,4318,2637,3186,3192,2240, + 3163,3074,3181,3102,593,3096,3546,3090,39,5144, + 5141,3544,2140,4067,4186,3193,5508,4208,792,5769, + 5767,5776,5775,5771,5772,5770,5773,5774,5777,5768, + 5765,5842,5843,4164,4128,137,5759,5766,5762,5738, + 5764,5763,5760,5761,5739,4252,4230,5524,5903,631, + 617,822,5526,653,3106,681,5505,5527,5525,584, + 5521,5522,5523,5505,1263,5904,5905,2434,1373,5505, + 5380,5380,229,5376,229,229,229,5384,229,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5444,3468,229,1,1,1, - 1,1,1,1,1,1,5444,5083,5080,1, - 2140,5128,125,2878,224,133,5444,5312,394,5178, - 5178,5444,283,5444,1967,1,1,1,2646,225, - 5856,566,397,5458,5459,2278,5704,5781,5782,358, - 416,229,5698,5705,5701,5677,5703,5702,5699,5700, - 5678,5704,5781,5782,939,5944,5444,5698,5705,5701, - 5677,5703,5702,5699,5700,5678,283,5444,5444,8836, - 8836,5879,5880,5881,5444,5319,5319,229,5315,229, - 229,229,5367,229,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,3142, - 3168,229,1,1,1,1,1,1,1,1, - 1,3043,33,2360,1,5122,5480,5444,5122,5444, - 5122,5122,5312,37,5306,5306,8,5456,5306,5801, - 1,1,1,2646,5441,5856,566,5122,5122,5122, - 43,5288,5288,1,129,415,229,5444,5444,5122, - 5122,161,345,5083,5080,2556,2140,627,331,2878, - 5944,331,5444,5444,1,5303,5303,5122,5300,5444, - 331,2680,363,331,124,5122,5879,5880,5881,1, - 5122,5122,5122,5122,5122,5122,5455,5079,5285,367, - 5171,5167,2556,5175,627,1,2878,5441,1,5122, - 5122,5122,5122,5122,5122,5122,5122,5122,5122,5122, - 5122,5122,5122,5122,5444,1933,161,5122,5122,5122, - 5122,5122,5122,5122,5122,5122,5122,5122,5122,5122, - 5444,5122,5122,5125,118,1971,5125,363,5125,5125, - 2477,2404,29,387,387,5282,387,387,5282,387, - 5282,5282,1933,3715,363,5125,5125,5125,1225,3757, - 2773,3142,3168,5444,387,387,387,5125,5125,5282, + 1,1,1,1,5505,3211,229,1,1,1, + 1,1,1,1,1,1,5505,5144,5141,1, + 2140,5189,125,3193,224,133,5505,5373,394,5239, + 5239,5505,283,5505,2389,1,1,1,3693,225, + 5917,566,397,5519,5520,2278,5765,5842,5843,358, + 416,229,5759,5766,5762,5738,5764,5763,5760,5761, + 5739,5765,5842,5843,939,6005,5505,5759,5766,5762, + 5738,5764,5763,5760,5761,5739,283,5505,5505,8897, + 8897,5940,5941,5942,5505,5380,5380,229,5376,229, + 229,229,5428,229,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,3133, + 3159,229,1,1,1,1,1,1,1,1, + 1,3366,33,2360,1,5183,5541,5505,5183,5505, + 5183,5183,5373,37,5367,5367,8,5517,5367,5862, + 1,1,1,3693,5502,5917,566,5183,5183,5183, + 43,5349,5349,1,129,415,229,5505,5505,5183, + 5183,161,345,5144,5141,2556,2140,627,331,3193, + 6005,331,5505,5505,1,5364,5364,5183,5361,5505, + 331,2621,363,331,124,5183,5940,5941,5942,1, + 5183,5183,5183,5183,5183,5183,5516,5140,5346,367, + 5232,5228,2556,5236,627,1,3193,5502,1,5183, + 5183,5183,5183,5183,5183,5183,5183,5183,5183,5183, + 5183,5183,5183,5183,5505,1933,161,5183,5183,5183, + 5183,5183,5183,5183,5183,5183,5183,5183,5183,5183, + 5505,5183,5183,5186,118,1971,5186,363,5186,5186, + 2477,2404,29,387,387,5343,387,387,5343,387, + 5343,5343,1933,3484,363,5186,5186,5186,1225,3768, + 3743,3133,3159,5505,387,387,387,5186,5186,5343, 387,387,387,387,387,387,387,387,387,1, - 5171,5167,5358,5175,5364,5125,5361,5454,5444,38, - 5101,5098,237,5125,5095,5276,2878,5086,5125,5125, - 5125,5125,5125,5125,138,5282,5453,309,5171,5167, - 4504,5175,627,5379,2878,5282,5379,5125,5125,5125, - 5125,5125,5125,5125,5125,5125,5125,5125,5125,5125, - 5125,5125,36,5343,5340,5125,5125,5125,5125,5125, - 5125,5125,5125,5125,5125,5125,5125,5125,123,5125, - 5125,5444,5388,5388,229,5388,229,229,229,5391, + 5232,5228,5419,5236,5425,5186,5422,5515,5505,38, + 5162,5159,237,5186,5156,5337,3193,5147,5186,5186, + 5186,5186,5186,5186,138,5343,5514,309,5232,5228, + 4584,5236,627,5440,3193,5343,5440,5186,5186,5186, + 5186,5186,5186,5186,5186,5186,5186,5186,5186,5186, + 5186,5186,36,5404,5401,5186,5186,5186,5186,5186, + 5186,5186,5186,5186,5186,5186,5186,5186,123,5186, + 5186,5505,5449,5449,229,5449,229,229,229,5452, 229,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5444,5444,229,1, - 1,8747,1,1,1,1,1,1,444,1, - 1,1,1,5444,5107,226,39,5107,5444,5385, - 5482,5454,331,5444,2278,331,139,1,1,1, - 3485,5450,5655,1541,458,3041,457,5704,5781,5782, - 5453,5444,220,5698,5705,5701,5677,5703,5702,5699, - 5700,5678,290,5458,5459,3142,3168,5944,5444,5388, - 5388,229,5388,229,229,229,229,229,1,1, + 1,1,1,1,1,1,5505,5505,229,1, + 1,8808,1,1,1,1,1,1,444,1, + 1,1,1,5505,5168,226,39,5168,5505,5446, + 5543,5515,331,5505,2278,331,139,1,1,1, + 3878,5511,5716,1265,458,2871,457,5765,5842,5843, + 5514,5505,220,5759,5766,5762,5738,5764,5763,5760, + 5761,5739,290,5519,5520,3133,3159,6005,5505,5449, + 5449,229,5449,229,229,229,229,229,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,3949,5444,229,1,1,8747,1, - 1,1,1,1,1,1890,5449,5110,1,5113, - 1,5171,5167,4504,5175,627,5385,2878,347,113, - 134,1580,132,2795,1,1,1,3485,130,5655, - 1541,595,3041,370,5444,5083,5080,1187,2140,627, - 532,2878,3358,1847,1804,1761,1718,1675,1632,1589, - 1546,1503,1460,5444,5944,5444,5388,5388,229,5388, - 229,229,229,5394,229,1,1,1,1,1, + 1,1,1,3960,5505,229,1,1,8808,1, + 1,1,1,1,1,1890,5510,5171,1,5174, + 1,5232,5228,4584,5236,627,5446,3193,347,113, + 134,1709,132,2759,1,1,1,3878,130,5716, + 1265,595,2871,370,5505,5144,5141,1187,2140,627, + 532,3193,3403,1847,1804,1761,1718,1675,1632,1589, + 1546,1503,1460,5505,6005,5505,5449,5449,229,5449, + 229,229,229,5455,229,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5444,1933,229,1,1,8747,1,1,1,1, - 1,1,445,39,39,1,5482,5444,5297,227, - 3278,5297,1285,5385,1,5452,112,3439,4249,5444, - 4271,1,1,1,3485,3276,5655,1541,2360,3041, - 2442,5704,5781,5782,2477,2404,219,5698,5705,5701, - 5677,5703,5702,5699,5700,5678,5444,37,5306,5306, - 3377,5944,5444,5388,5388,229,5388,229,229,229, - 5391,229,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1005,5451,229, - 1,1,8747,1,1,1,1,1,1,5444, - 5083,5080,1,2140,5128,1281,2878,92,1,1, - 5385,1,348,5309,122,4249,5309,4271,1,1, - 1,3485,5444,5655,1541,4339,3041,1,5171,5167, - 2556,5175,627,220,2878,5270,5444,5444,5171,5167, - 4504,5175,627,5379,2878,368,5379,1268,5944,5444, - 5388,5388,229,5388,229,229,229,5391,229,1, + 5505,1933,229,1,1,8808,1,1,1,1, + 1,1,445,39,39,1,5543,5505,5358,227, + 3037,5358,1285,5446,1,5513,112,4880,4296,5505, + 4318,1,1,1,3878,1580,5716,1265,2360,2871, + 2897,5765,5842,5843,2477,2404,219,5759,5766,5762, + 5738,5764,5763,5760,5761,5739,5505,37,5367,5367, + 2627,6005,5505,5449,5449,229,5449,229,229,229, + 5452,229,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1005,5512,229, + 1,1,8808,1,1,1,1,1,1,5505, + 5144,5141,1,2140,5189,1281,3193,92,1,1, + 5446,1,348,5370,122,4296,5370,4318,1,1, + 1,3878,5505,5716,1265,3670,2871,1,5232,5228, + 2556,5236,627,220,3193,5331,5505,5505,5232,5228, + 4584,5236,627,5440,3193,368,5440,1268,6005,5505, + 5449,5449,229,5449,229,229,229,5452,229,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5444,1933,229,1,1,8747, - 1,1,1,1,1,1,5444,5329,5326,1, - 1933,1,5171,5167,4504,5175,627,5385,2878,309, - 5273,3142,3168,375,120,1,1,1,3485,2064, - 5655,1541,5444,3041,1330,5444,5458,5459,309,5444, - 220,157,345,39,39,2437,5482,100,331,3757, - 2773,331,5444,5444,5480,5944,5444,5388,5388,229, - 5388,229,229,229,229,229,1,1,1,1, + 1,1,1,1,5505,1933,229,1,1,8808, + 1,1,1,1,1,1,5505,5390,5387,1, + 1933,1,5232,5228,4584,5236,627,5446,3193,309, + 5334,3133,3159,375,120,1,1,1,3878,2064, + 5716,1265,5505,2871,1330,5505,5519,5520,309,5505, + 220,157,345,39,39,2437,5543,100,331,3768, + 3743,331,5505,5505,5541,6005,5505,5449,5449,229, + 5449,229,229,229,229,229,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,119,5444,229,1,1,8747,1,1,1, - 1,1,1,95,39,39,1,5482,5444,5373, - 4227,879,5373,5444,5385,1933,3757,2773,405,301, - 4634,1417,1,1,1,3485,5352,5655,1541,5744, - 3041,1,5171,5167,4504,5175,627,5444,2878,1, - 5171,5167,2556,5175,627,5355,2878,3044,5444,5336, - 5332,3468,5944,5444,5388,5388,229,5388,229,229, + 1,119,5505,229,1,1,8808,1,1,1, + 1,1,1,95,39,39,1,5543,5505,5434, + 4274,879,5434,5505,5446,1933,3768,3743,405,301, + 4492,1417,1,1,1,3878,5413,5716,1265,5805, + 2871,1,5232,5228,4584,5236,627,5505,3193,1, + 5232,5228,2556,5236,627,5416,3193,3658,5505,5397, + 5393,3211,6005,5505,5449,5449,229,5449,229,229, 229,229,229,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1924,185, - 229,1,1,8747,1,1,1,1,1,1, - 37,39,5444,1,5444,5482,5480,4352,5444,5458, - 5459,5385,1933,2064,5444,4450,5456,3196,515,1, - 1,1,3485,1826,5655,1541,1,3041,47,2437, - 5444,8668,8265,1,341,331,5083,5080,4504,2140, - 627,5403,2878,5444,8668,8265,5444,5444,5480,5944, - 5444,5388,5388,229,5388,229,229,229,229,229, + 229,1,1,8808,1,1,1,1,1,1, + 37,39,5505,1,5505,5543,5541,3865,5505,5519, + 5520,5446,1933,2064,5505,4497,5517,3190,515,1, + 1,1,3878,1826,5716,1265,1,2871,47,2437, + 5505,8729,8326,1,341,331,5144,5141,4584,2140, + 627,5464,3193,5505,8729,8326,5505,5505,5541,6005, + 5505,5449,5449,229,5449,229,229,229,229,229, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5455,1138,229,1,1, - 8747,1,1,1,1,1,1,1,882,1933, - 1,5444,5267,5264,341,5450,341,396,5385,341, - 5455,387,3277,5879,5880,5881,1,1,1,3485, - 5435,5655,1541,1,3041,1,5171,5167,5358,5175, - 5364,363,5361,311,75,5444,2684,3463,5444,1, - 1,1,1,1,1,1,5944,1,1,1, + 1,1,1,1,1,5516,1138,229,1,1, + 8808,1,1,1,1,1,1,1,882,1933, + 1,5505,5328,5325,341,5511,341,396,5446,341, + 5516,387,3884,5940,5941,5942,1,1,1,3878, + 5496,5716,1265,1,2871,1,5232,5228,5419,5236, + 5425,363,5422,311,75,5505,2892,3903,5505,1, + 1,1,1,1,1,1,6005,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5444,5444,662,1,1,5444,4227,879,4456,5444, - 5449,5506,5507,126,48,1,1,1,5459,1, - 1,1,1,1,1,1,5444,1,1,1, - 1,1,1,5444,362,5444,363,2014,1,5980, - 1044,5444,1095,1,1,1,5171,5167,4830,5175, - 4056,4139,2878,363,4161,5131,5158,5164,5137,5140, - 5152,5149,5155,5146,5143,5134,5161,5444,2818,5459, - 4117,4086,5845,5444,5083,5080,5444,2140,627,580, - 2878,5104,4205,4183,5463,5444,631,617,780,5465, - 653,3115,663,668,5466,5464,584,5460,5461,5462, - 37,5306,5306,5956,3195,1373,331,2719,2653,318, - 39,39,5370,516,39,5083,5080,4830,2140,4056, - 4139,2878,5438,4161,996,5708,5706,5715,5714,5710, - 5711,5709,5712,5713,5716,5707,5444,5458,5459,4117, - 4086,627,5444,2878,5885,4573,1,5444,5480,2437, - 3626,4205,4183,5463,5270,631,617,780,5465,653, - 3115,663,428,5466,5464,584,5460,5461,5462,45, - 5349,5349,1933,5444,1373,5444,1,5444,5444,5329, - 5326,5422,5444,5450,528,5451,141,5083,5080,4830, - 2140,4056,4139,2878,5444,4161,996,5708,5706,5715, - 5714,5710,5711,5709,5712,5713,5716,5707,5444,1933, - 1,4117,4086,37,5306,5306,3495,5346,163,5273, - 128,29,5444,4205,4183,5463,5480,631,617,780, - 5465,653,3115,663,925,5466,5464,584,5460,5461, - 5462,3501,2853,3196,5444,3985,1373,3878,5449,528, - 5899,39,39,1,5171,5167,4830,5175,4056,4139, - 2878,5480,4161,5131,5158,5164,5137,5140,5152,5149, - 5155,5146,5143,5134,5161,2818,662,3331,4117,4086, - 395,5444,5444,163,388,320,1894,127,5291,5454, - 4205,4183,5463,424,631,617,780,5465,653,3115, - 663,5444,5466,5464,584,5460,5461,5462,5453,103, - 5444,5444,3963,1373,2719,2653,99,5444,39,39, - 39,5083,5080,4830,2140,4056,4139,2878,5419,4161, - 996,5708,5706,5715,5714,5710,5711,5709,5712,5713, - 5716,5707,2818,5444,521,4117,4086,2274,1933,5444, - 5444,278,3570,1,5382,5294,39,4205,4183,5463, - 5482,631,617,780,5465,653,3115,663,5444,5466, - 5464,584,5460,5461,5462,1,1,5444,2055,1050, - 1373,2719,2653,291,5444,5397,5397,5422,39,5083, - 5080,4830,2140,4056,4139,2878,5419,4161,996,5708, - 5706,5715,5714,5710,5711,5709,5712,5713,5716,5707, - 29,440,454,4117,4086,5400,5400,48,4337,387, - 5444,5458,5444,3208,3208,4205,4183,5463,395,631, - 617,780,5465,653,3115,663,73,5466,5464,584, - 5460,5461,5462,5803,1,5444,1,823,1373,5913, - 5907,1,2102,5911,5454,5422,289,448,5444,191, - 5444,5444,3468,3105,426,5086,5089,5092,5444,5905, - 5906,4640,5458,5453,5119,662,449,2795,191,420, - 308,5936,5937,662,5444,5914,5444,4879,5444,4632, - 5444,5376,5444,4898,5444,3562,1,4917,5444,5916, - 3705,4449,5444,5444,1,4643,5444,926,5444,1395, - 1405,5444,5917,5915,5938,35,3881,5444,5444,508, - 506,5444,5444,5444,5444,5444,789,5444,510,2434, - 2152,5927,5926,5939,1089,2997,5908,5909,5932,5933, - 5930,5931,5910,5912,5934,5935,2544,5444,2190,5940, - 2801,5920,5921,5922,5918,5919,5928,5929,5924,5923, - 5925,39,5083,5080,4830,2140,4056,4139,2878,5448, - 4161,996,5708,5706,5715,5714,5710,5711,5709,5712, - 5713,5716,5707,3244,2448,2,4117,4086,3861,3873, - 3298,2448,3557,3352,4111,5444,2021,803,4205,4183, - 5463,5444,631,617,780,5465,653,3115,663,5444, - 5466,5464,584,5460,5461,5462,39,5083,5080,4830, - 2140,4056,4139,2878,5444,4161,996,5708,5706,5715, - 5714,5710,5711,5709,5712,5713,5716,5707,5444,5444, - 37,4117,4086,5444,5444,5444,5444,5444,5444,5444, - 5444,5444,5444,4205,4183,5463,5444,631,617,780, - 5465,653,3115,663,5444,5466,5464,584,5460,5461, - 5462,5444,5444,5444,5444,5444,1373,5444,5447,39, - 5083,5080,4830,2140,4056,4139,2878,5444,4161,996, - 5708,5706,5715,5714,5710,5711,5709,5712,5713,5716, - 5707,5444,5444,5444,4117,4086,5444,5444,5444,5444, - 5444,5444,5444,5444,5444,5444,4205,4183,5463,5444, - 631,617,780,5465,653,3115,663,5444,5466,5464, - 584,5460,5461,5462,39,5083,5080,4830,2140,4056, - 4139,2878,1879,4161,996,5708,5706,5715,5714,5710, - 5711,5709,5712,5713,5716,5707,5444,5444,5444,4117, - 4086,5444,5444,5444,5444,5444,5444,5444,5444,5444, - 5444,4205,4183,5463,5444,631,617,780,5465,653, - 3115,663,5444,5466,5464,584,5460,5461,5462,5444, - 5444,5444,5444,5444,1373,39,5083,5080,4842,2140, - 4056,4139,2878,5444,4161,996,5708,5706,5715,5714, - 5710,5711,5709,5712,5713,5716,5707,5444,5444,5444, - 4117,4086,5444,5444,5444,5444,5444,5444,5444,5444, - 5444,5444,4205,4183,5463,5444,631,617,780,5465, - 653,3115,663,5444,5466,5464,584,5460,5461,5462, - 39,5083,5080,4830,2140,4056,4139,2878,5444,4161, - 996,5708,5706,5715,5714,5710,5711,5709,5712,5713, - 5716,5707,5444,5444,5444,4117,4086,5444,5444,5444, - 5444,5444,5444,5444,5444,5444,5444,4205,4183,5463, - 5444,631,617,780,5465,653,3115,663,5444,5466, - 5464,584,5460,5461,5462,39,5083,5080,4830,2140, - 4056,4139,2878,5444,4161,996,5708,5706,5715,5714, - 5710,5711,5709,5712,5713,5716,5707,5444,5444,5444, - 4117,4086,5444,5444,5444,5444,5444,5444,5444,5444, - 5444,5444,4205,4183,5463,5444,631,617,780,5465, - 653,3115,663,5444,5466,5464,584,5460,5461,5462, - 5444,5083,5080,5444,5482,5444,5444,5444,5444,5444, - 728,5708,5706,5715,5714,5710,5711,5709,5712,5713, - 5716,5707,5704,5781,5782,5444,5444,5444,5698,5705, - 5701,5677,5703,5702,5699,5700,5678,5444,5444,5444, - 5842,5444,5444,5444,5444,5444,5444,5444,5444,241, - 5257,5253,5444,5261,5444,5444,2086,5843,5844,728, - 5244,5250,5223,5226,5238,5235,5241,5232,5229,5220, - 5247,5199,5193,5190,5444,5444,5444,5217,5196,5208, - 5187,5202,5205,5214,5211,5184,5444,5444,5444,5842, - 32,388,388,5279,388,388,5279,388,5279,5279, - 5444,5444,5444,5444,5444,2086,5843,5844,5444,5444, - 5444,5444,388,388,388,5444,223,5279,388,388, - 388,388,388,388,388,388,388,5708,5706,5715, - 5714,5710,5711,5709,5712,5713,5716,5707,5704,5781, - 5782,5444,5444,5444,5698,5705,5701,5677,5703,5702, - 5699,5700,5678,5279,5444,5444,5444,5444,5444,5444, - 5444,5444,5444,5279 + 5505,5505,662,1,1,5505,4274,879,4385,5505, + 5510,5567,5568,126,48,1,1,1,5520,1, + 1,1,1,1,1,1,5505,1,1,1, + 1,1,1,5505,362,5505,363,2014,1,6041, + 2629,5505,1095,1,1,1,5232,5228,3544,5236, + 4067,4186,3193,363,4208,5192,5219,5225,5198,5201, + 5213,5210,5216,5207,5204,5195,5222,5505,2807,5520, + 4164,4128,5906,5505,5144,5141,5505,2140,627,580, + 3193,5165,4252,4230,5524,5505,631,617,822,5526, + 653,3106,681,668,5527,5525,584,5521,5522,5523, + 37,5367,5367,6017,2853,1373,331,2725,2698,318, + 39,39,5431,516,39,5144,5141,3544,2140,4067, + 4186,3193,5499,4208,929,5769,5767,5776,5775,5771, + 5772,5770,5773,5774,5777,5768,5505,5519,5520,4164, + 4128,627,5505,3193,5946,4386,1,5505,5541,2437, + 3993,4252,4230,5524,5331,631,617,822,5526,653, + 3106,681,428,5527,5525,584,5521,5522,5523,45, + 5410,5410,1933,5505,1373,5505,1,5505,5505,5390, + 5387,5483,5505,5511,528,5512,141,5144,5141,3544, + 2140,4067,4186,3193,5505,4208,929,5769,5767,5776, + 5775,5771,5772,5770,5773,5774,5777,5768,5505,1933, + 1,4164,4128,37,5367,5367,3319,5407,163,5334, + 128,29,5505,4252,4230,5524,5541,631,617,822, + 5526,653,3106,681,925,5527,5525,584,5521,5522, + 5523,3270,2766,3190,5505,4974,1373,4006,5510,528, + 5960,39,39,1,5232,5228,3544,5236,4067,4186, + 3193,5541,4208,5192,5219,5225,5198,5201,5213,5210, + 5216,5207,5204,5195,5222,2807,662,4508,4164,4128, + 395,5505,5505,163,388,320,663,127,5352,5515, + 4252,4230,5524,424,631,617,822,5526,653,3106, + 681,5505,5527,5525,584,5521,5522,5523,5514,103, + 5505,5505,4008,1373,2725,2698,99,5505,39,39, + 39,5144,5141,3544,2140,4067,4186,3193,5480,4208, + 929,5769,5767,5776,5775,5771,5772,5770,5773,5774, + 5777,5768,2807,5505,521,4164,4128,1894,1933,5505, + 5505,278,3379,1,5443,5355,39,4252,4230,5524, + 5543,631,617,822,5526,653,3106,681,5505,5527, + 5525,584,5521,5522,5523,1,1,5505,2055,1050, + 1373,2725,2698,291,5505,5458,5458,5483,39,5144, + 5141,3544,2140,4067,4186,3193,5480,4208,929,5769, + 5767,5776,5775,5771,5772,5770,5773,5774,5777,5768, + 29,440,454,4164,4128,5461,5461,48,4384,387, + 5505,5519,5505,2953,2953,4252,4230,5524,395,631, + 617,822,5526,653,3106,681,73,5527,5525,584, + 5521,5522,5523,5864,1,5505,1,926,1373,5974, + 5968,1,2102,5972,5515,5483,289,448,5505,191, + 5505,5505,3211,2917,426,5147,5150,5153,5505,5966, + 5967,4682,5519,5514,5180,662,449,2759,191,420, + 308,5997,5998,662,5505,5975,5505,4940,5505,2909, + 5505,5437,5505,4941,5505,3007,1,4961,5505,5977, + 3479,3476,5505,5505,1,4655,5505,740,5505,1482, + 1489,5505,5978,5976,5999,35,3565,5505,5505,508, + 506,5505,5505,5505,5505,5505,789,5505,510,2665, + 2152,5988,5987,6000,1089,2866,5969,5970,5993,5994, + 5991,5992,5971,5973,5995,5996,2845,5505,2190,6001, + 4038,5981,5982,5983,5979,5980,5989,5990,5985,5984, + 5986,39,5144,5141,3544,2140,4067,4186,3193,5509, + 4208,929,5769,5767,5776,5775,5771,5772,5770,5773, + 5774,5777,5768,3236,2269,2,4164,4128,4947,4967, + 3291,2269,3272,3346,3876,5505,2021,803,4252,4230, + 5524,5505,631,617,822,5526,653,3106,681,5505, + 5527,5525,584,5521,5522,5523,39,5144,5141,3544, + 2140,4067,4186,3193,5505,4208,929,5769,5767,5776, + 5775,5771,5772,5770,5773,5774,5777,5768,5505,5505, + 37,4164,4128,5505,5505,5505,5505,5505,5505,5505, + 5505,5505,5505,4252,4230,5524,5505,631,617,822, + 5526,653,3106,681,5505,5527,5525,584,5521,5522, + 5523,5505,5505,5505,5505,5505,1373,5505,5508,39, + 5144,5141,3544,2140,4067,4186,3193,5505,4208,929, + 5769,5767,5776,5775,5771,5772,5770,5773,5774,5777, + 5768,5505,5505,5505,4164,4128,5505,5505,5505,5505, + 5505,5505,5505,5505,5505,5505,4252,4230,5524,5505, + 631,617,822,5526,653,3106,681,5505,5527,5525, + 584,5521,5522,5523,39,5144,5141,3544,2140,4067, + 4186,3193,1793,4208,929,5769,5767,5776,5775,5771, + 5772,5770,5773,5774,5777,5768,5505,5505,5505,4164, + 4128,5505,5505,5505,5505,5505,5505,5505,5505,5505, + 5505,4252,4230,5524,5505,631,617,822,5526,653, + 3106,681,5505,5527,5525,584,5521,5522,5523,5505, + 5505,5505,5505,5505,1373,39,5144,5141,4875,2140, + 4067,4186,3193,5505,4208,929,5769,5767,5776,5775, + 5771,5772,5770,5773,5774,5777,5768,5505,5505,5505, + 4164,4128,5505,5505,5505,5505,5505,5505,5505,5505, + 5505,5505,4252,4230,5524,5505,631,617,822,5526, + 653,3106,681,5505,5527,5525,584,5521,5522,5523, + 39,5144,5141,3544,2140,4067,4186,3193,5505,4208, + 929,5769,5767,5776,5775,5771,5772,5770,5773,5774, + 5777,5768,5505,5505,5505,4164,4128,5505,5505,5505, + 5505,5505,5505,5505,5505,5505,5505,4252,4230,5524, + 5505,631,617,822,5526,653,3106,681,5505,5527, + 5525,584,5521,5522,5523,39,5144,5141,3544,2140, + 4067,4186,3193,5505,4208,929,5769,5767,5776,5775, + 5771,5772,5770,5773,5774,5777,5768,5505,5505,5505, + 4164,4128,5505,5505,5505,5505,5505,5505,5505,5505, + 5505,5505,4252,4230,5524,5505,631,617,822,5526, + 653,3106,681,5505,5527,5525,584,5521,5522,5523, + 5505,5144,5141,5505,5543,5505,5505,5505,5505,5505, + 728,5769,5767,5776,5775,5771,5772,5770,5773,5774, + 5777,5768,5765,5842,5843,5505,5505,5505,5759,5766, + 5762,5738,5764,5763,5760,5761,5739,5505,5505,5505, + 5903,5505,5505,5505,5505,5505,5505,5505,5505,241, + 5318,5314,5505,5322,5505,5505,1263,5904,5905,728, + 5305,5311,5284,5287,5299,5296,5302,5293,5290,5281, + 5308,5260,5254,5251,5505,5505,5505,5278,5257,5269, + 5248,5263,5266,5275,5272,5245,5505,5505,5505,5903, + 32,388,388,5340,388,388,5340,388,5340,5340, + 5505,5505,5505,5505,5505,1263,5904,5905,5505,5505, + 5505,5505,388,388,388,5505,223,5340,388,388, + 388,388,388,388,388,388,388,5769,5767,5776, + 5775,5771,5772,5770,5773,5774,5777,5768,5765,5842, + 5843,5505,5505,5505,5759,5766,5762,5738,5764,5763, + 5760,5761,5739,5340,5505,5505,5505,5505,5505,5505, + 5505,5505,5505,5340 }; }; public final static char termAction[] = TermAction.termAction; @@ -1809,60 +1821,61 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface Asb { public final static char asb[] = {0, - 723,93,45,87,764,670,670,670,670,1105, - 764,774,774,586,774,253,29,255,46,46, - 46,46,46,46,46,46,46,776,782,787, - 784,791,789,796,794,798,797,799,314,800, - 45,29,626,626,626,626,84,824,101,101, - 771,626,496,204,774,774,101,84,204,204, - 195,29,938,625,1020,1107,1042,29,774,776, - 907,907,824,45,46,46,46,46,46,46, + 641,93,45,87,682,631,631,631,631,1105, + 682,888,888,684,888,206,29,208,46,46, + 46,46,46,46,46,46,46,890,896,901, + 898,905,903,910,908,912,911,913,274,914, + 45,29,724,724,724,724,84,768,101,101, + 885,724,456,257,888,888,101,84,257,257, + 248,29,938,723,1020,1107,1042,29,888,890, + 851,851,768,45,46,46,46,46,46,46, 46,46,46,46,46,46,46,46,46,46, 46,46,46,45,45,45,45,45,45,45, - 45,45,45,45,45,46,204,204,934,934, - 934,934,411,204,101,101,1103,1031,1042,311, - 1042,306,1042,499,1042,1026,1105,84,496,496, - 101,670,46,1103,456,547,537,536,415,1049, - 1049,1105,255,496,625,45,82,1019,204,81, - 83,81,204,496,784,784,782,782,782,789, - 789,789,789,787,787,794,791,791,797,796, - 798,1119,799,764,764,764,764,84,84,934, - 933,934,771,84,363,366,308,410,309,1105, - 84,84,411,934,195,496,815,204,549,551, - 84,1020,46,626,780,160,204,1107,84,84, - 83,1020,45,45,45,45,45,764,764,29, - 364,767,366,84,525,505,523,411,311,451, - 84,411,84,204,541,529,540,551,411,82, - 204,780,1103,1019,1107,84,82,204,204,204, - 204,824,824,364,767,660,84,366,1119,309, - 670,413,153,1109,366,525,524,525,525,411, - 451,451,84,84,713,45,538,538,510,510, - 84,545,1103,680,204,84,780,781,780,45, - 160,158,776,1107,204,204,767,766,1020,868, - 311,934,670,81,914,1111,78,764,525,525, - 525,525,84,451,660,658,659,713,45,45, - 551,84,1020,204,549,529,713,1084,780,824, - 46,496,158,767,82,868,868,261,382,82, - 525,525,78,820,46,1119,518,663,84,1103, - 525,525,207,660,46,84,928,551,713,781, - 204,496,821,660,866,980,355,764,309,298, - 868,868,382,82,525,311,1105,1111,46,46, - 1019,78,672,653,208,84,928,204,928,260, - 355,866,676,1105,660,933,670,95,95,821, - 311,9,672,84,764,207,84,1105,1105,84, - 764,921,928,261,868,821,517,820,204,1105, - 84,382,261,382,932,932,936,10,1105,84, - 824,84,84,84,552,921,868,45,216,78, - 821,84,84,382,626,626,936,9,1119,46, - 1119,821,8,764,764,764,10,764,84,322, - 821,821,84,311,204,84,84,203,923,660, - 204,660,311,84,821,933,1,764,1,10, - 1119,10,29,29,27,919,29,821,821,521, - 936,626,923,660,216,821,584,680,10,204, - 78,204,27,355,764,204,936,216,95,204, - 204,1097,10,521,10,821,355,45,10,7, - 659,932,311,311,1099,45,8,824,821,204, - 819,215,81,10,204,821,819,819,10 + 45,45,45,45,45,46,257,257,876,876, + 876,876,371,257,101,101,1103,1031,1042,265, + 1042,260,1042,268,1042,1026,1105,84,456,456, + 101,631,46,1103,416,495,485,484,375,1049, + 1049,1105,208,456,723,45,82,1019,257,81, + 83,81,257,456,898,898,896,896,896,903, + 903,903,903,901,901,908,905,905,911,910, + 912,1119,913,682,682,682,682,84,84,876, + 875,876,885,84,323,326,262,370,263,1105, + 84,84,371,876,248,456,929,257,497,499, + 84,1020,46,724,894,213,257,1107,84,84, + 83,1020,45,45,45,45,45,682,682,29, + 324,883,881,326,84,536,472,534,371,265, + 411,84,371,84,257,489,477,488,499,371, + 82,257,894,1103,1019,1107,84,82,257,257, + 257,257,768,768,324,881,588,84,326,1119, + 263,631,373,153,1109,326,536,535,536,536, + 371,411,411,84,84,756,45,486,486,459, + 459,84,493,1103,591,257,84,894,895,894, + 45,213,158,890,1107,257,257,881,881,1020, + 812,265,876,631,81,858,1111,78,682,536, + 536,536,536,84,411,588,586,587,756,45, + 45,499,84,1020,257,497,477,756,1084,894, + 768,46,456,158,881,880,82,812,812,541, + 342,82,536,536,78,934,46,1119,467,624, + 84,1103,536,536,160,588,46,84,870,499, + 756,895,257,456,881,935,588,810,980,315, + 682,263,578,812,812,342,82,536,265,1105, + 1111,46,46,1019,78,633,751,161,84,870, + 257,870,540,315,810,637,1105,588,875,631, + 95,95,935,265,9,633,84,682,160,84, + 1105,1105,84,682,863,870,541,812,935,466, + 934,257,1105,84,342,541,342,874,874,878, + 10,1105,84,768,84,84,84,500,863,812, + 45,169,78,935,84,84,342,724,724,878, + 9,1119,46,1119,935,8,682,682,682,10, + 682,84,282,935,935,84,265,257,84,84, + 256,865,588,257,588,265,84,935,875,1, + 682,1,10,1119,10,29,29,27,766,29, + 935,935,470,878,724,865,588,169,935,532, + 591,10,257,78,257,27,315,682,257,878, + 169,95,257,257,1097,10,470,10,935,315, + 45,10,7,587,874,265,265,1099,45,8, + 768,935,257,933,168,81,10,257,935,933, + 933,10 }; }; public final static char asb[] = Asb.asb; @@ -1885,23 +1898,19 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP 34,45,17,18,46,35,47,57,49,60, 50,36,51,58,19,22,20,24,21,52, 53,54,39,3,37,38,9,6,25,26, - 41,68,7,1,2,4,10,5,0,91, - 89,25,26,92,93,87,88,55,94,95, - 96,97,98,99,100,101,106,72,90,69, - 107,108,109,110,111,112,113,114,115,116, - 117,71,27,120,68,1,2,9,6,4, - 3,63,70,73,8,0,22,1,2,4, - 102,103,104,0,71,60,37,38,9,6, - 25,26,41,46,3,4,52,53,54,39, - 50,44,49,12,21,11,17,15,16,18, - 19,14,13,20,10,43,47,45,42,51, - 67,8,7,5,1,2,66,65,0,67, - 40,23,13,56,29,14,31,32,15,16, - 33,34,17,18,35,57,36,58,19,22, - 20,24,21,12,11,28,8,3,9,6, - 27,62,64,86,30,61,48,7,1,2, - 5,4,10,59,0,48,4,72,1,2, - 67,8,0,68,72,90,70,117,73,71, + 41,68,7,1,2,4,10,5,0,22, + 1,2,4,102,103,104,0,71,60,37, + 38,9,6,25,26,41,46,3,4,52, + 53,54,39,50,44,49,12,21,11,17, + 15,16,18,19,14,13,20,10,43,47, + 45,42,51,67,8,7,5,1,2,66, + 65,0,91,89,25,26,92,93,87,88, + 55,94,95,96,97,98,99,100,101,106, + 72,90,69,107,108,109,110,111,112,113, + 114,115,116,117,71,27,120,68,1,2, + 9,6,4,3,63,70,73,8,0,48, + 4,72,1,2,67,8,0,4,8,67, + 1,2,0,68,72,90,70,117,73,71, 120,11,12,42,65,13,43,44,14,15, 16,66,45,17,18,46,47,49,60,50, 51,10,19,20,21,52,53,54,39,37, @@ -1919,51 +1928,55 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP 47,45,42,51,12,21,11,17,15,16, 18,19,14,13,20,52,53,54,39,50, 44,49,5,7,4,37,38,9,6,25, - 26,41,46,1,2,117,8,0,4,8, - 67,1,2,0,4,8,72,67,0,74, - 68,72,90,73,67,63,3,8,70,27, - 69,0,4,55,8,72,67,0,9,6, - 7,5,4,1,2,3,63,68,69,70, - 8,73,90,0,5,7,3,63,6,9, - 90,28,11,12,23,13,56,29,30,14, + 26,41,46,1,2,117,8,0,74,68, + 72,90,73,67,63,3,8,70,27,69, + 0,4,8,72,67,0,9,6,7,5, + 4,1,2,3,63,68,69,70,8,73, + 90,0,5,7,3,63,6,9,90,28, + 11,12,23,13,56,29,30,14,31,32, + 15,16,33,34,17,18,35,57,36,10, + 58,19,22,20,24,21,1,2,4,73, + 8,40,0,4,55,8,72,67,0,67, + 40,23,13,56,29,14,31,32,15,16, + 33,34,17,18,35,57,36,58,19,22, + 20,24,21,12,11,28,8,3,9,6, + 27,62,64,86,30,61,48,7,1,2, + 5,4,10,59,0,69,70,71,8,0, + 28,11,12,40,23,13,56,29,30,14, 31,32,15,16,33,34,17,18,35,57, 36,10,58,19,22,20,24,21,1,2, - 4,73,8,40,0,66,65,25,26,6, - 92,93,98,9,99,5,41,69,55,68, - 110,111,107,108,109,115,114,116,88,87, - 112,113,96,97,94,95,100,101,37,38, - 70,89,105,63,3,28,11,12,40,23, - 13,56,29,30,14,31,32,15,16,33, - 34,17,18,35,57,36,10,58,19,20, - 24,21,1,2,4,22,0,69,70,71, - 8,0,72,8,63,3,69,70,27,55, - 0,8,67,70,0,8,67,69,0,28, - 11,12,40,23,13,56,29,30,14,31, - 32,15,16,33,34,17,18,35,57,36, - 10,58,19,22,20,24,21,1,2,4, - 90,0,23,60,24,8,68,90,69,70, - 73,0,11,12,42,65,13,43,44,14, - 15,16,66,7,45,17,18,46,47,49, - 60,50,51,10,19,20,21,52,53,54, - 39,1,2,37,38,9,6,25,26,5, - 41,4,61,3,0,60,23,7,24,5, - 1,2,4,74,67,119,105,37,38,63, - 3,91,89,6,92,93,25,26,88,87, - 55,94,95,96,97,9,98,99,100,68, - 90,73,120,69,107,108,109,110,111,112, - 113,114,115,116,72,117,101,106,71,70, - 27,8,0,8,73,11,12,42,65,13, - 43,44,14,15,16,66,7,45,17,18, - 46,47,49,60,50,51,10,19,20,21, - 52,53,54,1,2,3,37,38,9,6, - 25,26,5,41,4,39,0,64,28,11, - 12,40,23,13,56,29,86,30,14,31, - 32,15,16,33,59,34,17,18,35,57, - 36,10,58,19,62,22,20,24,21,8, - 3,9,6,71,27,61,7,4,48,5, - 1,2,0,8,72,67,74,0,75,0, - 23,24,74,3,72,27,67,60,8,90, - 73,69,70,68,0,118,0,65,66,37, + 4,90,0,72,8,63,3,69,70,27, + 55,0,8,67,70,0,8,67,69,0, + 11,12,42,65,13,43,44,14,15,16, + 66,7,45,17,18,46,47,49,60,50, + 51,10,19,20,21,52,53,54,39,1, + 2,37,38,9,6,25,26,5,41,4, + 61,3,0,66,65,25,26,6,92,93, + 98,9,99,5,41,69,55,68,110,111, + 107,108,109,115,114,116,88,87,112,113, + 96,97,94,95,100,101,37,38,70,89, + 105,63,3,28,11,12,40,23,13,56, + 29,30,14,31,32,15,16,33,34,17, + 18,35,57,36,10,58,19,20,24,21, + 1,2,4,22,0,23,60,24,8,68, + 90,69,70,73,0,75,0,8,73,11, + 12,42,65,13,43,44,14,15,16,66, + 7,45,17,18,46,47,49,60,50,51, + 10,19,20,21,52,53,54,1,2,3, + 37,38,9,6,25,26,5,41,4,39, + 0,64,28,11,12,40,23,13,56,29, + 86,30,14,31,32,15,16,33,59,34, + 17,18,35,57,36,10,58,19,62,22, + 20,24,21,8,3,9,6,71,27,61, + 7,4,48,5,1,2,0,8,72,67, + 74,0,23,24,74,3,72,27,67,60, + 8,90,73,69,70,68,0,118,0,60, + 23,24,7,5,1,2,4,74,67,119, + 105,37,38,63,3,91,89,6,92,93, + 25,26,88,87,55,94,95,96,97,9, + 98,99,100,68,90,73,120,69,107,108, + 109,110,111,112,113,114,115,116,72,117, + 101,106,71,70,27,8,0,65,66,37, 38,9,6,25,26,5,41,46,3,4, 7,52,53,54,39,50,44,49,12,21, 11,17,15,16,18,19,14,13,20,10, @@ -1989,60 +2002,61 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface Nasb { public final static char nasb[] = {0, - 206,12,66,12,12,12,12,12,12,70, - 12,12,12,166,12,196,276,200,66,66, - 228,66,66,66,66,66,66,12,12,12, - 12,12,12,12,12,12,12,12,66,12, - 66,276,36,36,36,36,200,209,136,136, - 44,5,100,282,12,12,136,232,282,282, - 118,1,66,53,27,12,12,276,12,12, - 19,19,209,157,66,66,66,66,66,66, - 66,66,66,66,66,66,66,66,66,66, - 66,66,66,66,66,66,66,66,66,66, - 66,66,66,66,157,66,282,282,12,12, - 12,12,39,282,31,31,143,250,251,182, - 251,80,251,105,251,244,10,200,100,100, - 31,12,66,143,95,117,93,93,12,12, - 12,10,200,100,36,125,196,170,282,195, - 200,195,282,100,12,12,12,12,12,12, + 200,12,58,12,12,12,12,12,12,62, + 12,12,12,209,12,191,218,241,58,58, + 244,58,58,58,58,58,58,12,12,12, + 12,12,12,12,12,12,12,12,58,12, + 58,218,34,34,34,34,241,215,132,132, + 42,5,103,282,12,12,132,248,282,282, + 113,1,58,45,27,12,12,218,12,12, + 19,19,215,168,58,58,58,58,58,58, + 58,58,58,58,58,58,58,58,58,58, + 58,58,58,58,58,58,58,58,58,58, + 58,58,58,58,168,58,282,282,12,12, + 12,12,37,282,29,29,145,262,263,176, + 263,78,263,85,263,256,10,241,103,103, + 29,12,58,145,98,112,40,40,12,12, + 12,10,241,103,34,105,191,108,282,190, + 241,190,282,103,12,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,151,11,12, - 12,12,186,200,12,136,150,70,102,70, - 200,11,12,12,184,100,12,282,160,136, - 200,27,66,36,136,50,282,12,11,200, - 122,27,66,157,157,157,157,12,12,31, - 145,136,257,151,59,59,12,174,182,136, - 174,26,151,282,12,129,12,163,25,151, - 282,83,186,170,12,232,151,282,282,282, - 282,209,209,12,111,48,200,242,12,147, - 12,12,15,264,257,59,59,136,136,26, - 136,233,11,151,136,66,12,12,93,93, - 200,128,143,163,282,151,136,78,12,157, - 186,123,12,12,282,282,136,111,27,136, - 182,12,12,70,136,138,131,12,136,136, - 85,85,151,233,48,12,12,111,66,66, - 136,11,27,282,160,190,136,12,83,209, - 66,100,123,111,196,223,136,235,136,174, - 136,87,192,242,66,12,76,12,200,143, - 85,85,55,48,66,233,136,163,111,78, - 282,100,242,48,12,235,265,12,102,15, - 235,223,163,196,87,217,113,131,66,66, - 108,192,12,70,91,174,42,282,136,181, - 138,12,12,70,48,12,12,17,17,242, - 217,47,12,174,12,72,174,70,70,11, - 12,136,42,235,136,242,29,12,282,70, - 174,163,235,136,12,12,136,154,113,11, - 209,11,174,174,280,111,223,125,64,131, - 242,174,148,163,36,36,61,177,12,66, - 12,242,12,12,12,12,178,12,233,240, - 242,242,233,203,282,11,11,282,136,48, - 282,136,182,148,242,12,13,12,12,178, - 12,178,253,253,212,12,253,242,242,12, - 136,36,42,48,136,242,12,36,178,282, - 131,282,272,136,12,282,61,64,17,282, - 282,136,178,12,178,242,131,157,178,13, - 48,12,203,203,129,66,12,220,242,282, - 89,63,195,178,282,242,89,12,178 + 12,12,12,12,12,12,12,121,11,12, + 12,12,136,241,12,132,120,62,67,62, + 241,11,12,12,134,103,12,282,159,132, + 241,27,58,34,132,64,282,12,11,241, + 117,27,58,168,168,168,168,12,12,29, + 147,147,147,265,121,51,51,12,206,176, + 132,206,26,121,282,12,125,12,162,25, + 121,282,53,136,108,12,248,121,282,282, + 282,282,215,215,12,132,183,241,224,12, + 226,12,12,15,272,265,51,51,132,132, + 26,132,249,11,121,132,58,12,12,40, + 40,241,124,145,162,282,121,132,76,12, + 168,136,118,12,12,282,282,147,213,27, + 132,176,12,12,62,132,140,127,12,132, + 132,83,83,121,249,183,12,12,213,58, + 58,132,11,27,282,159,185,132,12,53, + 215,58,103,118,132,213,191,232,132,251, + 132,206,132,96,187,224,58,12,74,12, + 241,145,83,83,47,183,58,249,132,162, + 213,76,282,103,213,224,183,12,251,273, + 12,67,15,251,232,162,191,96,203,155, + 127,58,58,149,187,12,62,92,206,88, + 282,132,175,140,12,12,62,183,12,12, + 17,17,224,203,182,12,206,12,70,206, + 62,62,11,12,132,88,251,132,224,81, + 12,282,62,206,162,251,132,12,12,132, + 165,155,11,215,11,206,206,280,213,232, + 105,56,127,224,206,227,162,34,34,94, + 171,12,58,12,224,12,12,12,12,172, + 12,249,222,224,224,249,152,282,11,11, + 282,132,183,282,132,176,227,224,12,13, + 12,12,172,12,172,178,178,195,12,178, + 224,224,12,132,34,88,183,132,224,12, + 34,172,282,127,282,237,132,12,282,94, + 56,17,282,282,132,172,12,172,224,127, + 168,172,13,183,12,152,152,125,58,12, + 229,224,282,90,55,190,172,282,224,90, + 12,172 }; }; public final static char nasb[] = Nasb.nasb; @@ -2052,32 +2066,32 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public final static char nasr[] = {0, 3,13,10,9,152,150,121,149,148,5, 2,0,113,0,156,0,108,0,5,2, - 9,10,139,0,136,2,65,0,184,0, - 5,10,9,2,13,4,45,0,136,65, - 0,126,0,4,195,0,4,67,0,4, - 177,0,175,0,5,102,192,0,109,0, - 161,0,67,129,40,10,9,2,13,5, - 0,5,102,168,0,191,0,141,0,153, - 188,0,143,0,110,0,159,0,162,0, - 193,0,75,0,13,2,9,10,5,83, - 0,40,1,0,153,183,0,65,54,0, - 62,0,172,5,171,0,32,94,95,4, - 0,2,115,0,4,29,0,32,95,94, - 64,5,2,9,10,4,0,4,10,9, - 2,64,5,90,54,0,40,104,0,44, - 2,3,0,48,40,179,4,39,0,54, - 5,90,22,4,0,4,45,196,0,65, - 138,137,0,2,57,0,67,39,48,68, - 4,40,0,95,94,54,5,58,0,95, - 94,54,64,58,5,10,9,2,0,2, - 44,0,40,56,0,4,174,0,4,97, - 0,39,4,22,181,0,40,160,0,4, - 178,0,116,4,48,82,0,5,10,9, - 13,3,1,0,4,48,82,84,0,4, - 39,38,0,2,5,121,117,118,119,13, - 87,0,4,45,103,0,4,48,82,102, - 46,5,0,38,5,2,9,10,4,158, - 0,45,4,180,0,4,45,39,0,45, + 9,10,139,0,136,2,65,0,5,10, + 9,2,13,4,45,0,136,65,0,75, + 0,4,195,0,175,0,5,102,192,0, + 109,0,143,0,67,129,40,10,9,2, + 13,5,0,4,177,0,40,1,0,5, + 102,168,0,191,0,141,0,153,188,0, + 184,0,110,0,153,183,0,126,0,162, + 0,193,0,161,0,159,0,13,2,9, + 10,5,83,0,4,29,0,65,138,137, + 0,32,94,95,4,0,2,115,0,44, + 2,3,0,32,95,94,64,5,2,9, + 10,4,0,95,94,49,5,58,0,4, + 10,9,2,64,5,90,49,0,65,49, + 0,40,56,0,172,5,171,0,49,5, + 90,22,4,0,48,40,179,4,39,0, + 67,39,48,68,4,40,0,4,45,103, + 0,4,67,0,95,94,49,64,58,5, + 10,9,2,0,39,4,22,181,0,4, + 174,0,40,160,0,2,57,0,4,45, + 196,0,62,0,4,97,0,4,45,39, + 0,4,39,38,0,40,104,0,4,178, + 0,116,4,48,82,0,45,4,180,0, + 2,44,0,5,10,9,13,3,1,0, + 4,48,82,84,0,2,5,121,117,118, + 119,13,87,0,4,48,82,102,46,5, + 0,38,5,2,9,10,4,158,0,45, 4,32,0 }; }; @@ -2134,18 +2148,18 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface ScopePrefix { public final static char scopePrefix[] = { - 159,584,603,308,535,551,562,573,367,266, - 280,302,315,328,42,291,387,425,167,592, - 478,20,51,71,80,85,90,130,195,297, - 321,336,341,144,272,286,506,27,144,377, - 341,611,27,217,245,1,14,61,76,106, - 346,356,360,443,471,500,527,531,621,625, - 629,97,7,97,405,421,434,455,519,232, - 116,116,434,542,558,569,580,207,489,56, - 56,156,222,225,56,240,261,225,225,56, - 364,468,475,156,56,644,110,350,409,449, - 462,56,350,396,177,104,447,633,640,633, - 640,65,415,137,104,104,250 + 159,585,604,309,536,552,563,574,368,267, + 281,303,316,329,42,292,388,426,167,593, + 479,20,51,71,80,85,90,130,195,298, + 322,337,342,144,273,287,507,27,144,378, + 342,612,27,217,246,1,14,61,76,106, + 347,357,361,444,472,501,528,532,622,626, + 630,97,7,97,406,422,435,456,520,116, + 116,232,435,543,559,570,581,207,490,56, + 56,156,222,225,56,241,262,225,225,56, + 365,469,476,156,56,645,110,351,410,450, + 463,56,351,397,177,104,448,634,641,634, + 641,65,416,137,104,104,251 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2153,18 +2167,18 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface ScopeSuffix { public final static char scopeSuffix[] = { - 18,5,5,135,5,5,5,5,374,135, - 95,135,135,334,48,277,393,431,173,67, - 484,25,25,25,59,59,95,135,200,135, - 326,326,334,149,277,101,511,38,152,382, - 598,616,32,211,211,5,18,5,59,95, - 326,95,95,135,243,5,5,5,5,5, - 243,642,11,101,374,374,374,459,511,236, - 120,125,438,546,546,546,546,211,493,59, - 59,5,5,228,230,243,5,264,264,230, - 95,5,243,5,504,5,113,353,412,452, - 465,523,514,399,180,95,95,635,635,637, - 637,67,417,139,202,187,252 + 18,5,5,135,5,5,5,5,375,135, + 95,135,135,335,48,278,394,432,173,67, + 485,25,25,25,59,59,95,135,200,135, + 327,327,335,149,278,101,512,38,152,383, + 599,617,32,211,211,5,18,5,59,95, + 327,95,95,135,244,5,5,5,5,5, + 244,643,11,101,375,375,375,460,512,120, + 125,236,439,547,547,547,547,211,494,59, + 59,5,5,228,230,244,5,265,265,230, + 95,5,244,5,505,5,113,354,413,453, + 466,524,515,400,180,95,95,636,636,638, + 638,67,418,139,202,187,253 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2173,13 +2187,13 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface ScopeLhs { public final static char scopeLhs[] = { 46,17,17,119,17,17,17,17,71,86, - 47,80,119,118,77,52,71,70,46,17, + 47,80,119,118,77,53,71,70,46,17, 19,3,7,8,168,168,164,117,46,81, - 118,118,120,128,53,47,139,133,128,71, + 118,118,120,128,54,47,139,133,128,71, 17,17,133,96,59,135,74,171,168,164, - 120,182,50,56,143,18,17,17,17,17, - 17,12,113,164,71,70,70,37,139,58, - 130,130,70,17,17,17,17,96,19,172, + 120,182,51,56,143,18,17,17,17,17, + 17,12,113,164,71,70,70,37,139,130, + 130,58,70,17,17,17,17,96,19,172, 168,184,94,101,61,75,60,158,76,120, 72,144,143,175,139,16,164,120,103,69, 21,139,139,71,46,164,66,137,44,137, @@ -2197,8 +2211,8 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP 1,1,1,71,1,1,4,68,70,27, 1,1,68,73,73,73,118,73,1,27, 1,27,27,71,117,73,73,73,73,73, - 117,1,73,1,73,73,73,72,4,6, - 1,1,73,68,68,68,68,73,3,1, + 117,1,73,1,73,73,73,72,4,1, + 1,6,73,68,68,68,68,73,3,1, 1,73,73,3,1,117,73,1,1,1, 27,73,117,73,5,73,1,48,69,72, 73,1,48,75,74,27,27,4,4,4, @@ -2216,8 +2230,8 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP 154,154,154,313,98,96,137,50,313,106, 250,250,50,146,66,26,106,30,54,82, 154,22,98,33,63,250,250,250,250,250, - 250,230,6,82,106,106,106,282,137,121, - 154,154,106,250,250,250,250,146,250,30, + 250,230,6,82,106,106,106,282,137,154, + 154,121,106,250,250,250,250,146,250,30, 54,24,146,148,66,142,66,60,71,154, 106,57,63,140,137,250,82,154,1,106, 251,137,137,106,96,82,11,118,158,118, @@ -2252,48 +2266,48 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP 0,203,0,0,215,0,227,126,3,0, 126,0,0,0,0,0,227,126,3,216, 0,223,3,0,212,126,0,208,0,146, - 0,176,166,127,0,10,0,0,0,214, - 63,0,125,0,227,126,3,182,0,182, - 0,2,0,0,126,0,0,0,0,0, - 198,3,0,201,0,236,126,162,39,30, - 0,179,127,59,62,0,196,128,0,128, - 179,127,278,62,0,179,127,278,62,0, - 179,127,69,123,59,0,236,126,162,59, - 0,236,126,162,226,59,0,276,126,162, - 123,305,56,0,276,126,162,305,56,0, - 179,127,275,56,0,135,0,187,179,127, - 275,243,0,136,0,179,127,275,243,0, - 187,166,127,10,0,166,127,10,0,166, - 127,0,93,136,0,268,126,144,0,268, - 126,170,0,161,84,0,300,160,302,303, - 3,81,0,126,171,0,302,303,3,81, - 0,128,0,126,171,0,161,3,75,190, - 80,0,126,128,0,190,80,0,108,2, - 131,126,128,0,225,3,75,0,198,167, - 0,33,169,0,167,0,175,33,169,0, - 225,3,85,0,190,154,225,3,83,0, - 62,171,0,225,3,83,0,126,171,62, - 171,0,301,126,162,0,161,0,214,77, - 0,30,171,0,161,106,158,0,30,169, - 0,177,3,0,126,149,0,219,3,0, - 214,63,265,0,161,63,0,177,3,297, - 66,127,0,126,0,0,0,0,297,66, - 127,0,2,145,126,0,0,0,0,177, - 3,46,0,147,0,125,48,166,127,0, - 31,147,0,93,136,31,147,0,220,179, - 127,0,146,31,147,0,177,3,51,0, - 161,3,51,0,161,3,68,177,55,42, - 0,177,55,42,0,20,2,131,126,0, - 161,3,68,177,55,45,0,177,55,45, - 0,161,3,68,177,55,47,0,177,55, - 47,0,161,3,68,177,55,43,0,177, - 55,43,0,219,3,125,187,166,127,10, - 0,125,187,166,127,10,0,136,2,0, - 126,0,219,3,124,258,166,127,10,0, - 258,166,127,10,0,135,2,0,126,0, - 219,3,135,0,219,3,139,0,161,63, - 139,0,260,0,31,0,31,139,0,165, - 0,134,0,161,3,0 + 0,171,166,127,0,10,0,0,0,0, + 214,63,0,125,0,227,126,3,182,0, + 182,0,2,0,0,126,0,0,0,0, + 0,198,3,0,201,0,236,126,162,39, + 30,0,179,127,59,62,0,196,128,0, + 128,179,127,278,62,0,179,127,278,62, + 0,179,127,69,123,59,0,236,126,162, + 59,0,236,126,162,226,59,0,276,126, + 162,123,305,56,0,276,126,162,305,56, + 0,179,127,275,56,0,135,0,187,179, + 127,275,243,0,136,0,179,127,275,243, + 0,187,166,127,10,0,166,127,10,0, + 166,127,0,93,136,0,268,126,144,0, + 268,126,170,0,161,84,0,300,160,302, + 303,3,81,0,126,171,0,302,303,3, + 81,0,128,0,126,171,0,161,3,75, + 190,80,0,126,128,0,190,80,0,108, + 2,131,126,128,0,225,3,75,0,198, + 167,0,33,169,0,167,0,175,33,169, + 0,225,3,85,0,190,154,225,3,83, + 0,62,171,0,225,3,83,0,126,171, + 62,171,0,301,126,162,0,161,0,214, + 77,0,30,171,0,161,106,158,0,30, + 169,0,177,3,0,126,149,0,219,3, + 0,214,63,265,0,161,63,0,177,3, + 297,66,127,0,126,0,0,0,0,297, + 66,127,0,2,145,126,0,0,0,0, + 177,3,46,0,147,0,125,48,166,127, + 0,31,147,0,93,136,31,147,0,220, + 179,127,0,146,31,147,0,177,3,51, + 0,161,3,51,0,161,3,68,177,55, + 42,0,177,55,42,0,20,2,131,126, + 0,161,3,68,177,55,45,0,177,55, + 45,0,161,3,68,177,55,47,0,177, + 55,47,0,161,3,68,177,55,43,0, + 177,55,43,0,219,3,125,187,166,127, + 10,0,125,187,166,127,10,0,136,2, + 0,126,0,219,3,124,258,166,127,10, + 0,258,166,127,10,0,135,2,0,126, + 0,219,3,135,0,219,3,139,0,161, + 63,139,0,260,0,31,0,31,139,0, + 165,0,134,0,161,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2301,34 +2315,34 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface ScopeState { public final static char scopeState[] = {0, - 4822,4917,4898,4632,0,2741,1842,559,966,0, - 3682,3627,3568,3460,3406,3352,3298,3244,3190,2899, - 2845,3562,0,681,0,1535,1492,740,0,2544, - 2434,0,3682,3627,3375,3040,3568,3460,3406,3352, - 3298,3244,3039,3190,2899,2845,3668,3650,0,3871, - 3196,3854,0,1089,925,0,1876,1173,0,4720, - 4700,0,2707,1219,0,4550,4720,4537,2998,4700, - 2974,3535,4615,2801,2391,3949,4504,2633,2556,2517, - 0,4736,4637,0,4736,4637,3969,4450,4440,3862, - 4357,4347,4337,3852,0,4736,4637,3969,4450,4440, - 3862,4357,4347,4337,3852,3682,3627,3568,3460,3406, - 3352,3298,3244,3190,2899,2845,0,3377,2879,0, - 2391,4550,3571,4537,2998,3412,2633,3863,3379,3355, - 2851,2988,820,3267,1034,0,668,580,0,879, - 0,2499,2232,2059,1930,2998,2988,2974,2556,2517, - 2437,860,0,4569,537,2989,0,4768,4764,4753, - 4742,3995,3980,3669,3520,3447,3339,4892,3231,2886, - 4888,4789,3999,2814,3579,2551,2539,741,3549,3011, - 0,3026,3019,4768,4764,4753,2961,2868,4742,2323, - 3995,3980,3669,3520,3447,3221,3111,3100,3339,2698, - 4892,2680,2624,1281,1138,3231,2886,931,2471,4888, - 3651,4789,3213,3999,2814,3579,736,2551,2539,741, - 4569,627,2989,3549,3011,2456,2312,2228,2140,803, - 2974,3535,4615,2801,2391,4550,3949,4720,4537,2998, - 4504,2633,2556,4700,2517,1268,939,668,580,3115, - 4315,4293,1187,2278,2360,2328,2477,2404,595,3168, - 3142,2818,2746,2719,2653,3830,3806,3782,3757,2773, - 4271,4249,4227,4205,4183,4161,4139,4117,4086,4056, + 3883,4961,4941,2909,0,1541,2061,559,1842,0, + 3668,3613,3558,3456,3401,3346,3291,3236,3181,2889, + 2834,3007,0,1221,0,1535,1492,1449,0,2845, + 2665,0,3668,3613,3245,3030,3558,3456,3401,3346, + 3291,3236,2637,3181,2889,2834,4460,3031,0,3559, + 3190,2930,0,1089,925,0,2438,1173,0,4740, + 4715,0,1219,984,0,4616,4740,4603,2989,4715, + 2964,3531,4629,4038,2391,3960,4584,2595,2556,2517, + 0,4758,4691,0,4758,4691,3980,4497,4487,3873, + 4404,4394,4384,3863,0,4758,4691,3980,4497,4487, + 3873,4404,4394,4384,3863,3668,3613,3558,3456,3401, + 3346,3291,3236,3181,2889,2834,0,2627,2434,0, + 2391,4616,3640,4603,2989,4760,2595,4649,3588,3268, + 2753,2585,820,3433,3373,0,668,580,0,879, + 0,2232,2144,959,780,2989,2585,2964,2556,2517, + 2437,860,0,4668,537,2980,0,4889,4843,4825, + 4819,4813,3600,3517,3513,3443,3333,4954,3223,3032, + 4916,4909,4905,2506,4893,2876,2639,741,4116,3973, + 0,3552,3424,4889,4843,4825,2867,2442,4819,2323, + 4813,3600,3517,3513,3443,3260,2839,2687,3333,2645, + 4954,2621,2551,1281,1138,3223,3032,872,2471,4916, + 2541,4909,3205,4905,2506,4893,736,2876,2639,741, + 4668,627,2980,4116,3973,2456,2312,2228,2140,803, + 2964,3531,4629,4038,2391,4616,3960,4740,4603,2989, + 4584,2595,2556,4715,2517,1268,939,668,580,3106, + 4362,4340,1187,2278,2360,2328,2477,2404,595,3159, + 3133,2807,2780,2725,2698,3841,3817,3793,3768,3743, + 4318,4296,4274,4252,4230,4208,4186,4164,4128,4067, 631,2021,2240,2190,2152,2102,2064,1050,1330,1285, 1225,882,1971,1933,826,746,690,1890,1847,1804, 1761,1718,1675,1632,1589,1546,1503,1460,537,1417, @@ -2358,42 +2372,43 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP 127,48,219,161,146,146,145,145,145,148, 148,148,148,147,147,150,149,149,153,152, 155,161,157,68,68,68,68,187,258,253, - 256,253,212,127,176,162,310,275,305,275, + 256,253,212,127,171,162,310,275,305,275, 127,179,166,253,212,214,158,223,126,3, 127,166,205,3,298,167,151,260,187,127, 179,166,72,3,3,3,3,125,124,70, - 166,6,126,166,230,125,124,127,123,162, - 127,166,48,227,228,144,229,126,166,48, - 177,126,126,4,220,5,48,161,161,161, - 161,3,3,176,126,309,127,168,224,59, - 48,204,62,170,312,125,124,231,231,179, - 162,126,179,187,154,69,223,198,186,182, - 127,3,126,70,227,187,154,262,265,63, - 180,4,123,125,219,219,6,184,166,162, - 226,55,48,278,280,126,3,182,231,231, - 126,126,187,126,276,123,277,126,69,69, - 3,179,166,198,126,212,154,125,126,3, - 63,161,4,126,187,126,162,68,55,127, - 74,126,212,311,72,289,198,124,127,126, - 126,126,72,276,69,70,221,126,126,262, - 219,214,128,236,30,48,170,64,59,62, - 238,126,126,179,126,281,72,70,72,69, - 166,212,314,224,22,127,126,227,221,39, - 126,3,123,59,236,295,48,10,40,128, - 281,162,293,127,294,70,127,22,315,179, - 60,154,126,126,162,268,247,279,39,69, - 127,70,68,55,230,230,282,126,70,179, - 3,179,127,127,3,126,126,3,69,70, - 154,127,179,126,69,69,126,301,79,77, - 1,161,8,85,83,81,80,75,82,84, - 78,76,59,74,219,179,179,320,221,236, - 151,162,251,179,226,295,283,118,8,72, - 214,72,3,3,3,190,3,123,161,123, - 178,70,126,126,162,226,68,3,72,225, - 167,225,303,144,75,225,126,126,40,90, - 319,167,154,198,154,302,126,3,154,283, - 308,230,154,154,126,69,190,160,268,161, - 189,70,69,121,300,154,189,8,154 + 166,9,6,126,166,230,125,124,127,123, + 162,127,166,48,227,228,144,229,126,166, + 48,177,126,126,4,220,5,48,161,161, + 161,161,3,3,171,171,309,127,168,224, + 59,48,204,62,170,312,125,124,231,231, + 179,162,126,179,187,154,69,223,198,186, + 182,127,3,126,70,227,187,154,262,265, + 63,180,4,123,125,219,219,6,126,166, + 162,226,55,48,278,280,126,3,182,231, + 231,126,126,187,126,276,123,277,126,69, + 69,3,179,166,198,126,212,154,125,126, + 3,63,161,4,171,184,187,126,162,68, + 55,127,74,126,212,311,72,289,198,124, + 127,126,126,126,72,276,69,70,221,126, + 126,262,219,214,126,128,236,30,48,170, + 64,59,62,238,126,126,179,126,281,72, + 70,72,69,166,212,314,224,22,127,126, + 227,221,39,126,3,123,59,236,295,48, + 10,40,128,281,162,293,127,294,70,127, + 22,315,179,60,154,126,126,162,268,247, + 279,39,69,127,70,68,55,230,230,282, + 126,70,179,3,179,127,127,3,126,126, + 3,69,70,154,127,179,126,69,69,126, + 301,79,77,1,161,8,85,83,81,80, + 75,82,84,78,76,59,74,219,179,179, + 320,221,236,151,162,251,179,226,295,283, + 118,8,72,214,72,3,3,3,190,3, + 123,161,123,178,70,126,126,162,226,68, + 3,72,225,167,225,303,144,75,225,126, + 126,40,90,319,167,154,198,154,302,126, + 3,154,283,308,230,154,154,126,69,190, + 160,268,161,189,70,69,121,300,154,189, + 8,154 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2668,20 +2683,20 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 539, + NUM_STATES = 542, NT_OFFSET = 122, - LA_STATE_OFFSET = 5980, + LA_STATE_OFFSET = 6041, MAX_LA = 2147483647, NUM_RULES = 536, NUM_NONTERMINALS = 202, NUM_SYMBOLS = 324, SEGMENT_SIZE = 8192, - START_STATE = 3206, + START_STATE = 3022, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 120, EOLT_SYMBOL = 120, - ACCEPT_ACTION = 5079, - ERROR_ACTION = 5444; + ACCEPT_ACTION = 5140, + ERROR_ACTION = 5505; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParser.java index f5dd2ddd43b..15055126ff7 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParser.java @@ -17,20 +17,29 @@ import lpg.lpgjavaruntime.*; import java.util.*; import org.eclipse.cdt.core.dom.ast.*; +import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter; +import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap; import org.eclipse.cdt.core.dom.lrparser.IParser; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.ITokenCollector; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack; +import org.eclipse.cdt.core.parser.IScanner; +import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider; +import org.eclipse.cdt.core.index.IIndex; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; +import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser; import org.eclipse.cdt.core.dom.ast.cpp.*; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPNodeFactory; import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPBuildASTParserAction; import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPSecondaryParserFactory; -public class CPPNoCastExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser< IASTExpression > +public class CPPNoCastExpressionParser extends PrsStream implements RuleAction, ITokenStream, + ITokenCollector, IParser< IASTExpression > + , ISecondaryParser< IASTExpression > { private static ParseTable prs = new CPPNoCastExpressionParserprs(); private FixedBacktrackingParser btParser; @@ -168,7 +177,11 @@ public class CPPNoCastExpressionParser extends PrsStream implements RuleAction , private CPPBuildASTParserAction action; private IASTCompletionNode compNode; -public CPPNoCastExpressionParser() { // constructor + +public CPPNoCastExpressionParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Set options) { + initActions(options); + action.initializeTranslationUnit(scanner, builtinBindingsProvider, index); + CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap); } private void initActions(Set options) { @@ -187,10 +200,9 @@ public void addToken(IToken token) { } -public IASTExpression parse(Set options) { +public IASTExpression parse() { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(options); final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse @@ -233,12 +245,12 @@ public void setTokens(List tokens) { addToken(new Token(null, 0, 0, CPPNoCastExpressionParsersym.TK_EOF_TOKEN)); } -public CPPNoCastExpressionParser(IParserActionTokenProvider parser) { // constructor +public CPPNoCastExpressionParser(ITokenStream parser, Set options) { // constructor for creating secondary parser + initActions(options); tokenMap = new TokenMap(CPPNoCastExpressionParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols()); } - public void ruleAction(int ruleNumber) { switch (ruleNumber) @@ -1415,19 +1427,19 @@ public CPPNoCastExpressionParser(IParserActionTokenProvider parser) { // constr } // - // Rule 327: ptr_operator ::= pointer_hook * cv_qualifier_seq_opt + // Rule 327: ptr_operator ::= pointer_hook * pointer_hook cv_qualifier_seq_opt // case 327: { action. consumePointer(); break; } // - // Rule 328: ptr_operator ::= pointer_hook & + // Rule 328: ptr_operator ::= pointer_hook & pointer_hook // case 328: { action. consumeReferenceOperator(); break; } // - // Rule 329: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * cv_qualifier_seq_opt + // Rule 329: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook cv_qualifier_seq_opt // case 329: { action. consumePointerToMember(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParserprs.java index bacdda50ccb..85de5131270 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParserprs.java @@ -69,7 +69,7 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 3,1,1,1,6,5,7,6,1,0, 6,5,6,4,1,3,1,0,1,1, 2,1,1,3,1,3,1,1,1,1, - 3,9,2,2,3,2,4,2,6,0, + 3,9,2,2,3,2,5,3,7,0, 1,2,2,1,0,1,1,1,3,1, 2,1,1,2,3,1,1,1,3,2, 1,2,2,9,8,2,1,3,1,3, @@ -94,7 +94,7 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,-54,0, 0,0,0,0,-49,0,0,0,0,0, - 0,0,0,-396,0,0,0,0,-68,0, + 0,0,0,-399,0,0,0,0,-68,0, 0,0,-4,0,0,0,0,0,0,0, 0,0,-5,-85,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -102,374 +102,380 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,0,0,0,0,-58,0,0,0,-76, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-244,0,0, + 0,0,0,0,0,0,0,-245,0,0, -176,0,0,0,-7,0,-69,0,0,0, - -123,0,0,0,0,0,0,0,0,-8, + -224,0,0,0,0,0,0,0,0,-310, 0,0,0,0,0,0,0,0,-114,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-234,0,0,0,0,0,-50,-9,0, - 0,0,-112,0,-16,0,0,0,-53,-62, + 0,-8,0,0,0,0,-235,-10,-9,0, + 0,0,0,0,-16,0,0,0,-53,-112, 0,0,0,0,0,0,-115,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -11,0,0,0,-126,0,0,0,0,0, - -12,0,-136,0,-170,0,0,0,-51,0, - 0,-121,0,0,0,0,-531,0,0,0, - -379,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-130,0,0,0,0,0, + -186,0,0,0,0,0,-234,0,0,0, + 0,0,-188,0,-126,0,0,0,-50,0, + 0,-121,0,0,0,0,-534,0,0,0, + -11,0,0,0,0,0,0,0,0,0, + 0,0,0,-279,-130,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-10,0,0,0,0,0,0,0, - -222,0,0,0,-116,0,-462,0,-165,0, + 0,0,0,-291,0,0,0,0,0,0, + 0,0,-170,0,0,0,0,0,0,0, + -223,0,0,0,-57,0,0,0,0,-219, 0,0,-218,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-133,0,0,0,0,0,0,0,0, - -375,0,0,0,0,0,-59,0,0,0, - 0,0,0,-186,0,-13,0,-253,0,0, - -138,0,0,0,-383,0,0,0,0,0, - 0,0,0,0,0,0,0,-340,0,0, - -506,0,0,0,0,0,0,0,0,0, + 0,-133,0,0,0,0,-12,0,0,0, + -378,0,0,0,0,0,0,0,0,0, + -411,0,0,0,0,-13,0,-297,0,0, + -138,0,0,0,0,0,0,0,0,0, + 0,0,0,-15,0,0,0,-342,0,-255, + -509,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-15,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-233,0, - 0,0,0,-530,0,0,0,-61,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-28,0,0,0, - 0,0,-202,0,0,0,0,0,0,0, - 0,-187,0,0,0,0,0,-318,0,0, - 0,-29,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-57,0,0,0, - 0,0,0,0,0,-457,0,0,0,0, - 0,0,0,-437,0,0,0,0,0,0, + 0,0,0,-386,0,0,0,0,0,0, + 0,0,0,-181,0,0,0,0,0,0, + 0,0,0,-533,0,0,0,-61,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-277,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-17,0,0,0, + 0,0,-382,0,0,0,0,0,0,0, + 0,-28,0,0,0,0,-119,-319,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-51,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,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,-17,-184,-29,0, 0,0,-3,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-119,0,0,0,0,0,0,0,0, - 0,-219,0,0,0,-441,0,0,-282,0, - 0,0,-345,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-223,0,0, - 0,0,0,0,0,0,-230,0,0,0, - 0,-322,0,0,0,0,0,0,0,0, + 0,-321,0,0,0,-444,0,0,-283,0, + 0,0,-347,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-30,0,0,0,0,0, - -188,0,0,0,0,0,0,0,0,-296, - -261,-31,0,0,-140,0,0,0,-32,0, + 0,-220,0,0,0,0,0,-225,0,0, + 0,0,0,0,0,0,-231,0,0,0, + 0,-323,0,0,0,-30,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-31,0,0,0,0,0, + 0,0,0,0,0,-62,0,0,0,-322, + -262,0,0,0,-140,0,0,0,-32,0, 0,0,0,0,0,0,0,0,-33,0, - -34,0,-323,0,0,0,-35,0,0,0, + -221,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,0,0,0, 0,-196,0,0,0,0,0,0,0,0, - -128,0,-529,0,0,-39,0,0,0,-36, + 0,0,-532,0,0,-39,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-415,0,0,0,0,0, - 0,0,0,-177,0,0,0,0,-373,-41, + 0,0,0,0,-418,0,0,0,0,0, + 0,0,0,-177,0,0,0,0,-376,-41, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-254,0,0,0,0,0,-37,0, - 0,0,-104,0,0,0,0,-38,-105,0, + 0,0,-123,0,0,0,0,0,-34,0, + 0,0,-59,-195,0,0,0,0,-104,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,0,0,0,-113,-166,0,0,0, - -271,0,0,0,0,-92,0,0,0,0, + 0,0,0,0,0,-105,-165,0,0,0, + -272,0,0,0,0,-92,0,0,0,-35, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-184, - 0,0,0,0,-40,-285,0,0,-93,0, - 0,0,-55,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-209, + 0,0,0,0,-36,-166,0,0,-93,0, + 0,0,-37,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-137,-195,0,0,0,0,0,0,0, - 0,-94,0,0,0,-56,0,0,0,0, + 0,-113,-229,0,0,0,0,0,0,0, + 0,-94,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-141,-209,0,0,0,0, - -197,-63,0,0,-95,0,0,0,-64,0, + 0,0,0,0,-137,0,0,0,0,-38, + -141,-40,0,0,-95,0,0,0,-55,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-207,-220,0, - 0,0,0,-256,-66,0,0,-96,0,0, - 0,-67,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-228,0,0,0, - 0,0,0,0,0,-108,-232,-109,0,0, - -97,0,0,0,-278,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-313,0,0,0,0,0,0, - 0,0,0,-239,-266,0,0,0,0,-246, - -110,0,0,-98,0,0,0,-111,0,0, + 0,0,0,0,0,0,0,-197,-254,0, + 0,0,0,-207,-56,0,0,-96,0,0, + 0,-63,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-247,-267,0,0, - 0,0,-248,-131,0,0,-99,0,0,0, + -233,-267,0,0,0,0,-240,-64,0,0, + -97,0,0,0,-66,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -269,0,0,0,0,-461,0,0,0,-100, - 0,0,0,-320,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-274,0,0,0,0,0,-355,0, - 0,0,-249,-273,0,0,0,0,-342,-286, - 0,0,-101,0,0,0,-309,0,0,0, + 0,0,0,-247,-268,0,0,0,0,-248, + -67,0,0,-98,0,0,0,-108,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-281,0,0,0,0,0,0,0,0, - -354,0,-143,0,0,-163,0,0,0,-361, + 0,0,0,0,0,0,-249,-286,0,0, + 0,-257,-250,-109,0,0,-99,0,0,0, + -110,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -270,0,0,0,0,-460,0,0,0,-100, + 0,0,0,-111,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-275,0, + 0,0,-292,-274,0,0,0,0,-131,-287, + 0,0,-101,0,0,0,-311,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-282,0,0,0,0,-299,0,0,0, + 0,-202,-143,0,0,-163,0,0,0,-344, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,-144,0, - 0,0,0,0,0,0,0,0,0,-291, + 0,0,0,0,0,0,0,0,-145,-294, 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,-211,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-385,-411,0,0,0,0,-71,0,0, - -475,0,0,-524,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-145,0,0, - 0,0,-293,-146,0,0,-343,0,0,0, - -129,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-398, - 0,0,0,0,0,0,0,0,0,-491, - -132,0,0,0,-353,0,0,0,-518,0, + 0,-388,-187,0,0,0,-304,-71,0,0, + 0,0,0,-527,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-364,0,0, + 0,-356,0,-146,0,0,-345,0,0,0, + -128,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-401, + 0,0,0,0,0,0,0,0,0,-414, + -494,0,0,0,-355,0,0,0,-147,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-148,0,0,0,0,-129,0, + 0,0,-135,0,0,0,0,-228,0,0, + 0,0,0,0,-380,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-417,0,0, + 0,0,0,0,0,0,0,0,-132,0, + 0,0,-381,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-135,0,0,0,0,0,0,0, - 0,0,0,0,-377,0,0,0,0,0, + -335,0,0,0,0,0,0,0,0,0, + 0,-149,-451,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-414,0,0, - 0,0,0,0,0,0,0,-147,-142,0, - 0,0,-378,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-205,0,0,0, - -333,0,0,0,0,-227,0,0,0,0, - 0,-148,-448,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-439,0,0,0,0, - 0,0,0,0,0,0,-450,0,0,0, + 0,0,0,0,0,-296,0,0,0,0, + 0,0,0,0,0,-150,-142,0,0,0, -103,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-149,0,0,-372,0,0,0, - -150,-297,0,0,0,0,0,-268,0,0, + 0,0,0,-205,0,0,0,0,0,-308, + 0,0,0,0,0,0,-375,0,0,0, + -464,0,0,0,0,0,0,-269,0,0, -90,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-224,0,0,0,0,0,-299, + 0,0,0,-211,0,0,0,0,0,0, 0,0,0,-88,0,0,0,-151,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-89,0,0,0,0, + 0,0,0,0,0,-89,0,0,0,-152, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-152,0, - 0,0,0,0,-153,0,-389,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-153,0,-392,0,0,0, 0,0,0,0,0,0,0,0,0,-86, - 0,0,0,-535,0,0,0,0,0,0, + 0,0,0,-154,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-18,0,0, - 0,-294,-164,-264,-154,-265,0,-397,0,0, - 0,-321,-117,-316,0,0,0,0,-155,0, - 0,-427,0,0,-156,0,0,-231,0,0, - 0,0,0,-157,0,0,-201,0,0,0, + 0,0,-295,0,0,0,0,-185,0,0, + 0,-328,-164,-155,-156,0,0,-232,0,0, + 0,-400,0,0,0,0,0,0,-157,0, + 0,-430,0,0,-158,0,0,-238,0,0, + 0,0,0,-159,0,0,-201,0,0,0, 0,0,-87,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-158,0,0,0,0, - 0,-326,-106,0,0,-118,0,0,-159,0, - 0,0,-241,0,0,0,0,0,0,0, + 0,0,0,0,0,-265,0,0,0,0, + 0,-298,-160,-18,0,0,0,0,-351,0, + 0,0,-242,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-259, + 0,0,0,0,-161,0,-134,0,-529,-300, + 0,-106,0,0,-309,0,0,0,0,0, + -314,-289,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-371,0, + -167,0,0,0,-48,0,0,0,0,0, + -204,0,-266,-168,0,0,-169,0,0,-320, + -305,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-359, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-319,-127,0,0,0,-235, - 0,0,0,0,0,0,-139,0,0,0, - -160,-288,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-310,0, - -102,0,0,0,0,0,0,0,0,0, - 0,0,-161,0,0,-349,0,0,0,0, + -43,0,0,0,0,-303,0,0,-325,0, + 0,-358,0,0,0,0,0,0,0,0, + -442,-172,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-244,-70,-331,-361, + 0,0,0,0,0,0,0,-239,0,0, 0,0,0,0,0,0,0,0,0,0, - -167,-350,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-295,0,-120,-302, - 0,0,0,0,0,-357,0,0,-304,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-258,0,0,0,0,0,0,-79,0, + 0,-118,0,-327,-271,0,0,-246,0,0, + 0,0,0,-79,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-483,0,0,0,0,0,0,0,0, - 0,0,0,-507,0,0,0,0,0,0, - -168,0,0,-368,0,0,0,0,-298,-303, - 0,-169,0,0,0,0,0,0,0,0, - 0,0,0,-172,-80,0,0,0,0,0, + -80,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-173, + 0,-475,0,0,0,0,0,0,-370,0, + 0,0,0,0,0,0,0,-174,0,0, + 0,-273,0,0,0,-81,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-81,0,0,0,0,0,0,0,0, + 0,0,-82,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-173,0,0,0,-74,0, - 0,0,-174,0,0,0,0,0,0,0, + 0,0,0,0,0,-429,0,0,0,0, + -478,-175,-190,0,0,0,-222,-178,0,0, + 0,0,-353,-179,-354,-44,-423,0,0,0, + 0,-116,-474,-180,0,0,0,-403,-136,0, + -183,0,0,0,0,0,0,-191,0,0, + -333,0,0,0,0,0,0,0,0,0, + 0,-449,0,0,0,0,-293,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-352,-438,0,0, + 0,-192,0,-365,0,-326,0,0,0,0, + 0,0,-198,0,0,0,0,0,0,0, + 0,0,-521,0,0,-313,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -367,0,0,-82,0,0,0,0,0,0, + -385,0,-337,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-526,0,0,0, + 0,0,0,0,0,0,0,0,0,-206, + 0,-52,0,0,0,-352,0,-216,0,0, + -330,0,0,0,0,0,0,0,0,0, + 0,0,0,-339,-117,0,0,0,-486,0, + 0,-217,0,0,0,0,-120,0,-226,-237, + 0,-199,0,0,0,0,0,0,-241,0, + 0,0,-377,0,-1,-395,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-426,0,0,0, - 0,-208,-351,-459,-243,0,0,0,0,0, - 0,-400,0,0,-175,0,0,0,0,0, - 0,0,-307,0,0,0,0,0,-327,-199, - 0,0,0,0,0,0,0,-408,0,0, + 0,0,-14,0,0,0,0,0,-243,0, 0,0,0,0,0,0,0,0,0,0, - -446,0,-308,-324,0,0,0,0,-178,0, - -179,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-180,-270,0,0,0, - 0,0,0,-237,0,0,0,-183,0,0, - 0,0,0,-312,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-428,0,0,0,0,0,0,0, - 0,0,0,0,0,-523,0,0,0,0, - 0,0,0,0,0,0,0,0,-356,-204, - -52,0,0,0,0,0,0,-191,-386,-329, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-47,0,0,0,-238,0,0,0, - 0,0,-14,-192,0,0,0,-430,0,0, - 0,0,-181,-417,0,0,0,0,0,0, - -463,-198,-466,0,0,0,0,0,0,-382, + 0,-409,0,0,0,0,0,-253,0,0, + -510,0,0,0,0,0,0,0,-258,0, + 0,0,0,0,-260,0,0,0,0,0, + 0,0,0,0,0,0,-448,-19,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-206,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-330,0,-216, - 0,0,0,0,0,0,-217,0,0,-245, - 0,0,0,-272,0,0,0,0,0,0, - 0,0,-292,0,0,0,-19,0,0,0, + 0,0,0,0,-83,0,0,0,-122,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-261,0,0, + -84,0,0,0,-453,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-458,0,0,-276,0,0,0, + 0,-439,0,-341,-264,0,-280,0,0,0, + 0,-360,0,-251,-410,0,0,0,0,0, + -281,-389,0,-312,0,0,0,0,-284,0, + 0,0,0,0,-45,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-481, + 0,0,0,0,0,-317,0,0,0,0, + -420,0,0,0,0,0,0,0,-285,-42, + -390,-374,0,0,0,0,-391,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -301,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-483,0,-102,0,0, + 0,0,-302,-508,0,0,0,0,0,0, + 0,0,0,0,-396,-504,0,-445,0,0, + -466,0,-307,-413,0,-124,0,0,-127,0, + 0,0,-421,0,0,0,0,0,0,-315, + 0,0,0,0,0,0,0,0,0,0, + 0,-500,0,0,0,0,-316,0,0,-471, + 0,0,0,0,0,0,0,0,0,0, + -334,0,0,-332,0,-431,0,0,0,-416, + 0,0,-346,0,0,0,-357,0,0,0, + 0,0,-499,0,0,-469,0,0,0,0, + -462,0,0,0,0,0,0,-514,0,0, + -348,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-461,0,-366, + 0,0,0,-236,0,-425,0,0,0,0, + -139,0,0,0,-463,0,0,0,-46,0, + 0,-465,0,0,0,0,0,0,0,0, + 0,0,0,-516,0,0,0,0,-212,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-428,0,-495,-369,0, + 0,0,0,0,-538,0,0,0,0,-384, + -470,0,0,0,0,0,0,0,-473,0, + 0,0,0,0,0,0,0,0,0,-171, + 0,0,0,-227,0,0,0,0,-402,0, + 0,0,0,0,0,0,0,0,-518,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-484,-213,0,0,0,0,0,-433,0, + 0,0,0,0,-393,-520,0,0,0,0, + 0,0,-492,-394,0,0,0,-472,-496,0, + 0,0,0,0,-397,-398,-524,-525,0,0, + 0,0,0,-404,0,-406,0,0,0,0, + -412,0,0,0,0,0,-47,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-230,0,0,0,-501,0,0,-535,-419, + -426,0,0,0,0,0,0,0,0,0, + 0,0,0,-505,-252,-427,-450,0,0,0, + 0,0,-476,-489,0,0,0,0,0,-503, + -507,0,0,0,0,0,0,0,0,-182, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-540,-511,-512,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-490,-485,-452,-194,0,0, + -497,0,0,0,0,-467,0,0,0,0, + 0,-454,-513,0,0,0,0,-455,0,-456, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-457,0,-517,-459,-522,0,0, + 0,0,0,0,0,0,0,0,0,0, + -74,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-75,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,-83,0,0,0,-225,0,0, + -77,0,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,-84, - 0,0,0,-236,0,0,0,0,0,0, + 0,0,0,-78,0,0,0,-530,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-455,0,0,-240,0,-134,-526,-420, - -359,0,0,0,0,-311,0,0,0,-332, - -335,-360,-242,-337,0,0,0,0,0,-460, - -212,0,0,0,0,-43,0,0,0,0, - 0,0,0,-171,0,0,0,0,0,0, - 0,0,0,0,0,0,-478,0,0,0, - 0,-252,-436,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-362,0, - 0,0,-124,0,-213,0,0,0,0,-44, - -257,0,0,0,0,0,0,-471,-259,0, - 0,0,0,0,0,0,0,0,0,0, - -480,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-393,-45,0,0,-521,0,0,-260,0, - -469,0,0,-46,0,0,0,0,0,0, - 0,-185,0,0,0,0,0,0,0,0, - 0,0,0,0,-497,0,0,-392,0,0, - 0,0,0,0,-275,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-279,-1,0,0,0,0,-194,0,-280, - 0,0,0,0,0,-226,0,0,0,-283, - 0,0,0,0,0,0,0,0,-511,0, - 0,0,0,-328,-473,-339,-468,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -443,0,0,-284,0,-406,0,0,0,0, - 0,-444,-300,-301,0,0,0,0,0,0, - -445,0,0,0,0,0,0,0,0,0, - 0,0,-513,0,0,-388,0,0,-458,0, - -306,0,0,-314,0,0,0,0,0,0, - 0,0,0,0,-404,0,0,0,-434,0, - -315,0,-190,0,0,0,-331,0,0,-344, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-492,0,0,0, - 0,-229,0,0,0,-358,0,-374,0,0, - 0,0,0,0,0,0,0,-515,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-287,0,0,0,0,0,-325,0,0, - 0,-346,-387,0,0,0,0,0,-410,-490, - -517,-407,0,0,0,-399,0,0,-464,0, - 0,0,0,0,-418,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-498,-338,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-363,0,0,-532,-48,-70, - 0,0,0,0,-486,0,0,0,0,0, - 0,0,0,0,0,-366,0,0,-487,-162, - 0,-500,0,-381,0,0,0,0,0,0, - 0,0,0,-390,-391,0,0,0,-347,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-537,0,0,0,0,0,0,-465,0, - 0,0,-394,0,0,0,0,0,0,0, - 0,0,0,0,0,-395,-401,0,-494,-214, - 0,0,0,0,-413,-403,-409,-416,0,0, - 0,0,0,-423,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-371,0,0, - -505,0,-472,0,0,-424,0,0,0,0, - 0,0,0,0,0,0,-75,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-447, - 0,-77,0,0,0,-449,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-78,0,0,0,-522,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-334,0,-290, - -422,0,-215,0,0,-425,0,-370,-467,0, - -470,0,0,-276,0,-489,0,0,0,0, - 0,-493,0,0,-451,0,-514,-452,-496,-453, - 0,0,0,0,-502,-504,-508,-509,0,0, + 0,0,0,0,0,0,-336,-531,-536,-479, + 0,-468,0,0,0,-480,-373,-482,-487,-491, + 0,-498,-506,-515,-523,0,-407,-537,-528,0, + -539,0,-65,0,0,0,0,-362,0,0, + 0,0,0,-214,-318,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-510,-289,-454,0,0,-456,0,0,0, - 0,0,-519,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-376,0,0,0,0,0, - 0,0,0,0,0,0,0,-182,0,0, - 0,0,-528,0,-435,-474,0,-476,0,-477, - 0,0,-479,0,-341,0,0,0,-484,0, - 0,0,0,0,0,0,0,0,-527,0, - -516,0,-533,-534,0,0,-189,0,0,0, - 0,0,0,0,0,0,-488,0,0,-495, - 0,0,0,0,0,0,0,0,-503,0, - 0,-512,-520,-525,-536,0,0,0,0,0, + 0,0,0,0,0,-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,-20,0,0,0,0,0,0,0,0, + 0,0,0,-379,0,0,0,0,0,0, + 0,0,0,0,0,0,-288,0,0,0, + 0,0,0,-438,0,0,0,0,0,0, + 0,0,0,0,-363,0,0,0,0,-215, + 0,0,0,0,0,0,0,0,-290,0, + 0,-432,-437,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-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, + -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,-189, + 0,0,0,0,0,0,0,0,0,0, 0,-21,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-22,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-22,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-23,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-24,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-25,0, + 0,0,0,0,0,0,0,0,0,-23, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -26,0,0,0,0,0,0,0,0,0, + 0,-24,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-27,0,0,0,0,0,0,0, + 0,0,0,-25,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-60,0,0,0,0,0, + 0,0,0,0,0,-26,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-72,0,0,0, + 0,0,0,0,0,0,0,-27,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,-60, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -193,0,0,0,0,0,0,0,0,0, + 0,-72,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-336,0,0,0,0,0,0,0, - 0,0,-364,-250,-251,-317,0,0,0,0, - 0,0,-369,0,0,0,0,-429,0,0, + 0,0,0,-73,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-193,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-338,-277,-519, + 0,0,0,0,0,0,0,-367,0,0, + 0,0,0,0,0,0,0,-372,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -477,51 +483,52 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-412,0,0,0,0, - 0,0,0,0,0,-421,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -415,0,0,0,0,0,0,0,0,0, + -424,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-200,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-305, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-306,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-343,0,0,0, + 0,0,0,0,0,0,0,0,0,-383, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-502,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-210,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-125,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-380,0,0,0,0,0,0,0, - 0,0,0,0,0,-499,0,0,0,0, + 0,-263,0,0,0,0,0,0,0,0, + 0,0,0,0,-208,0,0,-329,0,0, + 0,0,0,0,-368,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-125,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-221,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-348,-384,0,0,0,0,0,-481, - 0,0,0,0,0,0,0,-262,0,0, - 0,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,-340,0,0,0,0,0,0, + 0,0,0,0,-349,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -402,0,0,0,0,0,0,0,0,0, - 0,0,0,-365,0,0,0,0,0,0, + 0,0,-387,0,0,0,0,0,0,0, + -405,0,0,0,0,0,0,0,0,0, + 0,-408,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-422,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-405,0,0,0,-419, - 0,0,0,0,0,0,0,-501,0,0, - 0,0,0,0,-431,0,0,0,0,0, - 0,0,0,0,0,-432,0,0,0,0, - 0,-442,0,0,0,0,0,0,0,0, + -434,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-435,0,0,0,-443,0,0, + 0,-436,0,0,0,0,0,-350,-256,0, + 0,0,0,0,0,-488,-446,0,0,0, + 0,0,0,0,0,-447,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -440,0,0,0,0,0,0,-42,0,0, - 0,0,-65,0,0,0,0,0,0,0, - 0,0,0,0,-200,0,0,0,0,0, - 0,0,0,0,0,0,0,-210,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-433,0,0,0,0, - 0,0,0,0,0,0,-482,0,0,0, - 0,0,-255,0,0,0,0,0,0,-485, + 0,0,0,-493,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -537,9 +544,7 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,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; @@ -570,19 +575,19 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 55,55,179,179,70,70,70,103,103,180, 180,71,71,71,181,181,72,72,72,72, 72,73,73,84,84,84,84,84,84,84, - 84,49,49,49,49,49,116,116,114,114, - 50,182,23,23,23,23,23,48,48,87, + 84,50,50,50,50,50,116,116,114,114, + 51,182,23,23,23,23,23,48,48,87, 87,87,87,87,152,152,147,147,147,147, 147,148,148,148,149,149,149,150,150,150, 151,151,151,88,88,88,88,88,89,89, 89,13,13,13,13,13,13,13,13,13, 13,13,98,120,120,120,120,120,120,118, 118,118,153,119,119,183,155,155,154,154, - 122,122,104,79,79,80,81,52,47,156, - 156,53,51,86,86,157,157,146,146,123, + 122,122,104,79,79,80,81,53,47,156, + 156,54,52,86,86,157,157,146,146,123, 124,124,125,76,76,158,158,63,63,63, 60,60,59,64,64,75,75,58,58,58, - 54,90,90,100,99,99,62,62,61,61, + 49,90,90,100,99,99,62,62,61,61, 57,57,45,101,101,101,93,93,93,94, 94,95,95,95,96,96,105,105,105,107, 107,106,106,202,202,91,91,185,185,185, @@ -602,493 +607,497 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 82,173,173,132,132,133,133,133,133,133, 133,3,134,134,131,131,112,112,85,78, 74,161,161,113,113,197,197,197,135,135, - 126,126,198,198,174,174,1119,35,2702,2691, - 1278,3224,27,30,31,936,984,26,28,2601, - 25,23,50,1027,106,76,77,107,1052,1614, - 1272,1255,1289,1279,1297,56,1291,1409,1340,689, - 272,1418,1505,142,1243,35,395,157,143,1217, - 35,791,32,1982,2547,27,30,31,936,984, - 57,28,496,71,3121,35,791,32,231,2428, - 27,30,31,936,984,26,28,781,25,23, - 50,1027,106,76,77,107,1052,1267,1272,1255, - 1289,1279,2435,234,229,230,588,1635,1764,34, - 3121,35,791,32,273,2428,27,30,31,936, - 984,26,28,781,25,23,50,1027,106,76, - 77,107,2018,241,244,247,250,802,2164,35, - 276,588,35,1764,3080,1762,1172,1860,35,791, - 32,241,2547,27,30,31,936,984,56,28, - 2023,583,3714,2443,2506,2619,3157,3263,4535,2316, - 35,791,32,2981,2428,27,30,31,936,984, - 26,28,781,25,23,50,1027,106,76,77, - 107,1052,342,1272,1255,1289,1279,1297,61,1291, - 1409,1340,1607,3103,1418,1505,142,3928,56,2222, - 516,143,747,1279,2503,1500,35,791,32,1010, - 2417,41,30,31,936,984,517,2316,35,791, - 32,2981,2428,27,30,31,936,984,26,28, - 781,25,23,50,1027,106,76,77,107,1052, - 342,1272,1255,1289,1279,1297,2928,1291,1409,1340, - 1123,1016,1418,1505,142,327,35,278,516,143, - 3967,2532,2503,1351,1374,327,35,278,661,1599, - 4808,512,1229,875,517,2103,60,2344,35,791, - 32,2371,4795,27,30,31,936,984,26,28, - 2899,510,497,2901,1261,2316,35,791,32,2981, - 2428,27,30,31,936,984,26,28,781,25, - 23,50,1027,106,76,77,107,1052,342,1272, - 1255,1289,1279,1297,1042,1291,1409,1340,2870,512, - 1418,1505,142,69,94,3242,516,143,3003,1374, - 2503,588,35,2436,2434,1607,2103,1330,2916,1988, - 3928,2901,517,2524,35,791,32,2981,2428,27, - 30,31,936,984,26,28,781,25,23,50, - 1027,106,76,77,107,1052,342,1272,1255,1289, - 1279,1297,1503,1291,1409,1340,2981,2852,1418,1505, - 142,327,35,452,516,143,4661,1614,2503,2928, - 42,3032,3836,331,69,342,2558,512,737,3386, - 517,1715,35,791,32,314,4795,27,30,31, - 936,984,59,28,352,934,3014,1322,2716,2901, - 24,2659,35,791,32,3023,2428,27,30,31, - 936,984,26,28,781,25,23,50,1027,106, - 76,77,107,1052,2626,1272,1255,1289,1279,1297, - 3332,1291,1409,1340,442,513,1418,1505,142,2280, - 1270,3831,378,143,2385,35,791,32,1017,2428, - 27,30,31,936,984,26,28,781,25,23, - 50,1027,106,76,77,107,1052,2245,1272,1255, - 1289,1279,1297,1334,1291,1409,1340,327,334,1418, - 1505,142,2129,2196,3831,378,143,437,3121,35, - 791,32,413,2428,27,30,31,936,984,26, - 28,781,25,23,50,1027,106,76,77,107, - 1052,2404,1272,1255,1289,1279,1297,56,1291,1409, - 1340,825,1667,1418,3063,163,588,3625,1543,384, - 3278,445,3697,3706,2591,35,791,32,2103,2428, - 27,30,31,936,984,26,28,781,25,23, - 50,1027,106,76,77,107,1052,3518,1272,1255, - 1289,1279,1297,2034,1291,1409,1340,446,3928,1418, - 1505,142,385,3278,3831,378,143,56,3562,1833, - 2626,1143,3355,2887,35,791,32,3893,2428,27, - 30,31,936,984,26,28,781,25,23,50, - 1027,106,76,77,107,1052,155,1272,1255,1289, - 1279,1297,1330,1291,1409,1340,927,2928,1418,1505, - 142,1123,135,912,157,143,588,35,292,2887, - 35,791,32,2729,2428,27,30,31,936,984, - 26,28,781,25,23,50,1027,106,76,77, - 107,1052,1500,1272,1255,1289,1279,1297,142,1291, - 1409,1340,376,3278,1418,1505,142,1947,35,276, - 372,143,2887,35,791,32,3242,2428,27,30, - 31,936,984,26,28,781,25,23,50,1027, - 106,76,77,107,1052,1445,1272,1255,1289,1279, - 1297,69,1291,1409,1340,96,3512,1418,1505,142, - 737,236,64,372,143,1715,35,791,32,2284, - 4795,27,30,31,936,984,58,28,583,587, - 3405,494,3094,2887,35,791,32,1355,2428,27, - 30,31,936,984,26,28,781,25,23,50, - 1027,106,76,77,107,1052,371,1272,1255,1289, - 1279,1297,1868,1291,1409,1340,722,1715,1418,1505, - 142,1010,1270,159,372,143,2457,35,791,32, - 400,2428,27,30,31,936,984,26,28,781, - 25,23,50,1027,106,76,77,107,1052,370, - 1272,1255,1289,1279,1297,2149,1291,1409,1340,333, - 334,1418,1505,142,588,35,3087,141,143,2716, - 2887,35,791,32,420,2428,27,30,31,936, - 984,26,28,781,25,23,50,1027,106,76, - 77,107,1052,322,1272,1255,1289,1279,1297,1226, - 1291,1409,1340,1614,459,1418,1505,142,1146,1614, - 368,158,143,2887,35,791,32,2620,2428,27, - 30,31,936,984,26,28,781,25,23,50, - 1027,106,76,77,107,1052,69,1272,1255,1289, - 1279,1297,68,1291,1409,1340,1614,1873,1418,1505, - 142,588,35,281,154,143,2887,35,791,32, - 388,2428,27,30,31,936,984,26,28,781, - 25,23,50,1027,106,76,77,107,1052,53, - 1272,1255,1289,1279,1297,380,1291,1409,1340,93, - 56,1418,1505,142,4568,1617,2490,153,143,2887, - 35,791,32,1625,2428,27,30,31,936,984, - 26,28,781,25,23,50,1027,106,76,77, - 107,1052,353,1272,1255,1289,1279,1297,3566,1291, - 1409,1340,1614,56,1418,1505,142,999,446,311, - 152,143,2887,35,791,32,1627,2428,27,30, - 31,936,984,26,28,781,25,23,50,1027, - 106,76,77,107,1052,87,1272,1255,1289,1279, - 1297,323,1291,1409,1340,1614,56,1418,1505,142, - 2845,1614,1174,151,143,2887,35,791,32,2652, - 2428,27,30,31,936,984,26,28,781,25, - 23,50,1027,106,76,77,107,1052,52,1272, - 1255,1289,1279,1297,90,1291,1409,1340,1614,56, - 1418,1505,142,938,2049,1323,150,143,2887,35, - 791,32,1441,2428,27,30,31,936,984,26, - 28,781,25,23,50,1027,106,76,77,107, - 1052,349,1272,1255,1289,1279,1297,56,1291,1409, - 1340,2917,403,1418,1505,142,160,1614,676,149, - 143,2887,35,791,32,666,2428,27,30,31, - 936,984,26,28,781,25,23,50,1027,106, - 76,77,107,1052,322,1272,1255,1289,1279,1297, - 1844,1291,1409,1340,1614,56,1418,1505,142,1857, - 1614,848,148,143,2887,35,791,32,1167,2428, - 27,30,31,936,984,26,28,781,25,23, - 50,1027,106,76,77,107,1052,1882,1272,1255, - 1289,1279,1297,67,1291,1409,1340,1614,56,1418, - 1505,142,2569,1614,2683,147,143,2887,35,791, - 32,283,2428,27,30,31,936,984,26,28, - 781,25,23,50,1027,106,76,77,107,1052, - 66,1272,1255,1289,1279,1297,65,1291,1409,1340, - 70,56,1418,1505,142,2934,588,3977,146,143, - 2887,35,791,32,666,2428,27,30,31,936, - 984,26,28,781,25,23,50,1027,106,76, - 77,107,1052,2619,1272,1255,1289,1279,1297,2619, - 1291,1409,1340,1614,56,1418,1505,142,2444,1604, - 2151,145,143,2887,35,791,32,2582,2428,27, - 30,31,936,984,26,28,781,25,23,50, - 1027,106,76,77,107,1052,64,1272,1255,1289, - 1279,1297,56,1291,1409,1340,2442,401,1418,1505, - 142,588,3464,408,144,143,2832,35,791,32, - 2552,2428,27,30,31,936,984,26,28,781, - 25,23,50,1027,106,76,77,107,1052,580, - 1272,1255,1289,1279,1297,324,1291,1409,1340,71, - 1614,1418,3063,163,2887,35,791,32,405,2428, - 27,30,31,936,984,26,28,781,25,23, - 50,1027,106,76,77,107,1052,1818,1272,1255, - 1289,1279,1297,3078,1291,1409,1340,389,426,1418, - 1505,142,1761,1761,88,139,143,102,56,326, - 89,2044,1143,102,3005,35,791,32,2187,2428, - 27,30,31,936,984,26,28,781,25,23, - 50,1027,106,76,77,107,1052,155,1272,1255, - 1289,1279,1297,287,1291,1409,1340,2149,1015,1418, - 1505,142,2103,1614,1699,188,143,3121,35,791, - 32,1010,2428,27,30,31,936,984,26,28, - 781,25,23,50,1027,106,76,77,107,1052, - 2552,1272,1255,1289,1279,1297,55,1291,1409,1340, - 1761,1010,1418,3063,163,3121,35,791,32,2742, - 2428,27,30,31,936,984,26,28,781,25, - 23,50,1027,106,76,77,107,1052,298,1272, - 1255,1289,1279,1297,522,1291,1409,1340,355,354, - 1418,3063,163,2271,35,791,32,530,530,40, - 30,31,936,984,458,3121,35,791,32,422, - 2428,27,30,31,936,984,26,28,781,25, - 23,50,1027,106,76,77,107,1052,2552,1272, - 1255,1289,1279,1297,4281,1291,1409,1340,1700,1010, - 1418,3063,163,3121,35,791,32,291,2428,27, - 30,31,936,984,26,28,781,25,23,50, - 1027,106,76,77,107,1052,220,1272,1255,1289, - 1279,1297,522,1291,1409,1340,322,1010,1418,3063, - 163,2271,35,791,32,530,1330,1900,30,31, - 936,984,1223,3176,35,791,32,421,2428,27, - 30,31,936,984,26,28,781,25,23,50, - 1027,106,76,77,107,1052,2552,1272,1255,1289, - 1279,1297,51,1291,1409,1340,1801,2552,1418,3063, - 163,3121,35,791,32,424,2428,27,30,31, - 936,984,26,28,781,25,23,50,1027,106, - 76,77,107,1052,302,1272,1255,1289,1279,1297, - 325,1291,1409,1340,1385,178,2583,2271,35,791, - 32,1559,2417,2050,30,31,936,984,2407,35, - 279,3121,35,791,32,3943,2428,27,30,31, - 936,984,26,28,781,25,23,50,1027,106, - 76,77,107,1052,2135,1272,1255,1289,1279,1297, - 1330,1291,1409,2509,3121,35,791,32,1615,2428, - 27,30,31,936,984,26,28,781,25,23, - 50,1027,106,76,77,107,1052,2191,1272,1255, - 1289,1279,1297,3196,1291,2464,3121,35,791,32, - 3201,2428,27,30,31,936,984,26,28,781, - 25,23,50,1027,106,76,77,107,1052,1965, - 1272,1255,1289,1279,1297,2022,2496,1518,35,791, - 32,4583,3659,27,30,31,936,984,338,28, - 3121,35,791,32,159,2428,27,30,31,936, - 984,26,28,781,25,23,50,1027,106,76, - 77,107,1052,1758,1272,1255,1289,2449,1976,35, - 1599,387,1614,2484,142,1709,2690,2842,1243,35, - 395,2928,737,3347,2280,331,318,1850,320,2425, - 313,1506,843,35,452,2491,238,4661,588,35, - 1764,275,49,312,1701,54,350,757,35,1599, - 387,1592,740,3121,35,791,32,3945,2428,27, - 30,31,936,984,26,28,781,25,23,50, - 1027,106,76,77,107,1052,1712,1272,1255,1289, - 2455,272,2440,2147,1270,231,1225,3640,351,486, - 305,309,1365,1400,35,791,32,3883,3542,27, - 30,31,936,984,338,28,343,1457,879,348, - 239,229,230,2138,1628,1010,929,35,1599,387, - 2079,3516,334,2863,3708,2893,3736,932,35,1599, - 387,1374,1888,35,791,32,3404,3542,27,30, - 31,936,984,338,28,3164,379,2103,231,2582, - 49,56,318,1850,320,1143,313,1506,351,1592, - 2988,49,72,1783,1839,350,2582,3355,351,3424, - 1592,1033,3483,243,229,230,343,1457,879,348, - 155,1875,2582,2467,341,2870,343,1457,879,348, - 2551,318,1850,320,3390,313,1506,56,97,1240, - 69,3200,449,3697,3706,3594,1010,351,2869,1898, - 35,3552,32,4583,3659,27,30,31,936,984, - 338,28,2129,35,292,343,1457,879,348,3121, - 35,791,32,1628,2428,27,30,31,936,984, - 26,28,781,25,23,50,1027,106,76,77, - 107,1052,2556,1272,1255,2202,536,44,3032,390, - 426,231,2699,2928,1243,35,395,331,318,1850, - 320,3321,313,1506,2050,3855,392,426,365,56, - 1390,155,1453,3818,958,1193,246,229,230,98, - 179,2237,391,426,2125,3121,35,791,32,3945, - 2428,27,30,31,936,984,26,28,781,25, - 23,50,1027,106,76,77,107,1052,194,1272, - 1255,2274,3121,35,791,32,2320,2428,27,30, - 31,936,984,26,28,781,25,23,50,1027, - 106,76,77,107,1052,2244,1272,1255,2281,3121, - 35,791,32,2380,2428,27,30,31,936,984, - 26,28,781,25,23,50,1027,106,76,77, - 107,1052,3993,1893,416,418,3490,322,1691,35, - 791,32,4583,3542,27,30,31,936,984,338, - 28,2129,3655,292,3121,35,791,32,1849,2428, - 27,30,31,936,984,26,28,781,25,23, - 50,1027,106,76,77,107,1052,259,1272,1255, - 2328,536,1375,2122,2552,2234,2981,3928,4584,2981, - 2620,2699,838,4718,195,2415,2837,318,1850,320, - 227,313,1506,56,284,2513,155,2586,2513,1614, - 588,35,1599,387,312,179,2237,2852,588,35, - 1599,387,197,202,214,4674,201,211,212,213, - 215,1,168,56,56,536,2928,2602,3191,2279, - 331,2304,321,167,49,182,166,169,170,171, - 172,173,430,46,227,2320,2446,1643,3464,181, - 155,306,309,1365,588,3372,1764,74,1096,179, - 2237,2852,2980,359,1643,3464,359,202,214,4674, - 201,211,212,213,215,3040,168,1714,3186,3203, - 1930,3186,3203,588,35,1599,387,167,180,183, - 166,169,170,171,172,173,2070,35,791,32, - 3883,3542,27,30,31,936,984,338,28,1614, - 1983,3231,35,1599,387,3928,2536,451,2572,1614, - 1363,35,791,32,236,3659,27,30,31,936, - 984,338,28,588,35,1599,387,1543,35,1764, - 3380,428,101,2715,2453,272,2891,2981,588,35, - 1599,387,3559,1773,1614,318,1850,320,3928,313, - 1506,1614,1781,2481,2928,3644,342,49,332,286, - 2209,351,525,231,2928,4706,1592,733,332,318, - 1850,320,433,314,1506,351,286,2226,799,343, - 1457,879,348,49,450,351,528,526,234,229, - 230,1704,3481,345,1457,879,348,2928,56,273, - 2515,332,3202,345,1457,879,348,2615,2797,3481, - 1543,35,1764,275,588,35,1764,277,241,244, - 247,250,802,588,35,1764,3487,3066,35,791, - 32,1172,2428,27,30,31,936,984,26,28, - 781,25,23,50,1027,86,76,77,2443,2506, - 2619,3157,3263,4535,3121,35,791,32,2285,2428, - 27,30,31,936,984,26,28,781,25,23, - 50,1027,106,76,77,107,1052,1606,1272,2379, - 3121,35,791,32,2621,2428,27,30,31,936, - 984,26,28,781,25,23,50,1027,106,76, - 77,107,1052,345,1272,2385,1250,536,56,2443, - 2646,2234,1143,1143,2981,2981,588,35,1764,280, - 737,56,737,2305,56,3828,227,441,3728,455, - 2552,56,155,2513,2513,1143,56,1591,155,231, - 2981,179,2237,2852,2447,35,1599,387,161,202, - 214,4674,201,211,212,213,215,431,168,342, - 155,536,2306,56,249,229,230,1143,196,167, - 1720,3949,166,169,170,171,172,173,49,322, - 227,2503,1270,1780,1270,56,155,1592,1957,1143, - 56,1515,3321,1676,2981,179,2237,2852,1330,2689, - 3483,504,359,202,214,4674,201,211,212,213, - 215,517,168,342,155,536,2989,3186,3203,329, - 334,3553,334,167,1757,177,166,169,170,171, - 172,173,322,56,227,2503,1330,2981,3842,2691, - 155,1614,502,503,56,231,296,1678,2981,179, - 2237,2852,1243,35,3138,2314,342,202,214,4674, - 201,211,212,213,215,603,168,342,69,536, - 252,229,230,4710,377,2485,2852,167,2503,175, - 166,169,170,171,172,173,49,3963,227,2503, - 1721,524,2693,2249,155,1592,871,1143,56,295, - 2649,1728,2981,179,2237,2852,932,35,1599,387, - 1906,202,214,4674,201,211,212,213,215,689, - 168,342,155,536,1375,2552,56,322,2981,3928, - 1379,167,534,176,166,169,170,171,172,173, - 49,56,227,2503,2555,2981,69,2513,155,1592, - 47,4725,56,2580,2714,1677,2981,179,2237,2852, - 1218,1088,2288,301,342,202,214,4674,201,211, - 212,213,215,775,168,342,2412,536,2928,2556, - 4406,2722,331,1143,2717,167,2503,186,166,169, - 170,171,172,173,303,2122,227,2503,508,737, - 4584,2723,155,588,35,1599,387,2727,155,506, - 2728,179,2237,2852,2990,359,3705,199,3639,202, - 214,4674,201,211,212,213,215,322,168,1714, - 3186,3203,929,35,1599,387,56,272,1330,167, - 1972,3994,166,169,170,171,172,173,1952,35, - 791,32,4583,3542,27,30,31,936,984,338, - 28,1270,929,35,1599,387,49,540,588,35, - 1599,387,2627,56,521,1592,47,1973,2852,56, - 56,861,69,3479,2981,536,1330,4736,1461,588, - 35,1599,387,375,381,69,49,3040,3829,334, - 4771,274,272,342,227,1592,2502,318,1850,320, - 155,313,1506,1614,932,35,1599,387,3548,179, - 2237,2852,1981,432,312,2503,2852,202,214,4674, - 201,211,212,213,215,1675,168,533,947,1354, - 1354,375,536,1143,1143,2552,3399,167,49,191, - 166,169,170,171,172,173,2731,1592,47,2552, - 1607,227,1614,429,2735,3928,339,155,159,159, - 2277,305,309,1365,2082,2732,179,2237,2852,929, - 35,1599,387,200,202,214,4674,201,211,212, - 213,215,1033,168,3959,3453,536,198,373,588, - 35,1599,387,2068,167,3708,185,166,169,170, - 171,172,173,49,2928,227,2736,2747,331,2552, - 56,155,1592,811,1143,56,2746,2751,2789,3935, - 179,2237,2852,431,2737,3548,1456,1585,202,214, - 4674,201,211,212,213,215,3826,168,2646,155, - 2980,1088,2981,588,35,292,2750,297,167,1763, - 193,166,169,170,171,172,173,3121,35,791, - 32,2513,2428,27,30,31,936,984,26,28, - 781,25,23,50,1027,106,76,77,107,1052, - 2782,1919,3121,35,791,32,2790,2428,27,30, - 31,936,984,26,28,781,25,23,50,1027, - 106,76,77,107,2024,3121,35,791,32,1330, - 2428,27,30,31,936,984,26,28,781,25, - 23,50,1027,106,76,77,107,2148,1562,504, - 1796,56,2981,56,2981,4742,56,1143,1823,56, - 3441,56,2981,2060,56,3507,56,3699,1143,2852, - 3731,227,56,2513,521,87,961,2552,2755,2765, - 2757,227,155,2981,523,56,1614,1614,1614,3528, - 501,503,1843,155,204,214,4674,203,211,212, - 213,215,342,2535,204,214,4674,203,211,212, - 213,215,2413,1607,2759,3189,2966,2761,3928,3561, - 3316,3799,2069,1778,3882,205,207,209,293,294, - 3319,3683,216,206,208,205,207,209,293,294, - 3319,360,216,206,208,2062,35,3552,32,4583, - 3542,27,30,31,936,984,338,28,588,35, - 1599,387,3259,1614,4323,1910,2153,2928,2763,2981, - 173,331,3312,2792,4323,2156,35,791,32,2797, - 3659,27,30,31,936,984,338,28,227,2552, - 1333,56,49,1614,2552,1143,3964,588,35,1599, - 387,1592,1182,2990,318,1850,320,2787,313,1506, - 2733,204,214,4674,203,211,212,213,215,2768, - 155,1193,2794,2796,2655,1337,3672,221,5391,2928, - 3933,49,192,332,318,1850,320,5391,316,1506, - 1592,1227,205,207,209,293,294,3319,5391,216, - 206,208,3121,35,791,32,5391,2428,27,30, - 31,936,984,26,28,781,25,23,50,1027, - 106,76,77,85,5391,5391,3858,5391,5391,3407, - 5391,4323,3121,1635,791,1642,5391,2428,27,30, - 31,936,984,26,28,781,25,23,50,1027, - 106,76,77,84,5391,5391,5391,5391,5391,5391, - 417,418,3490,3121,35,791,32,5391,2428,27, - 30,31,936,984,26,28,781,25,23,50, - 1027,106,76,77,83,3121,35,791,32,5391, - 2428,27,30,31,936,984,26,28,781,25, - 23,50,1027,106,76,77,82,3121,35,791, - 32,5391,2428,27,30,31,936,984,26,28, - 781,25,23,50,1027,106,76,77,81,3121, - 35,791,32,5391,2428,27,30,31,936,984, - 26,28,781,25,23,50,1027,106,76,77, - 80,3121,35,791,32,5391,2428,27,30,31, - 936,984,26,28,781,25,23,50,1027,106, - 76,77,79,3121,35,791,32,5391,2428,27, - 30,31,936,984,26,28,781,25,23,50, - 1027,106,76,77,78,2950,35,791,32,5391, - 2428,27,30,31,936,984,26,28,781,25, - 23,50,1027,106,76,77,104,3121,35,791, - 32,5391,2428,27,30,31,936,984,26,28, - 781,25,23,50,1027,106,76,77,109,3121, - 35,791,32,5391,2428,27,30,31,936,984, - 26,28,781,25,23,50,1027,106,76,77, - 108,3121,35,791,32,5391,2428,27,30,31, - 936,984,26,28,781,25,23,50,1027,106, - 76,77,105,1997,5391,5391,5391,2981,5391,5391, - 5391,5391,5391,1649,1354,1354,1354,2981,1143,1143, - 1143,5391,5391,1736,5391,5391,227,2981,1354,5391, - 5391,5391,1143,5391,5391,5391,227,5391,5391,5391, - 5391,5391,5391,159,159,159,227,5391,5391,204, - 214,4674,203,211,212,213,215,159,5391,204, - 214,4674,203,211,212,213,215,5391,5391,204, - 214,4674,203,211,212,213,215,5391,5391,5391, - 205,207,209,293,294,3319,5391,519,206,208, - 205,207,209,293,294,3319,5391,518,206,208, - 205,207,209,293,294,3319,2084,217,206,208, - 2981,2023,2432,2979,5391,5391,2171,5391,5391,5391, - 2981,5391,5391,5391,5391,3031,5391,5391,5391,227, - 5391,5391,5391,5391,5391,5391,5391,5391,5391,227, - 5391,5391,5391,5391,5391,5391,5391,5391,5391,5391, - 5391,5391,204,214,4674,203,211,212,213,215, - 5391,5391,204,214,4674,203,211,212,213,215, - 1691,35,791,32,4583,3542,27,30,31,936, - 984,338,28,205,207,209,293,294,3319,5391, - 304,206,208,205,207,209,293,294,3319,5391, - 498,206,208,2156,35,791,32,5391,3659,27, - 30,31,936,984,338,28,1691,35,791,32, - 4583,3542,27,30,31,936,984,338,28,318, - 1850,320,5391,313,1506,3280,35,1599,387,5391, - 2536,5391,5391,5391,5391,5391,2869,5391,237,5391, - 5391,5391,5391,5391,5391,5391,5391,2928,5391,5391, - 5391,332,318,1850,320,5391,314,1506,1180,272, - 5391,5391,2981,4843,5391,318,1850,320,5391,313, - 1506,5391,5391,1607,929,35,1599,387,3928,5391, - 56,227,3992,5391,536,5391,5391,231,1490,35, - 791,32,2629,3542,27,30,31,936,984,338, - 28,5391,5391,342,1634,406,4598,5391,49,155, - 5391,1285,235,229,230,2981,4843,1592,47,187, - 5391,5391,5391,273,5391,4516,402,2928,5391,5391, - 2878,331,5391,5391,227,407,408,409,293,294, - 3319,5391,242,245,248,251,802,315,3461,320, - 5391,929,35,1599,387,1172,5391,1634,406,4598, - 3271,5391,5391,4503,2236,35,791,32,2387,3542, - 27,30,31,936,984,338,28,5391,5391,5391, - 5391,5391,5391,3593,5391,49,5391,5391,407,408, - 409,293,294,3319,1592,47,929,35,1599,387, - 1962,35,1599,387,5391,5391,5391,2953,2623,5391, - 5391,5391,536,3271,5391,929,35,1599,387,5391, - 5391,410,412,315,3461,320,929,35,1599,387, - 49,342,2647,5391,49,5391,2981,155,5391,1592, - 47,5391,5391,1592,47,1403,2700,187,4621,49, - 5391,5391,3018,4516,5391,2513,1186,5391,1592,47, - 49,2167,35,1599,387,5391,5391,5391,56,1592, - 47,3569,536,56,410,413,5391,536,5391,5391, - 5391,5391,3679,5391,5391,588,35,1599,387,5391, - 5391,342,5391,5391,5391,49,342,155,588,35, - 1599,387,155,5391,1592,47,5391,1419,5391,5391, - 5391,189,927,2503,5391,5391,2208,3733,2503,49, - 2981,5391,2700,504,5391,1413,5391,56,1592,740, - 1542,536,49,588,35,1599,387,5391,5391,342, - 56,1592,658,5391,536,5391,5391,5391,5391,529, - 342,5391,5391,5391,5391,5391,155,5391,5391,5391, - 5391,2503,5391,342,501,503,187,49,5391,155, - 5391,5391,4516,532,5391,5391,1592,2282,5391,187, - 5391,5391,5391,5391,5391,4516,5391,5391,3847,5391, - 5391,5391,5391,5391,5391,5391,5391,5391,5391,5391, - 5391,5391,5391,5391,5391,3936,5391,5391,5391,5391, - 5391,5391,5391,5391,5391,5391,5391,5391,5391,5391, - 5391,5391,5391,5391,5391,5391,5391,5391,5391,5391, - 3642,5391,5391,5391,5391,5391,5391,5391,5391,5391, - 5391,5391,5391,3856,5391,5391,5391,5391,5391,5391, - 5391,5391,5391,5391,5391,5391,5391,5391,5391,5391, - 5391,5391,5391,5391,5391,5391,5391,5391,5391,5391, - 5391,5391,5391,5391,5391,5391,5391,5391,5391,5391, - 5391,5391,5391,5391,5391,5391,5391,5391,5391,5391, - 5391,5391,5391,5391,5391,5391,5391,5391,5391,5391, - 5391,5391,5391,5391,5391,5391,5391,5391,5391,5391, - 5391,5391,5391,5391,3033,5391,0,39,5406,0, - 39,5405,0,565,29,0,439,728,0,453, - 1077,0,38,626,0,38,5406,0,38,5405, - 0,2742,125,0,1,443,0,457,1331,0, - 456,2031,0,3188,91,0,565,386,0,35, - 33,0,32,34,0,39,626,0,1,863, - 0,1,5662,0,1,5661,0,1,5660,0, - 1,5659,0,1,5658,0,1,5657,0,1, - 5656,0,1,5655,0,1,5654,0,1,5653, - 0,1,5652,0,39,1,5406,0,39,1, - 5405,0,735,1,0,282,393,0,282,285, - 0,5624,240,0,5623,240,0,5728,240,0, - 5727,240,0,5651,240,0,5650,240,0,5649, - 240,0,5648,240,0,5647,240,0,5646,240, - 0,5645,240,0,5644,240,0,5662,240,0, - 5661,240,0,5660,240,0,5659,240,0,5658, - 240,0,5657,240,0,5656,240,0,5655,240, - 0,5654,240,0,5653,240,0,5652,240,0, - 39,5406,240,0,39,5405,240,0,5429,240, - 0,5406,48,0,5405,48,0,43,5427,0, - 43,37,0,2742,127,0,2742,126,0,5397, - 1,0,5396,1,0,3619,236,0,32,387, - 0,29,386,0,330,444,0,1,92,0, - 47,37,0,5429,1,0,39,1,0,500, - 3279,0,5429,1,228,0,39,1,228,0, - 228,415,0,5406,37,0,5405,37,0,5427, - 45,0,37,45,0,5406,36,0,5405,36, - 0,5406,2,37,0,5405,2,37,0,5401, - 404,0,5400,404,0,1,4470,0,1,3013, - 0,1,626,0,228,414,0,330,95,0, - 35,73,0,2894,317,0,1,330,0,4314, - 277,0,500,4313,0,1,228,0,228,219, - 0,228,218,0,1,574,0,1,2438,0, - 5403,1,0,5399,1,0,1,228,3776,0, - 5400,228,0,3845,228,0,5403,382,0,5402, - 382,0,3940,228,0,10,12,0,8,10, - 12,0,184,3618,0,3995,382,0,8,12, - 0 + 126,126,198,198,174,174,1119,35,2587,2584, + 1278,3510,27,30,31,936,954,26,28,2571, + 25,23,50,1042,106,76,77,107,1139,1614, + 1255,1236,1289,1279,1470,56,1409,1513,1505,689, + 272,1590,1592,142,1243,35,395,157,143,1217, + 35,917,32,1982,3431,27,30,31,936,954, + 57,28,496,71,3121,35,917,32,231,2504, + 27,30,31,936,954,26,28,811,25,23, + 50,1042,106,76,77,107,1139,1267,1255,1236, + 1289,1279,2404,234,229,230,588,1685,1849,34, + 3121,35,917,32,273,2504,27,30,31,936, + 954,26,28,811,25,23,50,1042,106,76, + 77,107,1929,241,244,247,250,802,2164,35, + 276,588,35,1849,2978,1762,1047,1860,35,917, + 32,142,3431,27,30,31,936,954,56,28, + 2582,583,3621,2995,2682,3007,3129,3316,4652,2316, + 35,917,32,2972,2504,27,30,31,936,954, + 26,28,811,25,23,50,1042,106,76,77, + 107,1139,342,1255,1236,1289,1279,1470,61,1409, + 1513,1505,2023,2887,1590,1592,142,1607,69,2222, + 516,143,3660,3597,2542,1500,35,917,32,1010, + 1279,41,30,31,936,954,517,2316,35,917, + 32,2972,2504,27,30,31,936,954,26,28, + 811,25,23,50,1042,106,76,77,107,1139, + 342,1255,1236,1289,1279,1470,2861,1409,1513,1505, + 1672,69,1590,1592,142,1123,3514,2280,516,143, + 389,426,2542,69,1374,327,35,278,3612,56, + 4100,512,1229,747,517,661,60,2344,35,917, + 32,1016,4496,27,30,31,936,954,26,28, + 2838,510,497,2844,666,2316,35,917,32,2972, + 2504,27,30,31,936,954,26,28,811,25, + 23,50,1042,106,76,77,107,1139,342,1255, + 1236,1289,1279,1470,1796,1409,1513,1505,2972,512, + 1590,1592,142,327,35,278,516,143,4637,94, + 2542,588,35,2583,2496,56,1374,2513,2854,825, + 135,2844,517,2524,35,917,32,2972,2504,27, + 30,31,936,954,26,28,811,25,23,50, + 1042,106,76,77,107,1139,342,1255,1236,1289, + 1279,1470,1503,1409,1513,1505,2972,2532,1590,1592, + 142,327,35,452,516,143,4791,1839,2542,3068, + 3177,588,35,1678,387,342,2558,512,737,70, + 517,1715,35,917,32,360,4496,27,30,31, + 936,954,59,28,2626,781,2902,1322,2716,2844, + 322,2659,35,917,32,430,2504,27,30,31, + 936,954,26,28,811,25,23,50,1042,106, + 76,77,107,1139,314,1255,1236,1289,1279,1470, + 2428,1409,1513,1505,1773,513,1590,1592,142,3660, + 3361,3499,378,143,2385,35,917,32,1017,2504, + 27,30,31,936,954,26,28,811,25,23, + 50,1042,106,76,77,107,1139,388,1255,1236, + 1289,1279,1470,2371,1409,1513,1505,327,334,1590, + 1592,142,2245,2861,3499,378,143,1330,3121,35, + 917,32,332,2504,27,30,31,936,954,26, + 28,811,25,23,50,1042,106,76,77,107, + 1139,3485,1255,1236,1289,1279,1470,1599,1409,1513, + 1505,2852,3068,1590,2970,163,437,1138,1414,384, + 2853,445,3584,3586,2591,35,917,32,2103,2504, + 27,30,31,936,954,26,28,811,25,23, + 50,1042,106,76,77,107,1139,3023,1255,1236, + 1289,1279,1470,2034,1409,1513,1505,446,3660,1590, + 1592,142,385,2853,3499,378,143,56,56,413, + 2610,1143,2837,2887,35,917,32,3738,2504,27, + 30,31,936,954,26,28,811,25,23,50, + 1042,106,76,77,107,1139,155,1255,1236,1289, + 1279,1470,2861,1409,1513,1505,1413,3195,1590,1592, + 142,1123,666,912,157,143,588,35,292,2887, + 35,917,32,2729,2504,27,30,31,936,954, + 26,28,811,25,23,50,1042,106,76,77, + 107,1139,135,1255,1236,1289,1279,1470,2135,1409, + 1513,1505,376,2853,1590,1592,142,1947,35,276, + 372,143,2887,35,917,32,1445,2504,27,30, + 31,936,954,26,28,811,25,23,50,1042, + 106,76,77,107,1139,64,1255,1236,1289,1279, + 1470,328,1409,1513,1505,96,2417,1590,1592,142, + 737,236,442,372,143,1715,35,917,32,2284, + 4496,27,30,31,936,954,58,28,583,587, + 3643,135,2772,2887,35,917,32,71,2504,27, + 30,31,936,954,26,28,811,25,23,50, + 1042,106,76,77,107,1139,371,1255,1236,1289, + 1279,1470,1868,1409,1513,1505,727,1715,1590,1592, + 142,2103,3361,159,372,143,2457,35,917,32, + 1629,2504,27,30,31,936,954,26,28,811, + 25,23,50,1042,106,76,77,107,1139,370, + 1255,1236,1289,1279,1470,2149,1409,1513,1505,3192, + 334,1590,1592,142,588,35,3002,141,143,2716, + 2887,35,917,32,420,2504,27,30,31,936, + 954,26,28,811,25,23,50,1042,106,76, + 77,107,1139,241,1255,1236,1289,1279,1470,494, + 1409,1513,1505,1614,56,1590,1592,142,787,1614, + 368,158,143,2887,35,917,32,2626,2504,27, + 30,31,936,954,26,28,811,25,23,50, + 1042,106,76,77,107,1139,24,1255,1236,1289, + 1279,1470,69,1409,1513,1505,1614,1988,1590,1592, + 142,588,35,281,154,143,2887,35,917,32, + 1355,2504,27,30,31,936,954,26,28,811, + 25,23,50,1042,106,76,77,107,1139,68, + 1255,1236,1289,1279,1470,380,1409,1513,1505,93, + 56,1590,1592,142,2657,400,1873,153,143,2887, + 35,917,32,1226,2504,27,30,31,936,954, + 26,28,811,25,23,50,1042,106,76,77, + 107,1139,352,1255,1236,1289,1279,1470,3519,1409, + 1513,1505,1614,56,1590,1592,142,2685,446,311, + 152,143,2887,35,917,32,793,2504,27,30, + 31,936,954,26,28,811,25,23,50,1042, + 106,76,77,107,1139,53,1255,1236,1289,1279, + 1470,353,1409,1513,1505,1614,1973,1590,1592,142, + 1146,1614,1617,151,143,2887,35,917,32,1625, + 2504,27,30,31,936,954,26,28,811,25, + 23,50,1042,106,76,77,107,1139,87,1255, + 1236,1289,1279,1470,52,1409,1513,1505,1614,56, + 1590,1592,142,938,1614,1627,150,143,2887,35, + 917,32,1174,2504,27,30,31,936,954,26, + 28,811,25,23,50,1042,106,76,77,107, + 1139,90,1255,1236,1289,1279,1470,349,1409,1513, + 1505,1614,56,1590,1592,142,680,1614,2652,149, + 143,2887,35,917,32,1323,2504,27,30,31, + 936,954,26,28,811,25,23,50,1042,106, + 76,77,107,1139,1844,1255,1236,1289,1279,1470, + 1882,1409,1513,1505,1614,56,1590,1592,142,1857, + 1614,1441,148,143,2887,35,917,32,160,2504, + 27,30,31,936,954,26,28,811,25,23, + 50,1042,106,76,77,107,1139,67,1255,1236, + 1289,1279,1470,66,1409,1513,1505,1614,2490,1590, + 1592,142,2049,1614,676,147,143,2887,35,917, + 32,848,2504,27,30,31,936,954,26,28, + 811,25,23,50,1042,106,76,77,107,1139, + 65,1255,1236,1289,1279,1470,64,1409,1513,1505, + 403,56,1590,1592,142,2926,588,3644,146,143, + 2887,35,917,32,1167,2504,27,30,31,936, + 954,26,28,811,25,23,50,1042,106,76, + 77,107,1139,323,1255,1236,1289,1279,1470,2619, + 1409,1513,1505,1614,56,1590,1592,142,3236,2683, + 2151,145,143,2887,35,917,32,2582,2504,27, + 30,31,936,954,26,28,811,25,23,50, + 1042,106,76,77,107,1139,2659,1255,1236,1289, + 1279,1470,56,1409,1513,1505,1270,56,1590,1592, + 142,3847,1334,408,144,143,2832,35,917,32, + 1604,2504,27,30,31,936,954,26,28,811, + 25,23,50,1042,106,76,77,107,1139,580, + 1255,1236,1289,1279,1470,324,1409,1513,1505,1015, + 1614,1590,2970,163,2887,35,917,32,401,2504, + 27,30,31,936,954,26,28,811,25,23, + 50,1042,106,76,77,107,1139,2103,1255,1236, + 1289,1279,1470,55,1409,1513,1505,390,426,1590, + 1592,142,1761,2129,2108,139,143,1390,56,326, + 88,958,1143,102,3005,35,917,32,2264,2504, + 27,30,31,936,954,26,28,811,25,23, + 50,1042,106,76,77,107,1139,155,1255,1236, + 1289,1279,1470,1543,1409,1513,1505,2237,2552,1590, + 1592,142,588,3330,1699,188,143,3121,35,917, + 32,1010,2504,27,30,31,936,954,26,28, + 811,25,23,50,1042,106,76,77,107,1139, + 2552,1255,1236,1289,1279,1470,405,1409,1513,1505, + 1761,1761,1590,2970,163,3121,35,917,32,1700, + 2504,27,30,31,936,954,26,28,811,25, + 23,50,1042,106,76,77,107,1139,298,1255, + 1236,1289,1279,1470,1223,1409,1513,1505,355,1010, + 1590,2970,163,2271,35,917,32,530,1330,40, + 30,31,936,954,459,3121,35,917,32,422, + 2504,27,30,31,936,954,26,28,811,25, + 23,50,1042,106,76,77,107,1139,2552,1255, + 1236,1289,1279,1470,287,1409,1513,1505,1801,1010, + 1590,2970,163,3121,35,917,32,291,2504,27, + 30,31,936,954,26,28,811,25,23,50, + 1042,106,76,77,107,1139,220,1255,1236,1289, + 1279,1470,458,1409,1513,1505,354,322,1590,2970, + 163,2271,35,917,32,530,530,2018,30,31, + 936,954,1385,3176,35,917,32,421,2504,27, + 30,31,936,954,26,28,811,25,23,50, + 1042,106,76,77,107,1139,135,1255,1236,1289, + 1279,1470,4346,1409,1513,1505,1559,1010,1590,2970, + 163,3121,35,917,32,424,2504,27,30,31, + 936,954,26,28,811,25,23,50,1042,106, + 76,77,107,1139,1010,1255,1236,1289,1279,1470, + 56,1409,1513,1505,2509,2871,2535,2271,35,917, + 32,588,3860,2050,30,31,936,954,2407,35, + 279,3121,35,917,32,3858,2504,27,30,31, + 936,954,26,28,811,25,23,50,1042,106, + 76,77,107,1139,1818,1255,1236,1289,1279,1470, + 51,1409,1513,2464,3121,35,917,32,1615,2504, + 27,30,31,936,954,26,28,811,25,23, + 50,1042,106,76,77,107,1139,325,1255,1236, + 1289,1279,1470,3204,1409,2449,3121,35,917,32, + 1965,2504,27,30,31,936,954,26,28,811, + 25,23,50,1042,106,76,77,107,1139,2103, + 1255,1236,1289,1279,1470,2022,2455,1518,35,917, + 32,4878,4745,27,30,31,936,954,338,28, + 3121,35,917,32,1709,2504,27,30,31,936, + 954,26,28,811,25,23,50,1042,106,76, + 77,107,1139,1614,1255,1236,1289,2434,1243,35, + 3009,1218,1614,2484,2425,2491,2861,4705,588,35, + 1849,275,1243,35,395,331,318,1850,320,1701, + 313,1758,843,35,452,1712,54,4791,588,3187, + 1849,74,49,312,486,321,350,757,35,1678, + 387,1642,871,3121,35,917,32,4587,2504,27, + 30,31,936,954,26,28,811,25,23,50, + 1042,106,76,77,107,1139,142,1255,1236,1289, + 2435,272,2417,1374,1976,35,1678,387,351,2582, + 305,309,1365,1400,35,917,32,3989,3957,27, + 30,31,936,954,338,28,343,1506,1457,348, + 2129,35,292,2138,1634,1783,671,56,49,2443, + 1330,1143,2147,1143,3620,56,3916,1642,1266,2976, + 3636,322,1888,35,917,32,4708,3957,27,30, + 31,936,954,338,28,3010,1628,2191,155,2050, + 1887,1875,318,1850,320,1354,313,1758,161,1143, + 2943,1983,72,2690,3321,350,3660,1453,351,3249, + 1010,1898,35,3401,32,4878,4745,27,30,31, + 936,954,338,28,159,2270,343,1506,1457,348, + 1010,318,1850,320,3209,313,1758,351,283,392, + 426,56,449,3584,3586,2972,69,351,2432,56, + 2861,4734,1614,2660,2540,343,1506,1457,348,332, + 2861,2552,2125,341,342,343,1506,1457,348,331, + 318,1850,320,1634,313,1758,351,2234,1354,56, + 2234,2972,1143,3878,2972,101,2542,1193,1543,35, + 1849,3201,1542,97,345,1506,1457,348,1728,302, + 2513,4587,1225,2513,2440,1643,3330,159,1543,35, + 1849,275,2545,98,3121,35,917,32,365,2504, + 27,30,31,936,954,26,28,811,25,23, + 50,1042,106,76,77,107,1139,3849,1255,1236, + 2094,3121,35,917,32,2626,2504,27,30,31, + 936,954,26,28,811,25,23,50,1042,106, + 76,77,107,1139,231,1255,1236,2202,359,2103, + 2244,359,588,35,292,1591,416,418,3373,2129, + 3564,292,1843,3019,3049,3202,3019,3049,2380,243, + 229,230,588,35,1849,277,3121,35,917,32, + 1900,2504,27,30,31,936,954,26,28,811, + 25,23,50,1042,106,76,77,107,1139,1887, + 1255,1236,2236,3121,35,917,32,286,2504,27, + 30,31,936,954,26,28,811,25,23,50, + 1042,106,76,77,107,1139,259,1255,1236,2328, + 536,2044,2415,588,35,1678,387,1180,2279,2551, + 3347,2972,4879,2122,2304,322,56,2646,4783,227, + 2972,2972,1607,1330,2446,155,3701,3660,838,1351, + 227,1096,2826,2540,179,3155,2858,272,2572,342, + 2513,56,202,214,4715,3975,201,211,212,213, + 215,168,1,1762,406,4692,536,588,35,1849, + 3364,2542,167,3569,182,166,169,170,171,172, + 173,2861,2453,1764,322,227,588,35,1678,387, + 331,155,284,1781,407,408,409,293,294,3148, + 179,3155,2858,2742,3012,181,1643,3330,202,214, + 4715,274,201,211,212,213,215,168,504,3079, + 272,2209,994,56,522,2941,4802,3857,167,180, + 183,166,169,170,171,172,173,2070,35,917, + 32,3989,3957,27,30,31,936,954,338,28, + 49,296,3231,35,1678,387,2582,3319,2515,502, + 503,1363,35,917,32,236,4745,27,30,31, + 936,954,338,28,56,3347,42,2913,3252,2556, + 410,412,2615,536,339,2882,272,1240,238,2285, + 2621,428,588,35,1678,387,318,1850,320,1250, + 313,1758,3634,1330,960,2249,69,3185,155,1143, + 2861,4818,351,525,231,3490,522,179,3155,332, + 318,1850,320,2715,314,1758,49,2972,286,2305, + 343,1506,1457,348,155,46,351,231,526,234, + 229,230,69,2858,534,194,342,4841,2306,231, + 273,1243,35,395,345,1506,1457,348,375,1515, + 2845,3347,239,229,230,2689,391,426,1077,241, + 244,247,250,802,246,229,230,1088,3066,35, + 917,32,1047,2504,27,30,31,936,954,26, + 28,811,25,23,50,1042,86,76,77,2995, + 2682,3007,3129,3316,4652,3121,35,917,32,1606, + 2504,27,30,31,936,954,26,28,811,25, + 23,50,1042,106,76,77,107,1139,2691,1255, + 2360,3121,35,917,32,2552,2504,27,30,31, + 936,954,26,28,811,25,23,50,1042,106, + 76,77,107,1139,345,1255,2385,2485,536,3865, + 3306,195,56,373,56,1285,1143,2693,1379,2972, + 4879,231,56,178,1354,69,1972,227,1143,540, + 4864,2649,1614,155,588,35,1849,280,227,1906, + 521,3568,179,3155,2858,56,249,229,230,2972, + 202,214,4715,159,201,211,212,213,215,168, + 431,1762,406,4692,536,3314,2280,441,342,455, + 167,1614,3859,166,169,170,171,172,173,2555, + 56,56,2646,227,536,2060,2972,2412,2831,155, + 2542,4471,407,408,409,293,294,3148,179,3155, + 2858,2580,1771,342,2641,2513,202,214,4715,155, + 201,211,212,213,215,168,517,3079,56,1456, + 536,1930,1143,2714,1088,2542,167,3370,177,166, + 169,170,171,172,173,322,2623,1419,2647,227, + 536,1614,2972,2722,56,155,1780,155,3993,929, + 35,1678,387,69,179,3155,2858,2503,4868,342, + 2717,2513,202,214,4715,155,201,211,212,213, + 215,168,603,504,450,187,536,2723,410,413, + 322,4613,167,49,175,166,169,170,171,172, + 173,737,1642,2868,2727,227,588,35,1678,387, + 56,155,295,2728,3964,2833,3377,2619,231,3177, + 179,3155,2858,2765,501,503,2481,2972,202,214, + 4715,2552,201,211,212,213,215,168,689,504, + 451,2627,536,252,229,230,342,521,167,189, + 176,166,169,170,171,172,173,303,2556,528, + 1675,227,1143,3361,2079,3575,56,155,3713,197, + 3308,932,35,1678,387,2552,179,3155,2858,56, + 501,503,1330,2972,202,214,4715,155,201,211, + 212,213,215,168,775,2923,199,3695,536,56, + 333,334,342,1143,167,49,186,166,169,170, + 171,172,173,196,1642,1892,56,227,322,2731, + 3097,3780,2858,155,2542,159,3736,2467,155,3012, + 2735,56,179,3155,2858,2061,1814,3563,1714,56, + 202,214,4715,3478,201,211,212,213,215,168, + 2447,35,1678,387,932,35,1678,387,89,1330, + 167,102,3869,166,169,170,171,172,173,1952, + 35,917,32,4878,3957,27,30,31,936,954, + 338,28,56,56,49,381,536,1143,49,588, + 35,1678,387,1642,2314,2082,861,1642,47,2858, + 536,44,2913,56,2732,342,2833,3294,1614,56, + 2288,155,155,961,375,2068,2736,1330,1330,227, + 3678,187,1720,433,2747,155,2746,4613,318,1850, + 320,2751,313,1758,179,3155,2858,588,35,1678, + 387,377,202,214,4715,312,201,211,212,213, + 215,168,929,35,1678,387,1614,2858,2858,947, + 2789,2737,167,536,191,166,169,170,171,172, + 173,49,524,523,56,1354,2750,2782,3529,1143, + 1642,740,227,2552,2552,3616,49,379,155,3398, + 1614,1614,305,309,1365,1642,47,179,3155,2858, + 588,35,1678,387,159,202,214,4715,1461,201, + 211,212,213,215,168,3828,1033,1614,1614,3476, + 536,301,200,3454,3556,167,3620,185,166,169, + 170,171,172,173,49,2552,56,2790,56,227, + 536,2552,2972,1642,880,155,588,35,1678,387, + 3577,3578,87,2413,179,3155,2858,2957,2755,342, + 2757,342,202,214,4715,155,201,211,212,213, + 215,168,2423,198,2759,187,2552,2761,1778,297, + 432,4613,167,2542,193,166,169,170,171,172, + 173,3121,35,917,32,1671,2504,27,30,31, + 936,954,26,28,811,25,23,50,1042,106, + 76,77,107,1139,2539,1893,3121,35,917,32, + 2153,2504,27,30,31,936,954,26,28,811, + 25,23,50,1042,106,76,77,107,1139,3650, + 1919,3121,35,917,32,1333,2504,27,30,31, + 936,954,26,28,811,25,23,50,1042,106, + 76,77,107,2024,3121,35,917,32,2552,2504, + 27,30,31,936,954,26,28,811,25,23, + 50,1042,106,76,77,107,2069,1562,1614,1614, + 2763,2972,588,35,1678,387,173,1823,2792,2797, + 2787,2972,2733,2768,2794,2796,221,2122,2552,2655, + 227,1337,4783,56,5437,5437,5437,536,737,5437, + 227,3868,3676,5437,56,1354,431,5437,1143,1143, + 5437,5437,5437,204,214,4715,342,203,211,212, + 213,215,155,204,214,4715,192,203,211,212, + 213,215,1413,155,159,5437,1607,5437,2542,5437, + 5437,3660,5437,1757,205,207,209,293,294,3148, + 1585,216,206,208,205,207,209,293,294,3148, + 3361,216,206,208,2062,35,3401,32,4878,3957, + 27,30,31,936,954,338,28,929,35,1678, + 387,2904,5437,4388,1910,2861,5437,5437,2972,2941, + 5437,3305,5437,4388,331,737,5437,3251,334,5437, + 56,5437,2632,5437,1143,5437,5437,227,5437,1607, + 5437,49,1354,737,3660,5437,1143,5437,5437,5437, + 1642,2684,5437,318,1850,320,2581,313,1758,155, + 204,214,4715,2906,203,211,212,213,215,1763, + 1193,159,1691,35,917,32,4878,3957,27,30, + 31,936,954,338,28,429,5437,3361,2861,5437, + 5437,205,207,209,293,294,3148,331,216,206, + 208,3121,35,917,32,3361,2504,27,30,31, + 936,954,26,28,811,25,23,50,1042,106, + 76,77,85,5437,329,334,5437,5437,3350,2981, + 4388,318,1850,320,5437,313,1758,5437,5437,3311, + 5437,5437,3491,334,5437,5437,5437,5437,312,5437, + 588,35,1678,387,5437,5437,5437,5437,5437,417, + 418,3373,3121,1685,917,1721,5437,2504,27,30, + 31,936,954,26,28,811,25,23,50,1042, + 106,76,77,84,49,5437,5437,5437,5437,5437, + 5437,5437,5437,1642,1227,306,309,1365,3121,35, + 917,32,5437,2504,27,30,31,936,954,26, + 28,811,25,23,50,1042,106,76,77,83, + 3121,35,917,32,5437,2504,27,30,31,936, + 954,26,28,811,25,23,50,1042,106,76, + 77,82,3121,35,917,32,5437,2504,27,30, + 31,936,954,26,28,811,25,23,50,1042, + 106,76,77,81,3121,35,917,32,5437,2504, + 27,30,31,936,954,26,28,811,25,23, + 50,1042,106,76,77,80,3121,35,917,32, + 5437,2504,27,30,31,936,954,26,28,811, + 25,23,50,1042,106,76,77,79,3121,35, + 917,32,5437,2504,27,30,31,936,954,26, + 28,811,25,23,50,1042,106,76,77,78, + 2950,35,917,32,5437,2504,27,30,31,936, + 954,26,28,811,25,23,50,1042,106,76, + 77,104,3121,35,917,32,5437,2504,27,30, + 31,936,954,26,28,811,25,23,50,1042, + 106,76,77,109,3121,35,917,32,5437,2504, + 27,30,31,936,954,26,28,811,25,23, + 50,1042,106,76,77,108,3121,35,917,32, + 5437,2504,27,30,31,936,954,26,28,811, + 25,23,50,1042,106,76,77,105,1997,56, + 56,5437,2972,1143,1143,5437,5437,5437,1649,5437, + 5437,5437,2972,5437,5437,5437,5437,5437,1736,5437, + 5437,227,2972,5437,5437,5437,5437,5437,155,155, + 5437,227,5437,5437,5437,5437,5437,5437,2590,3848, + 5437,227,5437,5437,204,214,4715,5437,203,211, + 212,213,215,5437,204,214,4715,5437,203,211, + 212,213,215,5437,204,214,4715,5437,203,211, + 212,213,215,5437,5437,205,207,209,293,294, + 3148,5437,519,206,208,205,207,209,293,294, + 3148,5437,518,206,208,205,207,209,293,294, + 3148,2084,217,206,208,2972,5437,5437,5437,5437, + 5437,2171,5437,5437,5437,2972,5437,5437,5437,5437, + 5437,5437,5437,5437,227,5437,588,35,1678,387, + 5437,5437,5437,5437,227,5437,5437,5437,5437,5437, + 5437,5437,5437,5437,5437,5437,5437,204,214,4715, + 5437,203,211,212,213,215,5437,204,214,4715, + 49,203,211,212,213,215,5437,5437,5437,1642, + 1266,5437,5437,5437,5437,5437,5437,5437,205,207, + 209,293,294,3148,5437,304,206,208,205,207, + 209,293,294,3148,5437,498,206,208,1691,35, + 917,32,4878,3957,27,30,31,936,954,338, + 28,5437,5437,5437,5437,5437,5437,2156,35,917, + 32,5437,4745,27,30,31,936,954,338,28, + 2156,35,917,32,5437,4745,27,30,31,936, + 954,338,28,1691,35,917,32,4878,3957,27, + 30,31,936,954,338,28,5437,318,1850,320, + 5437,313,1758,5437,5437,5437,2861,588,35,1678, + 387,5437,5437,5437,2432,332,318,1850,320,2861, + 316,1758,3280,35,1678,387,5437,3319,332,318, + 1850,320,5437,314,1758,237,5437,5437,5437,5437, + 5437,49,318,1850,320,5437,313,1758,5437,5437, + 1642,658,5437,5437,5437,5437,272,5437,5437,3864, + 5437,5437,1490,35,917,32,2591,3957,27,30, + 31,936,954,338,28,1375,5437,5437,1375,2972, + 3660,5437,2972,3660,231,2236,35,917,32,2387, + 3957,27,30,31,936,954,338,28,2513,5437, + 402,2513,5437,5437,932,35,1678,387,5437,235, + 229,230,5437,5437,5437,929,35,1678,387,5437, + 273,315,3313,320,2861,5437,5437,2861,5437,5437, + 5437,5437,5437,331,5437,5437,331,5437,49,242, + 245,248,251,802,315,3313,320,1642,47,49, + 5437,5437,1047,929,35,1678,387,5437,1642,1033, + 2277,929,35,1678,387,2581,359,5437,2981,359, + 5437,2906,929,35,1678,387,5437,5437,5437,5437, + 1677,3019,3049,1677,3019,3049,5437,49,1962,35, + 1678,387,5437,5437,5437,49,1642,47,5437,5437, + 5437,5437,5437,5437,1642,47,49,5437,5437,931, + 5437,929,35,1678,387,1642,47,3366,5437,5437, + 1977,5437,49,5437,5437,5437,5437,5437,3549,5437, + 5437,1642,47,5437,929,35,1678,387,2167,35, + 1678,387,2208,1977,1186,49,2972,5437,1607,588, + 35,1678,387,3660,1642,47,56,56,5437,5437, + 536,2972,5437,5437,5437,342,56,3706,49,5437, + 2972,5437,49,5437,5437,529,5437,1642,47,342, + 342,1642,47,49,56,155,5437,2542,2972,342, + 3852,5437,1642,2502,2752,187,5437,2861,5437,532, + 5437,4613,2542,5437,5437,5437,331,342,5437,5437, + 5437,2542,5437,5437,508,5437,5437,5437,5437,5437, + 5437,5437,5437,506,5437,5437,5437,5437,5437,2542, + 5437,5437,5437,5437,5437,5437,5437,5437,4600,5437, + 5437,533,5437,5437,5437,5437,5437,5437,5437,5437, + 5437,5437,5437,5437,5437,5437,5437,5437,5437,3651, + 5437,5437,5437,5437,5437,5437,5437,5437,5437,5437, + 5437,5437,5437,5437,5437,5437,5437,5437,5437,5437, + 5437,5437,5437,5437,5437,5437,5437,5437,5437,5437, + 5437,5437,5437,5437,5437,5437,5437,5437,5437,5437, + 5437,5437,5437,5437,5437,5437,5437,5437,5437,5437, + 5437,5437,5437,5437,5437,5437,5437,5437,5437,5437, + 5437,5437,5437,5437,5437,5437,5437,5437,5437,5437, + 5437,5437,5437,5437,5437,5437,5437,5437,5437,5437, + 3386,5437,0,39,5452,0,39,5451,0,565, + 29,0,439,799,0,453,875,0,38,626, + 0,38,5452,0,38,5451,0,2776,125,0, + 1,443,0,457,2031,0,456,2099,0,2537, + 91,0,565,386,0,35,33,0,32,34, + 0,39,626,0,1,728,0,1,5708,0, + 1,5707,0,1,5706,0,1,5705,0,1, + 5704,0,1,5703,0,1,5702,0,1,5701, + 0,1,5700,0,1,5699,0,1,5698,0, + 39,1,5452,0,39,1,5451,0,735,1, + 0,282,393,0,282,285,0,5670,240,0, + 5669,240,0,5774,240,0,5773,240,0,5697, + 240,0,5696,240,0,5695,240,0,5694,240, + 0,5693,240,0,5692,240,0,5691,240,0, + 5690,240,0,5708,240,0,5707,240,0,5706, + 240,0,5705,240,0,5704,240,0,5703,240, + 0,5702,240,0,5701,240,0,5700,240,0, + 5699,240,0,5698,240,0,39,5452,240,0, + 39,5451,240,0,5475,240,0,5452,48,0, + 5451,48,0,43,5473,0,43,37,0,2776, + 127,0,2776,126,0,5443,1,0,5442,1, + 0,2575,236,0,32,387,0,29,386,0, + 330,444,0,1,92,0,47,37,0,5475, + 1,0,39,1,0,500,3085,0,5475,1, + 228,0,39,1,228,0,228,415,0,5452, + 37,0,5451,37,0,5473,45,0,37,45, + 0,5452,36,0,5451,36,0,5452,2,37, + 0,5451,2,37,0,5447,404,0,5446,404, + 0,1,4568,0,1,3043,0,1,626,0, + 228,414,0,330,95,0,35,73,0,2629, + 317,0,1,330,0,3194,277,0,500,4378, + 0,1,228,0,228,219,0,228,218,0, + 1,574,0,1,2442,0,5449,1,0,5445, + 1,0,1,228,3697,0,5446,228,0,3712, + 228,0,5449,382,0,5448,382,0,3856,228, + 0,10,12,0,8,10,12,0,184,3619, + 0,3871,382,0,8,12,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1452,346 +1461,346 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 5391,5356,5335,5335,5335,5335,5335,5335,5372,5335, + 5437,5402,5381,5381,5381,5381,5381,5381,5418,5381, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5360,1,1, + 1,1,1,1,1,1,1,5406,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,138,1, - 1,1,1,1,1,1,1,1,1,1806, - 1,5565,2694,114,3636,1,1,5402,39,3795, - 5391,5398,5429,4778,877,3887,3210,2203,2844,3770, - 3183,3884,1086,3850,3459,3848,10,5375,5375,5375, - 5375,5375,5375,5375,5375,5375,5375,5375,5375,5375, - 5375,5375,5375,5375,5375,5375,5375,5375,5375,5375, - 5375,5375,5375,5375,5375,5375,5375,5375,5375,5375, - 5375,5375,5375,5375,5375,5375,5375,5375,5375,5375, - 5375,5375,5375,5375,330,5375,5375,5375,5375,5375, - 5375,394,5375,5375,5375,5375,5375,5375,5375,2241, - 5375,5375,5375,5375,2571,3772,630,5375,383,5391, - 5375,5375,5375,5375,5375,5375,5375,5375,5375,5375, - 5375,5375,8,5378,5378,5378,5378,5378,5378,5378, - 5378,5378,5378,5378,5378,5378,5378,5378,5378,5378, - 5378,5378,5378,5378,5378,5378,5378,5378,5378,5378, - 5378,5378,5378,5378,5378,5378,5378,5378,5378,5378, - 5378,5378,5378,5378,5378,5378,5378,5378,5378,5378, - 5391,5378,5378,5378,5378,5378,5378,2714,5378,5378, - 5378,5378,5378,5378,5378,300,5378,5378,5378,5378, - 285,5128,5128,5378,282,5690,5378,5378,5378,5378, - 5378,5378,5378,5378,5378,5378,5378,5378,5391,5356, - 5335,5335,5335,5335,5335,5335,5363,5335,1,1, + 1,1,1,1,1,1,1,1,1,2281, + 1,5611,2569,114,3479,1,1,5448,39,3824, + 5437,5444,5475,3250,3442,3737,3435,2203,3391,3637, + 3174,3734,1806,3720,3418,3718,10,5421,5421,5421, + 5421,5421,5421,5421,5421,5421,5421,5421,5421,5421, + 5421,5421,5421,5421,5421,5421,5421,5421,5421,5421, + 5421,5421,5421,5421,5421,5421,5421,5421,5421,5421, + 5421,5421,5421,5421,5421,5421,5421,5421,5421,5421, + 5421,5421,5421,5421,330,5421,5421,5421,5421,5421, + 5421,394,5421,5421,5421,5421,5421,5421,5421,2241, + 5421,5421,5421,5421,3288,3801,630,5421,383,5437, + 5421,5421,5421,5421,5421,5421,5421,5421,5421,5421, + 5421,5421,8,5424,5424,5424,5424,5424,5424,5424, + 5424,5424,5424,5424,5424,5424,5424,5424,5424,5424, + 5424,5424,5424,5424,5424,5424,5424,5424,5424,5424, + 5424,5424,5424,5424,5424,5424,5424,5424,5424,5424, + 5424,5424,5424,5424,5424,5424,5424,5424,5424,5424, + 5437,5424,5424,5424,5424,5424,5424,2642,5424,5424, + 5424,5424,5424,5424,5424,300,5424,5424,5424,5424, + 285,5174,5174,5424,282,5736,5424,5424,5424,5424, + 5424,5424,5424,5424,5424,5424,5424,5424,5437,5402, + 5381,5381,5381,5381,5381,5381,5409,5381,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5360,1,1,1,1, + 1,1,1,1,1,5406,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5391,1,1,1, - 1,1,1,438,1,1,1,1806,1,5565, - 2694,5391,3636,1,1,5402,5391,5030,5027,5399, - 5429,5391,877,3887,3210,2203,2844,3770,3183,3884, - 1086,3850,3459,3848,5391,5356,5335,5335,5335,5335, - 5335,5335,5363,5335,1,1,1,1,1,1, + 1,1,1,1,1,1,5437,1,1,1, + 1,1,1,438,1,1,1,2281,1,5611, + 2569,5437,3479,1,1,5448,5437,5076,5073,5445, + 5475,5437,3442,3737,3435,2203,3391,3637,3174,3734, + 1806,3720,3418,3718,5437,5402,5381,5381,5381,5381, + 5381,5381,5409,5381,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5360,1,1,1,1,1,1,1,1, + 1,5406,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5398,1,1,1,1,1,1,134, - 1,1,1,1806,1,5565,2694,116,3636,1, - 1,5402,110,3795,5391,5825,5826,5827,877,3887, - 3210,2203,2844,3770,3183,3884,1086,3850,3459,3848, - 5391,5356,5335,5335,5335,5335,5335,5335,5363,5335, + 1,1,5444,1,1,1,1,1,1,134, + 1,1,1,2281,1,5611,2569,116,3479,1, + 1,5448,110,3824,5437,5871,5872,5873,3442,3737, + 3435,2203,3391,3637,3174,3734,1806,3720,3418,3718, + 5437,5402,5381,5381,5381,5381,5381,5381,5409,5381, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5360,1,1, + 1,1,1,1,1,1,1,5406,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5391,1, - 1,1,1,1,1,135,1,1,1,1806, - 1,5565,2694,130,3636,1,1,5402,2324,3772, - 630,4237,594,4259,877,3887,3210,2203,2844,3770, - 3183,3884,1086,3850,3459,3848,5391,5356,5335,5335, - 5335,5335,5335,5335,5363,5335,1,1,1,1, + 1,1,1,1,1,1,1,1,5437,1, + 1,1,1,1,1,135,1,1,1,2281, + 1,5611,2569,130,3479,1,1,5448,2324,3801, + 630,4302,594,4324,3442,3737,3435,2203,3391,3637, + 3174,3734,1806,3720,3418,3718,5437,5402,5381,5381, + 5381,5381,5381,5381,5409,5381,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5360,1,1,1,1,1,1, + 1,1,1,5406,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5391,1,1,1,1,1, - 1,5391,1,1,1,1806,1,5565,2694,115, - 3636,1,1,5402,2324,3795,120,5391,5405,5406, - 877,3887,3210,2203,2844,3770,3183,3884,1086,3850, - 3459,3848,5391,5356,5335,5335,5335,5335,5335,5335, - 5363,5335,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5360, + 1,1,1,1,5437,1,1,1,1,1, + 1,5437,1,1,1,2281,1,5611,2569,115, + 3479,1,1,5448,2324,3824,120,5437,5451,5452, + 3442,3737,3435,2203,3391,3637,3174,3734,1806,3720, + 3418,3718,5437,5402,5381,5381,5381,5381,5381,5381, + 5409,5381,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5406, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5391,1,1,1,1,1,1,5391,1,1, - 1,1806,1,5565,2694,5391,3636,1,1,5402, - 2924,3772,630,3134,3160,5391,877,3887,3210,2203, - 2844,3770,3183,3884,1086,3850,3459,3848,5391,5356, - 5335,5335,5335,5335,5335,5335,5363,5335,1,1, + 5437,1,1,1,1,1,1,5437,1,1, + 1,2281,1,5611,2569,5437,3479,1,1,5448, + 2458,3801,630,3125,3151,5437,3442,3737,3435,2203, + 3391,3637,3174,3734,1806,3720,3418,3718,5437,5402, + 5381,5381,5381,5381,5381,5381,5409,5381,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5360,1,1,1,1, + 1,1,1,1,1,5406,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,335,1,1,1, - 1,1,1,2765,1,1,1,1806,1,5565, - 2694,5391,3636,1,1,5402,5391,5405,5406,5727, - 5728,2924,877,3887,3210,2203,2844,3770,3183,3884, - 1086,3850,3459,3848,5391,5356,5335,5335,5335,5335, - 5335,5335,5363,5335,1,1,1,1,1,1, + 1,1,1,2750,1,1,1,2281,1,5611, + 2569,5437,3479,1,1,5448,5437,5451,5452,5773, + 5774,2458,3442,3737,3435,2203,3391,3637,3174,3734, + 1806,3720,3418,3718,5437,5402,5381,5381,5381,5381, + 5381,5381,5409,5381,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5360,1,1,1,1,1,1,1,1, + 1,5406,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5391,1,1,1,1,1,1,5391, - 1,1,1,1806,1,5565,2694,1,3636,1, - 1,5402,5391,5030,5027,5353,5429,5391,877,3887, - 3210,2203,2844,3770,3183,3884,1086,3850,3459,3848, - 5391,5356,5335,5335,5335,5335,5335,5335,5363,5335, + 1,1,5437,1,1,1,1,1,1,5437, + 1,1,1,2281,1,5611,2569,1,3479,1, + 1,5448,5437,5076,5073,5399,5475,5437,3442,3737, + 3435,2203,3391,3637,3174,3734,1806,3720,3418,3718, + 5437,5402,5381,5381,5381,5381,5381,5381,5409,5381, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5360,1,1, + 1,1,1,1,1,1,1,5406,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5398,1, - 1,1,1,1,1,2773,1,1,1,1806, - 1,5565,2694,5391,3636,1,1,5402,5391,5214, - 5211,48,5214,5211,877,3887,3210,2203,2844,3770, - 3183,3884,1086,3850,3459,3848,5391,5356,5335,5335, - 5335,5335,5335,5335,5363,5335,1,1,1,1, + 1,1,1,1,1,1,1,1,5444,1, + 1,1,1,1,1,2768,1,1,1,2281, + 1,5611,2569,5437,3479,1,1,5448,5437,5260, + 5257,48,5260,5257,3442,3737,3435,2203,3391,3637, + 3174,3734,1806,3720,3418,3718,5437,5402,5381,5381, + 5381,5381,5381,5381,5409,5381,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5360,1,1,1,1,1,1, + 1,1,1,5406,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5391,1,1,1,1,1, - 1,5391,1,1,1,1806,1,5565,2694,5391, - 3636,1,1,5402,113,5391,91,5395,3619,5063, - 877,3887,3210,2203,2844,3770,3183,3884,1086,3850, - 3459,3848,5391,3776,1,1,1,1,1,1, - 3845,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5400, + 1,1,1,1,5437,1,1,1,1,1, + 1,5437,1,1,1,2281,1,5611,2569,5437, + 3479,1,1,5448,113,5437,91,5441,2575,5109, + 3442,3737,3435,2203,3391,3637,3174,3734,1806,3720, + 3418,3718,5437,3697,1,1,1,1,1,1, + 3712,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5446, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5391,1,1,1,1,1,1,5391,1,1, - 1,1806,1,5565,2694,5391,3636,1,1,5402, - 5391,1629,5391,4237,5719,4259,877,3887,3210,2203, - 2844,3770,3183,3884,1086,3850,3459,3848,39,5030, - 5027,1137,735,4052,4127,3013,5394,4149,795,5654, - 5652,5661,5660,5656,5657,5655,5658,5659,5662,5653, - 5650,5727,5728,4105,4083,136,5644,5651,5647,5623, - 5649,5648,5645,5646,5624,4193,4171,5410,5788,4022, - 617,729,5412,665,3107,680,5391,5413,5411,593, - 5407,5408,5409,5391,671,5789,5790,793,1336,5391, - 5266,5266,228,5262,228,228,228,5270,228,1, + 5437,1,1,1,1,1,1,5437,1,1, + 1,2281,1,5611,2569,5437,3479,1,1,5448, + 5437,1291,5437,4302,1212,4324,3442,3737,3435,2203, + 3391,3637,3174,3734,1806,3720,3418,3718,39,5076, + 5073,1137,735,4112,4192,3043,5440,4214,863,5700, + 5698,5707,5706,5702,5703,5701,5704,5705,5708,5699, + 5696,5773,5774,4170,4148,136,5690,5697,5693,5669, + 5695,5694,5691,5692,5670,4258,4236,5456,5834,4051, + 617,729,5458,665,3098,722,5437,5459,5457,593, + 5453,5454,5455,5437,1403,5835,5836,2859,1336,5437, + 5312,5312,228,5308,228,228,228,5316,228,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5391,3938,228,1,1,1, - 1,1,1,1,1,1,5391,5030,5027,1, - 735,5075,124,3013,223,132,5391,5259,393,5125, - 5125,5391,282,5391,2855,1,1,1,2642,224, - 5802,1271,396,5405,5406,2291,5650,5727,5728,357, - 415,228,5644,5651,5647,5623,5649,5648,5645,5646, - 5624,5650,5727,5728,941,5890,5391,5644,5651,5647, - 5623,5649,5648,5645,5646,5624,282,5391,5391,8787, - 8787,5825,5826,5827,5391,5266,5266,228,5262,228, - 228,228,5314,228,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,3134, - 3160,228,1,1,1,1,1,1,1,1, - 1,3216,33,2356,1,5069,5427,5391,5069,5391, - 5069,5069,5259,37,5250,5250,8,5403,5250,5747, - 1,1,1,2642,5388,5802,1271,5069,5069,5069, - 43,5220,5220,1,128,414,228,5391,5391,5069, - 5069,160,344,5030,5027,2552,735,626,330,3013, - 5890,330,5391,5391,1,5256,5256,5069,5253,5391, - 330,3007,362,330,123,5069,5825,5826,5827,1, - 5069,5069,5069,5069,5069,5069,5402,5026,5217,366, - 5118,5114,2552,5122,626,1,3013,5388,1,5069, - 5069,5069,5069,5069,5069,5069,5069,5069,5069,5069, - 5069,5069,5069,5069,5391,1896,160,5069,5069,5069, - 5069,5069,5069,5069,5069,5069,5069,5069,5069,5069, - 5391,5069,5069,5072,117,1934,5072,362,5072,5072, - 2473,2400,29,386,386,5241,386,386,5241,386, - 5241,5241,1896,3406,362,5072,5072,5072,1189,3747, - 2769,3134,3160,5391,386,386,386,5072,5072,5241, + 1,1,1,1,5437,3850,228,1,1,1, + 1,1,1,1,1,1,5437,5076,5073,1, + 735,5121,124,3043,223,132,5437,5305,393,5171, + 5171,5437,282,5437,2832,1,1,1,2530,224, + 5848,1271,396,5451,5452,2291,5696,5773,5774,357, + 415,228,5690,5697,5693,5669,5695,5694,5691,5692, + 5670,5696,5773,5774,941,5936,5437,5690,5697,5693, + 5669,5695,5694,5691,5692,5670,282,5437,5437,8833, + 8833,5871,5872,5873,5437,5312,5312,228,5308,228, + 228,228,5360,228,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,3125, + 3151,228,1,1,1,1,1,1,1,1, + 1,2621,33,2356,1,5115,5473,5437,5115,5437, + 5115,5115,5305,37,5296,5296,8,5449,5296,5793, + 1,1,1,2530,5434,5848,1271,5115,5115,5115, + 43,5266,5266,1,128,414,228,5437,5437,5115, + 5115,160,344,5076,5073,2552,735,626,330,3043, + 5936,330,5437,5437,1,5302,5302,5115,5299,5437, + 330,2668,362,330,123,5115,5871,5872,5873,1, + 5115,5115,5115,5115,5115,5115,5448,5072,5263,366, + 5164,5160,2552,5168,626,1,3043,5434,1,5115, + 5115,5115,5115,5115,5115,5115,5115,5115,5115,5115, + 5115,5115,5115,5115,5437,1896,160,5115,5115,5115, + 5115,5115,5115,5115,5115,5115,5115,5115,5115,5115, + 5437,5115,5115,5118,117,1934,5118,362,5118,5118, + 2473,2400,29,386,386,5287,386,386,5287,386, + 5287,5287,1896,3184,362,5118,5118,5118,1189,3776, + 3751,3125,3151,5437,386,386,386,5118,5118,5287, 386,386,386,386,386,386,386,386,386,1, - 5118,5114,5305,5122,5311,5072,5308,5401,5391,38, - 5048,5045,1,5072,5042,3378,3013,5033,5072,5072, - 5072,5072,5072,5072,5391,5241,5400,308,5118,5114, - 4470,5122,626,5326,3013,5241,5326,5072,5072,5072, - 5072,5072,5072,5072,5072,5072,5072,5072,5072,5072, - 5072,5072,36,5288,5285,5072,5072,5072,5072,5072, - 5072,5072,5072,5072,5072,5072,5072,5072,122,5072, - 5072,5391,5335,5335,228,5335,228,228,228,5338, + 5164,5160,5351,5168,5357,5118,5354,5447,5437,38, + 5094,5091,1,5118,5088,3698,3043,5079,5118,5118, + 5118,5118,5118,5118,5437,5287,5446,308,5164,5160, + 4568,5168,626,5372,3043,5287,5372,5118,5118,5118, + 5118,5118,5118,5118,5118,5118,5118,5118,5118,5118, + 5118,5118,36,5334,5331,5118,5118,5118,5118,5118, + 5118,5118,5118,5118,5118,5118,5118,5118,122,5118, + 5118,5437,5381,5381,228,5381,228,228,228,5384, 228,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5791,5391,228,1, - 1,8705,1,1,1,1,1,1,443,1, - 1,1,1,5391,5054,225,39,5054,5391,5332, - 5429,5401,330,5391,121,330,138,1,1,1, - 2811,5397,5601,2694,457,3636,456,5650,5727,5728, - 5400,5391,219,5644,5651,5647,5623,5649,5648,5645, - 5646,5624,289,5405,5406,3134,3160,5890,5391,5335, - 5335,228,5335,228,228,228,228,228,1,1, + 1,1,1,1,1,1,5837,5437,228,1, + 1,8751,1,1,1,1,1,1,443,1, + 1,1,1,5437,5100,225,39,5100,5437,5378, + 5475,5447,330,5437,121,330,138,1,1,1, + 2759,5443,5647,2569,457,3479,456,5696,5773,5774, + 5446,5437,219,5690,5697,5693,5669,5695,5694,5691, + 5692,5670,289,5451,5452,3125,3151,5936,5437,5381, + 5381,228,5381,228,228,228,228,228,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,3915,5391,228,1,1,8705,1, - 1,1,1,1,1,1853,5396,5057,1,5060, - 1,5118,5114,4470,5122,626,5332,3013,112,111, - 133,3134,3160,3433,1,1,1,2811,129,5601, - 2694,131,3636,3456,5391,5030,5027,2241,735,626, - 594,3013,2571,1810,1767,1724,1681,1638,1595,1552, - 1509,1466,1423,5391,5890,5391,5335,5335,228,5335, - 228,228,228,5341,228,1,1,1,1,1, + 1,1,1,3944,5437,228,1,1,8751,1, + 1,1,1,1,1,1853,5442,5103,1,5106, + 1,5164,5160,4568,5168,626,5378,3043,112,111, + 133,3125,3151,3271,1,1,1,2759,129,5647, + 2569,131,3479,3257,5437,5076,5073,2241,735,626, + 594,3043,3288,1810,1767,1724,1681,1638,1595,1552, + 1509,1466,1423,5437,5936,5437,5381,5381,228,5381, + 228,228,228,5387,228,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 531,5391,228,1,1,8705,1,1,1,1, - 1,1,444,39,39,1,5429,5391,5244,226, - 5391,5244,137,5332,2540,5399,5391,4237,4237,4259, - 4259,1,1,1,2811,1,5601,2694,2356,3636, - 5391,5650,5727,5728,2473,2400,218,5644,5651,5647, - 5623,5649,5648,5645,5646,5624,3270,37,5250,5250, - 3707,5890,5391,5335,5335,228,5335,228,228,228, - 5338,228,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1004,5398,228, - 1,1,8705,1,1,1,1,1,1,5391, - 5030,5027,1,735,5075,3090,3013,92,1,1, - 5332,1,346,5247,236,1586,5247,5235,1,1, - 1,2811,2291,5601,2694,5749,3636,1,5118,5114, - 2552,5122,626,219,3013,5229,5391,5391,5118,5114, - 4470,5122,626,5326,3013,369,5326,1275,5890,5391, - 5335,5335,228,5335,228,228,228,5338,228,1, + 531,5437,228,1,1,8751,1,1,1,1, + 1,1,444,39,39,1,5475,5437,5290,226, + 5437,5290,137,5378,3424,5445,5437,4302,4302,4324, + 4324,1,1,1,2759,1,5647,2569,2356,3479, + 5437,5696,5773,5774,2473,2400,218,5690,5697,5693, + 5669,5695,5694,5691,5692,5670,2846,37,5296,5296, + 3591,5936,5437,5381,5381,228,5381,228,228,228, + 5384,228,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1004,5444,228, + 1,1,8751,1,1,1,1,1,1,5437, + 5076,5073,1,735,5121,2688,3043,92,1,1, + 5378,1,346,5293,236,1500,5293,5281,1,1, + 1,2759,2291,5647,2569,5795,3479,1,5164,5160, + 2552,5168,626,219,3043,5275,5437,5437,5164,5160, + 4568,5168,626,5372,3043,369,5372,1275,5936,5437, + 5381,5381,228,5381,228,228,228,5384,228,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5391,1896,228,1,1,8705, - 1,1,1,1,1,1,5391,5276,5273,1, - 1896,1,5118,5114,4470,5122,626,5332,3013,308, - 5232,5391,8614,8376,119,1,1,1,2811,2027, - 5601,2694,5391,3636,1232,5391,5405,5406,308,5391, - 219,156,344,39,39,2433,5429,347,330,3747, - 2769,330,5391,5391,5427,5890,5391,5335,5335,228, - 5335,228,228,228,228,228,1,1,1,1, + 1,1,1,1,5437,1896,228,1,1,8751, + 1,1,1,1,1,1,5437,5322,5319,1, + 1896,1,5164,5160,4568,5168,626,5378,3043,308, + 5278,5437,8660,8422,119,1,1,1,2759,2027, + 5647,2569,5437,3479,1232,5437,5451,5452,308,5437, + 219,156,344,39,39,2433,5475,347,330,3776, + 3751,330,5437,5437,5473,5936,5437,5381,5381,228, + 5381,228,228,228,228,228,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,118,5391,228,1,1,8705,1,1,1, - 1,1,1,95,39,39,1,5429,5391,5317, - 4215,1008,5317,374,5332,1896,3747,2769,404,300, - 1896,1380,1,1,1,2811,5299,5601,2694,5690, - 3636,1,5118,5114,4470,5122,626,5391,3013,1, - 5118,5114,2552,5122,626,5302,3013,3313,45,5282, - 5282,5391,5890,5391,5335,5335,228,5335,228,228, + 1,118,5437,228,1,1,8751,1,1,1, + 1,1,1,95,39,39,1,5475,5437,5363, + 4280,1008,5363,374,5378,1896,3776,3751,404,300, + 1896,1380,1,1,1,2759,5345,5647,2569,5736, + 3479,1,5164,5160,4568,5168,626,5437,3043,1, + 5164,5160,2552,5168,626,5348,3043,3215,45,5328, + 5328,5437,5936,5437,5381,5381,228,5381,228,228, 228,228,228,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,3348,5391, - 228,1,1,8705,1,1,1,1,1,1, - 3024,39,5391,1,5391,5429,5279,3211,5391,5405, - 5406,5332,1896,2027,394,4416,5403,3190,387,1, - 1,1,2811,945,5601,2694,1,3636,310,2433, - 317,3243,5391,5323,340,330,5030,5027,4470,735, - 626,3938,3013,5391,5295,5291,5391,8614,8376,5890, - 5391,5335,5335,228,5335,228,228,228,228,228, + 1,1,1,1,1,1,1,1,3026,5437, + 228,1,1,8751,1,1,1,1,1,1, + 3241,39,5437,1,5437,5475,5325,3459,5437,5451, + 5452,5378,1896,2027,394,4481,5449,2847,387,1, + 1,1,2759,984,5647,2569,1,3479,310,2433, + 317,3182,5437,5369,340,330,5076,5073,4568,735, + 626,3850,3043,5437,5341,5337,5437,8660,8422,5936, + 5437,5381,5381,228,5381,228,228,228,228,228, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5402,5391,228,1,1, - 8705,1,1,1,1,1,1,1,39,1896, - 1,5427,5429,1896,340,5397,340,1094,5332,340, - 3980,5391,3190,5825,5826,5827,1,1,1,2811, - 3426,5601,2694,1,3636,1,5118,5114,5305,5122, - 5311,362,5308,5391,75,5391,3265,3620,5391,1, - 1,1,1,1,1,1,5890,1,1,1, + 1,1,1,1,1,5448,5437,228,1,1, + 8751,1,1,1,1,1,1,1,39,1896, + 1,5473,5475,1896,340,5443,340,1094,5378,340, + 3862,5437,2847,5871,5872,5873,1,1,1,2759, + 3062,5647,2569,1,3479,1,5164,5160,5351,5168, + 5357,362,5354,5437,75,5437,3543,2658,5437,1, + 1,1,1,1,1,1,5936,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5391,5405,5406,1,1,626,3324,3013,5391,100, - 5396,5453,5454,125,395,1,1,1,386,1, - 1,1,1,1,1,1,5391,1,1,1, - 1,1,1,514,361,5391,362,1978,1,5926, - 5391,2617,5391,1,1,1,5118,5114,1137,5122, - 4052,4127,3013,362,4149,5078,5105,5111,5084,5087, - 5099,5096,5102,5093,5090,5081,5108,5391,2814,565, - 4105,4083,3834,5391,5030,5027,5902,735,626,579, - 3013,5051,4193,4171,5410,5391,4022,617,729,5412, - 665,3107,680,667,5413,5411,593,5407,5408,5409, - 37,5250,5250,883,3820,1336,330,2715,2649,5391, - 39,39,3700,515,39,5030,5027,1137,735,4052, - 4127,3013,5385,4149,863,5654,5652,5661,5660,5656, - 5657,5655,5658,5659,5662,5653,5391,5276,5273,4105, - 4083,1,1,5391,5391,5391,37,3823,5427,5350, - 527,4193,4171,5410,127,4022,617,729,5412,665, - 3107,680,5391,5413,5411,593,5407,5408,5409,37, - 5250,5250,1,5391,1336,5391,5391,5214,5211,48, - 162,5369,5391,5406,5427,5398,140,5030,5027,1137, - 735,4052,4127,3013,5427,4149,863,5654,5652,5661, - 5660,5656,5657,5655,5658,5659,5662,5653,5402,2814, - 5391,4105,4083,1,99,527,2433,5427,5397,319, - 126,5229,5223,4193,4171,5410,5391,4022,617,729, - 5412,665,3107,680,5406,5413,5411,593,5407,5408, - 5409,4215,1008,5831,5391,162,1336,4314,2715,2649, - 5845,39,39,1,5118,5114,1137,5122,4052,4127, - 3013,29,4149,5078,5105,5111,5084,5087,5099,5096, - 5102,5093,5090,5081,5108,2814,1896,1048,4105,4083, - 3560,5391,1896,5396,367,1,5232,439,5226,5401, - 4193,4171,5410,5401,4022,617,729,5412,665,3107, - 680,47,5413,5411,593,5407,5408,5409,5400,5391, - 5391,427,5400,1336,2715,2649,5033,5391,39,39, - 39,5030,5027,1137,735,4052,4127,3013,5366,4149, - 863,5654,5652,5661,5660,5656,5657,5655,5658,5659, - 5662,5653,5036,5391,5391,4105,4083,4315,103,2458, - 5391,4316,1,1293,1685,453,29,4193,4171,5410, - 190,4022,617,729,5412,665,3107,680,5391,5413, - 5411,593,5407,5408,5409,1,1,4303,5391,190, - 1336,386,1814,2843,184,5344,5344,5369,39,5030, - 5027,1137,735,4052,4127,3013,5366,4149,863,5654, - 5652,5661,5660,5656,5657,5655,5658,5659,5662,5653, - 5039,565,5391,4105,4083,5347,5347,48,5391,394, - 5391,5405,73,3696,3696,4193,4171,5410,423,4022, - 617,729,5412,665,3107,680,5066,5413,5411,593, - 5407,5408,5409,5391,1,447,290,559,1336,5859, - 5853,5391,288,5857,2894,5369,277,5391,419,5329, - 5391,35,5391,3654,425,5391,507,565,3434,5851, - 5852,520,5405,3433,565,5391,448,5320,4328,505, - 5391,5882,5883,4826,5391,5860,5391,4590,5391,4837, - 5391,2672,5391,4850,1,3849,5391,5391,3204,5862, - 3961,5391,2684,5391,5391,5382,5391,739,1,1513, - 1556,5391,5863,5861,5884,2065,5391,921,307,5391, - 3821,5391,1891,5391,5391,509,5391,2153,5391,2115, - 3575,5873,5872,5885,3475,3421,5854,5855,5878,5879, - 5876,5877,5856,5858,5880,5881,2452,3615,3432,5886, - 5391,5866,5867,5868,5864,5865,5874,5875,5870,5869, - 5871,39,5030,5027,1137,735,4052,4127,3013,5395, - 4149,863,5654,5652,5661,5660,5656,5657,5655,5658, - 5659,5662,5653,3237,3857,3575,4105,4083,2798,3938, - 2,3291,1984,3345,807,5391,5391,5391,4193,4171, - 5410,3989,4022,617,729,5412,665,3107,680,5391, - 5413,5411,593,5407,5408,5409,39,5030,5027,1137, - 735,4052,4127,3013,5391,4149,863,5654,5652,5661, - 5660,5656,5657,5655,5658,5659,5662,5653,5391,5391, - 5391,4105,4083,5391,5391,37,5391,5391,5391,5391, - 5391,5391,5391,4193,4171,5410,5391,4022,617,729, - 5412,665,3107,680,5391,5413,5411,593,5407,5408, - 5409,5391,5391,5391,5391,5391,1336,5391,5394,39, - 5030,5027,1137,735,4052,4127,3013,5391,4149,863, - 5654,5652,5661,5660,5656,5657,5655,5658,5659,5662, - 5653,5391,5391,5391,4105,4083,5391,5391,5391,5391, - 5391,5391,5391,5391,5391,5391,4193,4171,5410,5391, - 4022,617,729,5412,665,3107,680,5391,5413,5411, - 593,5407,5408,5409,39,5030,5027,1137,735,4052, - 4127,3013,2061,4149,863,5654,5652,5661,5660,5656, - 5657,5655,5658,5659,5662,5653,5391,5391,5391,4105, - 4083,5391,5391,5391,5391,5391,5391,5391,5391,5391, - 5391,4193,4171,5410,5391,4022,617,729,5412,665, - 3107,680,5391,5413,5411,593,5407,5408,5409,5391, - 5391,5391,5391,5391,1336,39,5030,5027,4783,735, - 4052,4127,3013,5391,4149,863,5654,5652,5661,5660, - 5656,5657,5655,5658,5659,5662,5653,5391,5391,5391, - 4105,4083,5391,5391,5391,5391,5391,5391,5391,5391, - 5391,5391,4193,4171,5410,5391,4022,617,729,5412, - 665,3107,680,5391,5413,5411,593,5407,5408,5409, - 39,5030,5027,1137,735,4052,4127,3013,5391,4149, - 863,5654,5652,5661,5660,5656,5657,5655,5658,5659, - 5662,5653,5391,5391,5391,4105,4083,5391,5391,5391, - 5391,5391,5391,5391,5391,5391,5391,4193,4171,5410, - 5391,4022,617,729,5412,665,3107,680,5391,5413, - 5411,593,5407,5408,5409,39,5030,5027,1137,735, - 4052,4127,3013,5391,4149,863,5654,5652,5661,5660, - 5656,5657,5655,5658,5659,5662,5653,5391,5391,5391, - 4105,4083,5391,5391,5391,5391,5391,5391,5391,5391, - 5391,5391,4193,4171,5410,5391,4022,617,729,5412, - 665,3107,680,5391,5413,5411,593,5407,5408,5409, - 5391,5030,5027,5391,5429,5391,5391,5391,5391,5391, - 785,5654,5652,5661,5660,5656,5657,5655,5658,5659, - 5662,5653,5650,5727,5728,5391,5391,5391,5644,5651, - 5647,5623,5649,5648,5645,5646,5624,5391,5391,5391, - 5788,5391,5391,5391,5391,5391,5391,5391,5391,240, - 5204,5200,5391,5208,5391,5391,671,5789,5790,785, - 5191,5197,5170,5173,5185,5182,5188,5179,5176,5167, - 5194,5146,5140,5137,5391,5391,5391,5164,5143,5155, - 5134,5149,5152,5161,5158,5131,5391,5391,5391,5788, - 32,387,387,5238,387,387,5238,387,5238,5238, - 5391,5391,5391,5391,5391,671,5789,5790,5391,5391, - 5391,5391,387,387,387,5391,222,5238,387,387, - 387,387,387,387,387,387,387,5654,5652,5661, - 5660,5656,5657,5655,5658,5659,5662,5653,5650,5727, - 5728,5391,5391,5391,5644,5651,5647,5623,5649,5648, - 5645,5646,5624,5238,5391,5391,5391,5391,5391,5391, - 5391,5391,5391,5238 + 5437,5451,5452,1,1,626,3439,3043,5437,100, + 5442,5499,5500,125,395,1,1,1,386,1, + 1,1,1,1,1,1,5437,1,1,1, + 1,1,1,514,361,5437,362,1978,1,5972, + 5437,2226,5437,1,1,1,5164,5160,1137,5168, + 4112,4192,3043,362,4214,5124,5151,5157,5130,5133, + 5145,5142,5148,5139,5136,5127,5154,5437,2803,565, + 4170,4148,4369,5437,5076,5073,5948,735,626,579, + 3043,5097,4258,4236,5456,5437,4051,617,729,5458, + 665,3098,722,667,5459,5457,593,5453,5454,5455, + 37,5296,5296,883,854,1336,330,2721,2694,5437, + 39,39,3884,515,39,5076,5073,1137,735,4112, + 4192,3043,5431,4214,728,5700,5698,5707,5706,5702, + 5703,5701,5704,5705,5708,5699,5437,5322,5319,4170, + 4148,1,1,5437,5437,5437,37,3980,5473,5396, + 527,4258,4236,5456,127,4051,617,729,5458,665, + 3098,722,5437,5459,5457,593,5453,5454,5455,37, + 5296,5296,1,5437,1336,5437,5437,5260,5257,48, + 162,5415,5437,5452,5473,5444,140,5076,5073,1137, + 735,4112,4192,3043,5473,4214,728,5700,5698,5707, + 5706,5702,5703,5701,5704,5705,5708,5699,5448,2803, + 5437,4170,4148,1,99,527,2433,5473,5443,319, + 126,5275,5269,4258,4236,5456,5437,4051,617,729, + 5458,665,3098,722,5452,5459,5457,593,5453,5454, + 5455,4280,1008,5877,5437,162,1336,3194,2721,2694, + 5891,39,39,1,5164,5160,1137,5168,4112,4192, + 3043,29,4214,5124,5151,5157,5130,5133,5145,5142, + 5148,5139,5136,5127,5154,2803,1896,1048,4170,4148, + 4914,5437,1896,5442,367,1,5278,439,5272,5447, + 4258,4236,5456,5447,4051,617,729,5458,665,3098, + 722,47,5459,5457,593,5453,5454,5455,5446,5437, + 5437,427,5446,1336,2721,2694,5079,5437,39,39, + 39,5076,5073,1137,735,4112,4192,3043,5412,4214, + 728,5700,5698,5707,5706,5702,5703,5701,5704,5705, + 5708,5699,5082,5437,5437,4170,4148,3635,103,2438, + 5437,3885,1,1293,824,453,29,4258,4236,5456, + 190,4051,617,729,5458,665,3098,722,5437,5459, + 5457,593,5453,5454,5455,1,1,4368,5437,190, + 1336,386,1182,2843,184,5390,5390,5415,39,5076, + 5073,1137,735,4112,4192,3043,5412,4214,728,5700, + 5698,5707,5706,5702,5703,5701,5704,5705,5708,5699, + 5085,565,5437,4170,4148,5393,5393,48,5437,394, + 5437,5451,73,3576,3576,4258,4236,5456,423,4051, + 617,729,5458,665,3098,722,5112,5459,5457,593, + 5453,5454,5455,5437,1,447,290,559,1336,5905, + 5899,5437,288,5903,2629,5415,277,5437,419,5375, + 5437,35,5437,3555,425,5437,507,565,3293,5897, + 5898,520,5451,3271,565,5437,448,5366,3992,505, + 5437,5928,5929,4872,5437,5906,5437,3542,5437,3696, + 5437,2999,5437,4886,1,3383,5437,5437,2994,5908, + 4370,5437,3071,5437,5437,5428,5437,739,1,1599, + 1635,5437,5909,5907,5930,2065,5437,921,307,5437, + 3426,5437,2022,5437,5437,509,5437,2153,5437,2115, + 3323,5919,5918,5931,3867,4887,5900,5901,5924,5925, + 5922,5923,5902,5904,5926,5927,2452,3420,4896,5932, + 5437,5912,5913,5914,5910,5911,5920,5921,5916,5915, + 5917,39,5076,5073,1137,735,4112,4192,3043,5441, + 4214,728,5700,5698,5707,5706,5702,5703,5701,5704, + 5705,5708,5699,3230,3677,3323,4170,4148,4022,3850, + 2,3286,1984,3342,807,5437,5437,5437,4258,4236, + 5456,3863,4051,617,729,5458,665,3098,722,5437, + 5459,5457,593,5453,5454,5455,39,5076,5073,1137, + 735,4112,4192,3043,5437,4214,728,5700,5698,5707, + 5706,5702,5703,5701,5704,5705,5708,5699,5437,5437, + 5437,4170,4148,5437,5437,37,5437,5437,5437,5437, + 5437,5437,5437,4258,4236,5456,5437,4051,617,729, + 5458,665,3098,722,5437,5459,5457,593,5453,5454, + 5455,5437,5437,5437,5437,5437,1336,5437,5440,39, + 5076,5073,1137,735,4112,4192,3043,5437,4214,728, + 5700,5698,5707,5706,5702,5703,5701,5704,5705,5708, + 5699,5437,5437,5437,4170,4148,5437,5437,5437,5437, + 5437,5437,5437,5437,5437,5437,4258,4236,5456,5437, + 4051,617,729,5458,665,3098,722,5437,5459,5457, + 593,5453,5454,5455,39,5076,5073,1137,735,4112, + 4192,3043,2149,4214,728,5700,5698,5707,5706,5702, + 5703,5701,5704,5705,5708,5699,5437,5437,5437,4170, + 4148,5437,5437,5437,5437,5437,5437,5437,5437,5437, + 5437,4258,4236,5456,5437,4051,617,729,5458,665, + 3098,722,5437,5459,5457,593,5453,5454,5455,5437, + 5437,5437,5437,5437,1336,39,5076,5073,3873,735, + 4112,4192,3043,5437,4214,728,5700,5698,5707,5706, + 5702,5703,5701,5704,5705,5708,5699,5437,5437,5437, + 4170,4148,5437,5437,5437,5437,5437,5437,5437,5437, + 5437,5437,4258,4236,5456,5437,4051,617,729,5458, + 665,3098,722,5437,5459,5457,593,5453,5454,5455, + 39,5076,5073,1137,735,4112,4192,3043,5437,4214, + 728,5700,5698,5707,5706,5702,5703,5701,5704,5705, + 5708,5699,5437,5437,5437,4170,4148,5437,5437,5437, + 5437,5437,5437,5437,5437,5437,5437,4258,4236,5456, + 5437,4051,617,729,5458,665,3098,722,5437,5459, + 5457,593,5453,5454,5455,39,5076,5073,1137,735, + 4112,4192,3043,5437,4214,728,5700,5698,5707,5706, + 5702,5703,5701,5704,5705,5708,5699,5437,5437,5437, + 4170,4148,5437,5437,5437,5437,5437,5437,5437,5437, + 5437,5437,4258,4236,5456,5437,4051,617,729,5458, + 665,3098,722,5437,5459,5457,593,5453,5454,5455, + 5437,5076,5073,5437,5475,5437,5437,5437,5437,5437, + 795,5700,5698,5707,5706,5702,5703,5701,5704,5705, + 5708,5699,5696,5773,5774,5437,5437,5437,5690,5697, + 5693,5669,5695,5694,5691,5692,5670,5437,5437,5437, + 5834,5437,5437,5437,5437,5437,5437,5437,5437,240, + 5250,5246,5437,5254,5437,5437,1403,5835,5836,795, + 5237,5243,5216,5219,5231,5228,5234,5225,5222,5213, + 5240,5192,5186,5183,5437,5437,5437,5210,5189,5201, + 5180,5195,5198,5207,5204,5177,5437,5437,5437,5834, + 32,387,387,5284,387,387,5284,387,5284,5284, + 5437,5437,5437,5437,5437,1403,5835,5836,5437,5437, + 5437,5437,387,387,387,5437,222,5284,387,387, + 387,387,387,387,387,387,387,5700,5698,5707, + 5706,5702,5703,5701,5704,5705,5708,5699,5696,5773, + 5774,5437,5437,5437,5690,5697,5693,5669,5695,5694, + 5691,5692,5670,5284,5437,5437,5437,5437,5437,5437, + 5437,5437,5437,5284 }; }; public final static char termAction[] = TermAction.termAction; @@ -1799,60 +1808,60 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 731,72,454,66,772,832,832,832,832,1105, - 772,141,141,653,141,126,454,128,455,455, - 455,455,455,455,455,455,455,143,149,154, - 151,158,156,163,161,165,164,166,238,167, - 454,438,693,693,693,693,493,849,1,1, - 138,693,407,235,141,141,1,493,235,938, - 692,1020,1107,1042,438,141,143,633,633,849, - 454,455,455,455,455,455,455,455,455,455, - 455,455,455,455,455,455,455,455,455,455, - 454,454,454,454,454,454,454,454,454,454, - 454,454,455,235,235,226,438,847,847,847, - 847,335,235,1,1,1103,1031,1042,85,1042, - 80,1042,74,1042,1026,1105,493,407,407,1, - 832,407,692,454,491,1019,235,490,492,490, - 235,407,151,151,149,149,149,156,156,156, - 156,154,154,161,158,158,164,163,165,1119, - 166,1103,367,519,509,508,558,1049,1049,1105, - 128,772,772,772,772,493,493,847,846,847, - 138,493,287,290,82,334,83,1105,493,493, - 335,847,455,693,147,191,235,1107,493,493, - 492,1020,454,226,407,182,235,521,523,493, - 1020,454,454,454,454,772,772,438,288,134, - 290,493,727,496,725,335,85,352,493,335, - 493,235,147,1103,1019,1107,493,491,235,513, - 501,512,523,335,491,235,235,235,235,849, - 849,288,134,822,493,290,1119,83,832,337, - 53,1109,290,727,726,727,727,335,352,352, - 493,493,147,148,147,454,191,58,143,1107, - 357,454,510,510,339,339,493,517,1103,901, - 235,493,235,235,134,133,1020,594,85,847, - 832,490,640,1111,487,772,727,727,727,727, - 493,352,822,820,821,147,849,455,407,58, - 357,454,454,523,493,1020,235,521,501,357, - 1084,134,491,594,594,775,306,491,727,727, - 487,187,455,1119,347,825,493,1103,727,727, - 645,822,455,493,148,235,407,841,523,357, - 188,822,891,980,279,772,83,812,594,594, - 306,491,727,85,1105,1111,455,455,1019,487, - 893,720,646,493,841,235,841,774,279,891, - 897,1105,822,846,832,60,60,188,85,418, - 893,493,772,645,493,1105,1105,493,772,834, - 841,775,594,188,346,187,235,1105,493,306, - 775,306,845,845,934,419,1105,493,849,493, - 493,493,524,834,594,454,89,487,188,493, - 493,306,693,693,934,418,1119,455,1119,188, - 417,772,772,772,419,772,493,246,188,188, - 493,85,235,493,493,234,836,822,235,822, - 85,493,188,846,410,772,410,419,1119,419, - 438,438,436,936,438,188,188,350,934,693, - 836,822,89,188,556,901,419,235,487,235, - 436,279,772,235,934,89,60,235,235,1097, - 419,350,419,188,279,454,419,416,821,845, - 85,85,1099,454,417,849,188,235,186,88, - 490,419,235,188,186,186,419 + 678,72,622,66,719,924,924,924,924,1105, + 719,867,867,721,867,153,622,155,623,623, + 623,623,623,623,623,623,623,869,875,880, + 877,884,882,889,887,891,890,892,261,893, + 622,606,761,761,761,761,661,534,1,1, + 864,761,433,258,867,867,1,661,258,938, + 760,1020,1107,1042,606,867,869,386,386,534, + 622,623,623,623,623,623,623,623,623,623, + 623,623,623,623,623,623,623,623,623,623, + 622,622,622,622,622,622,622,622,622,622, + 622,622,623,258,258,249,606,852,852,852, + 852,205,258,1,1,1103,1031,1042,79,1042, + 74,1042,313,1042,1026,1105,661,433,433,1, + 924,433,760,622,659,1019,258,658,660,658, + 258,433,877,877,875,875,875,882,882,882, + 882,880,880,887,884,884,890,889,891,1119, + 892,1103,393,459,449,448,498,1049,1049,1105, + 155,719,719,719,719,661,661,852,851,852, + 864,661,310,160,76,204,77,1105,661,661, + 205,852,623,761,873,214,258,1107,661,661, + 660,1020,622,249,433,908,258,461,463,661, + 1020,622,622,622,622,719,719,606,311,862, + 860,160,661,674,209,672,205,79,319,661, + 205,661,258,873,1103,1019,1107,661,659,258, + 453,441,452,463,205,659,258,258,258,258, + 534,534,311,860,856,661,160,1119,77,924, + 207,53,1109,160,674,673,674,674,205,319, + 319,661,661,873,874,873,622,214,58,869, + 1107,337,622,450,450,324,324,661,457,1103, + 82,258,661,258,258,860,860,1020,347,79, + 852,924,658,436,1111,655,719,674,674,674, + 674,661,319,856,854,855,873,534,623,433, + 58,337,622,622,463,661,1020,258,461,441, + 337,1084,860,859,659,347,347,794,176,659, + 674,674,655,913,623,1119,332,917,661,1103, + 674,674,664,856,623,661,874,258,433,846, + 463,337,860,914,856,576,980,302,719,77, + 831,347,347,176,659,674,79,1105,1111,623, + 623,1019,655,928,788,665,661,846,258,846, + 793,302,576,932,1105,856,851,924,60,60, + 914,79,586,928,661,719,664,661,1105,1105, + 661,719,839,846,794,347,914,331,913,258, + 1105,661,176,794,176,850,850,926,587,1105, + 661,534,661,661,661,464,839,347,622,116, + 655,914,661,661,176,761,761,926,586,1119, + 623,1119,914,585,719,719,719,587,719,661, + 269,914,914,661,79,258,661,661,257,841, + 856,258,856,79,661,914,851,578,719,578, + 587,1119,587,606,606,604,936,606,914,914, + 335,926,761,841,856,116,914,496,82,587, + 258,655,258,604,302,719,258,926,116,60, + 258,258,1097,587,335,587,914,302,622,587, + 584,855,850,79,79,1099,622,585,534,914, + 258,912,115,658,587,258,914,912,912,587 }; }; public final static char asb[] = Asb.asb; @@ -1867,49 +1876,43 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 53,54,39,3,37,38,9,6,25,26, 41,68,7,1,2,4,10,5,0,68, 69,70,1,2,0,8,72,117,73,27, - 70,120,0,4,8,67,1,2,0,48, - 4,72,1,2,67,8,0,71,60,37, - 38,9,6,25,26,41,46,3,4,52, - 53,54,39,50,44,49,12,21,11,17, - 15,16,18,19,14,13,20,10,43,47, - 45,42,51,67,8,7,5,1,2,66, - 65,0,60,23,7,24,5,1,2,4, - 74,67,119,105,37,38,63,3,91,89, - 6,92,93,25,26,88,87,55,94,95, - 96,97,9,98,99,100,68,90,73,120, - 69,107,108,109,110,111,112,113,114,115, - 116,72,117,101,106,71,70,27,8,0, - 91,89,25,26,92,93,87,88,55,94, - 95,96,97,98,99,100,101,106,72,90, - 69,107,108,109,110,111,112,113,114,115, - 116,117,71,27,120,68,1,2,9,6, - 4,3,63,70,73,8,0,68,72,90, - 70,117,73,71,120,11,12,42,65,13, - 43,44,14,15,16,66,45,17,18,46, - 47,49,60,50,51,10,19,20,21,52, - 53,54,39,37,38,25,26,41,8,27, - 5,7,1,2,4,3,9,6,0,86, + 70,120,0,48,4,72,1,2,67,8, + 0,28,11,12,40,23,13,56,29,30, + 14,31,32,15,16,33,34,17,18,35, + 57,36,10,58,19,22,20,24,21,1, + 2,4,90,0,71,60,37,38,9,6, + 25,26,41,46,3,4,52,53,54,39, + 50,44,49,12,21,11,17,15,16,18, + 19,14,13,20,10,43,47,45,42,51, + 67,8,7,5,1,2,66,65,0,86, 59,7,102,103,104,62,8,3,9,6, 5,72,71,27,61,28,11,12,40,23, 13,56,29,30,14,31,32,15,16,33, 34,17,18,35,57,36,10,58,19,22, - 20,24,21,4,1,2,48,0,74,68, - 72,90,73,67,63,3,8,70,27,69, - 0,1,2,8,71,0,23,60,24,8, - 68,90,69,70,73,0,65,66,10,43, - 47,45,42,51,12,21,11,17,15,16, - 18,19,14,13,20,52,53,54,39,50, - 44,49,5,7,4,3,37,38,9,6, - 25,26,41,46,1,2,117,8,0,86, - 102,103,104,48,72,118,121,71,61,74, - 62,59,64,76,78,84,82,75,80,81, - 83,85,67,77,79,27,8,28,40,23, - 56,29,30,31,32,33,34,35,57,36, - 58,22,24,60,65,66,10,43,47,45, - 42,51,12,21,11,17,15,16,18,19, - 14,13,20,52,53,54,39,50,44,49, - 37,38,25,26,41,46,9,6,3,4, - 7,5,1,2,0,4,8,72,67,0, + 20,24,21,4,1,2,48,0,4,8, + 72,67,0,91,89,25,26,92,93,87, + 88,55,94,95,96,97,98,99,100,101, + 106,72,90,69,107,108,109,110,111,112, + 113,114,115,116,117,71,27,120,68,1, + 2,9,6,4,3,63,70,73,8,0, + 68,72,90,70,117,73,71,120,11,12, + 42,65,13,43,44,14,15,16,66,45, + 17,18,46,47,49,60,50,51,10,19, + 20,21,52,53,54,39,37,38,25,26, + 41,8,27,5,7,1,2,4,3,9, + 6,0,4,8,67,1,2,0,1,2, + 8,71,0,74,68,72,90,73,67,63, + 3,8,70,27,69,0,23,60,24,8, + 68,90,69,70,73,0,64,28,11,12, + 40,23,13,56,29,86,30,14,31,32, + 15,16,33,59,34,17,18,35,57,36, + 10,58,19,62,22,20,24,21,8,3, + 9,6,71,27,61,7,4,48,5,1, + 2,0,65,66,10,43,47,45,42,51, + 12,21,11,17,15,16,18,19,14,13, + 20,52,53,54,39,50,44,49,5,7, + 4,3,37,38,9,6,25,26,41,46, + 1,2,117,8,0,8,72,67,74,0, 9,6,7,5,4,1,2,3,63,68, 69,70,8,73,90,0,5,7,3,63, 6,9,90,28,11,12,23,13,56,29, @@ -1919,41 +1922,47 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 23,13,29,30,14,31,32,15,16,33, 7,34,17,18,35,36,19,22,20,24, 21,1,2,8,63,9,6,5,4,73, - 27,3,0,64,28,11,12,40,23,13, - 56,29,86,30,14,31,32,15,16,33, - 59,34,17,18,35,57,36,10,58,19, - 62,22,20,24,21,8,3,9,6,71, - 27,61,7,4,48,5,1,2,0,8, - 72,67,74,0,22,1,2,4,102,103, - 104,0,66,65,25,26,6,92,93,98, - 9,99,5,41,69,55,68,110,111,107, - 108,109,115,114,116,88,87,112,113,96, - 97,94,95,100,101,37,38,70,89,105, - 63,3,28,11,12,40,23,13,56,29, - 30,14,31,32,15,16,33,34,17,18, - 35,57,36,10,58,19,20,24,21,1, - 2,4,22,0,4,55,8,72,67,0, - 11,12,42,65,13,43,44,14,15,16, - 66,7,45,17,18,46,47,49,60,50, - 51,10,19,20,21,52,53,54,39,1, - 2,37,38,9,6,25,26,5,41,4, - 61,3,0,67,40,23,13,56,29,14, - 31,32,15,16,33,34,17,18,35,57, - 36,58,19,22,20,24,21,12,11,28, - 8,3,9,6,27,62,64,86,30,61, - 48,7,1,2,5,4,10,59,0,69, - 70,71,8,0,72,8,63,3,69,70, - 27,55,0,23,24,74,3,72,27,67, - 60,8,90,73,69,70,68,0,8,73, - 11,12,42,65,13,43,44,14,15,16, - 66,7,45,17,18,46,47,49,60,50, - 51,10,19,20,21,52,53,54,1,2, - 3,37,38,9,6,25,26,5,41,4, - 39,0,8,67,70,0,8,67,69,0, + 27,3,0,8,73,11,12,42,65,13, + 43,44,14,15,16,66,7,45,17,18, + 46,47,49,60,50,51,10,19,20,21, + 52,53,54,1,2,3,37,38,9,6, + 25,26,5,41,4,39,0,86,102,103, + 104,48,72,118,121,71,61,74,62,59, + 64,76,78,84,82,75,80,81,83,85, + 67,77,79,27,8,28,40,23,56,29, + 30,31,32,33,34,35,57,36,58,22, + 24,60,65,66,10,43,47,45,42,51, + 12,21,11,17,15,16,18,19,14,13, + 20,52,53,54,39,50,44,49,37,38, + 25,26,41,46,9,6,3,4,7,5, + 1,2,0,22,1,2,4,102,103,104, + 0,4,55,8,72,67,0,11,12,42, + 65,13,43,44,14,15,16,66,7,45, + 17,18,46,47,49,60,50,51,10,19, + 20,21,52,53,54,39,1,2,37,38, + 9,6,25,26,5,41,4,61,3,0, + 66,65,25,26,6,92,93,98,9,99, + 5,41,69,55,68,110,111,107,108,109, + 115,114,116,88,87,112,113,96,97,94, + 95,100,101,37,38,70,89,105,63,3, 28,11,12,40,23,13,56,29,30,14, 31,32,15,16,33,34,17,18,35,57, - 36,10,58,19,22,20,24,21,1,2, - 4,90,0,118,0,75,0,65,66,37, + 36,10,58,19,20,24,21,1,2,4, + 22,0,67,40,23,13,56,29,14,31, + 32,15,16,33,34,17,18,35,57,36, + 58,19,22,20,24,21,12,11,28,8, + 3,9,6,27,62,64,86,30,61,48, + 7,1,2,5,4,10,59,0,23,24, + 74,3,72,27,67,60,8,90,73,69, + 70,68,0,69,70,71,8,0,60,23, + 24,7,5,1,2,4,74,67,119,105, + 37,38,63,3,91,89,6,92,93,25, + 26,88,87,55,94,95,96,97,9,98, + 99,100,68,90,73,120,69,107,108,109, + 110,111,112,113,114,115,116,72,117,101, + 106,71,70,27,8,0,72,8,63,3, + 69,70,27,55,0,118,0,8,67,70, + 0,8,67,69,0,75,0,65,66,37, 38,9,6,25,26,5,41,46,3,4, 7,52,53,54,39,50,44,49,12,21, 11,17,15,16,18,19,14,13,20,10, @@ -1979,60 +1988,60 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasb { public final static char nasb[] = {0, - 205,12,72,12,12,12,12,12,12,76, - 12,12,12,191,12,187,152,111,72,72, - 232,72,72,72,72,72,72,12,12,12, - 12,12,12,12,12,12,12,12,72,12, - 72,276,33,33,33,33,111,224,130,130, - 43,5,105,282,12,12,130,236,282,72, - 78,23,12,12,276,12,12,15,15,224, - 152,72,72,72,72,72,72,72,72,72, - 72,72,72,72,72,72,72,72,72,72, - 72,72,72,72,72,72,72,72,72,72, - 72,152,72,282,282,115,1,12,12,12, - 12,36,282,28,28,137,250,251,173,251, - 46,251,25,251,244,10,111,105,105,28, - 12,105,33,195,187,39,282,186,111,186, - 282,105,12,12,12,12,12,12,12,12, + 205,12,58,12,12,12,12,12,12,62, + 12,12,12,208,12,193,157,114,58,58, + 245,58,58,58,58,58,58,12,12,12, + 12,12,12,12,12,12,12,12,58,12, + 58,214,34,34,34,34,114,136,134,134, + 69,5,95,282,12,12,134,249,282,58, + 64,23,12,12,214,12,12,15,15,136, + 157,58,58,58,58,58,58,58,58,58, + 58,58,58,58,58,58,58,58,58,58, + 58,58,58,58,58,58,58,58,58,58, + 58,157,58,282,282,107,1,12,12,12, + 12,37,282,29,29,150,263,264,185,264, + 42,264,83,264,257,10,114,95,95,29, + 12,95,34,120,193,176,282,192,114,192, + 282,95,12,12,12,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, - 12,137,100,114,55,55,12,12,12,10, - 111,12,12,12,12,202,11,12,12,12, - 177,111,12,130,201,76,80,76,111,11, - 12,12,72,33,130,89,282,12,11,111, - 119,23,72,175,105,12,282,155,130,111, - 23,152,152,152,152,12,12,28,139,130, - 253,202,85,85,12,208,173,130,208,22, - 202,282,67,177,39,12,236,202,282,12, - 123,12,158,21,202,282,282,282,282,224, - 224,12,61,166,111,215,12,141,12,12, - 87,264,253,85,85,130,130,22,130,237, - 11,202,130,96,12,152,177,120,12,12, - 130,72,12,12,55,55,111,122,137,158, - 282,202,282,282,130,61,23,130,173,12, - 12,76,130,132,125,12,130,130,98,98, - 202,237,166,12,12,67,224,72,105,120, - 61,72,72,130,11,23,282,155,181,130, - 12,61,187,227,130,239,130,208,130,65, - 183,215,72,12,83,12,111,137,98,98, - 161,166,72,237,96,282,105,130,158,61, - 215,166,12,239,265,12,80,87,239,227, - 158,187,65,221,57,125,72,72,49,183, - 12,76,63,208,107,282,130,172,132,12, - 12,76,166,12,12,13,13,215,221,165, - 12,208,12,217,208,76,76,11,12,130, - 107,239,130,215,94,12,282,76,208,158, - 239,130,12,12,130,149,57,11,224,11, - 208,208,280,61,227,195,70,125,215,208, - 142,158,33,33,211,168,12,72,12,215, - 12,12,12,12,169,12,237,213,215,215, - 237,52,282,11,11,282,130,166,282,130, - 173,142,215,12,109,12,12,169,12,169, - 260,260,144,12,260,215,215,12,130,33, - 107,166,130,215,12,33,169,282,125,282, - 272,130,12,282,211,70,13,282,282,130, - 169,12,169,215,125,152,169,109,166,12, - 52,52,123,72,12,198,215,282,92,69, - 186,169,282,215,92,12,169 + 12,150,90,106,86,86,12,12,12,10, + 114,12,12,12,12,103,11,12,12,12, + 141,114,12,134,102,62,99,62,114,11, + 12,12,58,34,134,76,282,12,11,114, + 111,23,58,139,95,12,282,274,134,114, + 23,157,157,157,157,12,12,29,152,152, + 152,162,103,25,25,12,229,185,134,229, + 22,103,282,40,141,176,12,249,103,282, + 12,127,12,277,21,103,282,282,282,282, + 136,136,12,134,174,114,224,12,117,12, + 12,74,266,162,25,25,134,134,22,134, + 250,11,103,134,88,12,157,141,112,12, + 12,134,58,12,12,86,86,114,126,150, + 277,282,103,282,282,152,49,23,134,185, + 12,12,62,134,145,129,12,134,134,27, + 27,103,250,174,12,12,40,136,58,95, + 112,49,58,58,134,11,23,282,274,187, + 134,12,134,49,193,236,134,252,134,229, + 134,51,189,224,58,12,72,12,114,150, + 27,27,169,174,58,250,88,282,95,134, + 277,49,49,224,174,12,252,267,12,99, + 74,252,236,277,193,51,202,45,129,58, + 58,66,189,12,62,53,229,97,282,134, + 184,145,12,12,62,174,12,12,13,13, + 224,202,173,12,229,12,241,229,62,62, + 11,12,134,97,252,134,224,81,12,282, + 62,229,277,252,134,12,12,134,154,45, + 11,136,11,229,229,280,49,236,120,56, + 129,224,229,118,277,34,34,212,180,12, + 58,12,224,12,12,12,12,181,12,250, + 222,224,224,250,226,282,11,11,282,134, + 174,282,134,185,118,224,12,160,12,12, + 181,12,181,232,232,197,12,232,224,224, + 12,134,34,97,174,134,224,12,34,181, + 282,129,282,218,134,12,282,212,56,13, + 282,282,134,181,12,181,224,129,157,181, + 160,174,12,226,226,127,58,12,123,224, + 282,79,55,192,181,282,224,79,12,181 }; }; public final static char nasb[] = Nasb.nasb; @@ -2042,32 +2051,32 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final static char nasr[] = {0, 3,13,10,9,152,150,121,149,148,5, 2,0,108,0,5,2,9,10,139,0, - 136,2,65,0,153,183,0,5,10,9, - 2,13,4,45,0,136,65,0,65,138, - 137,0,4,195,0,153,188,0,65,54, - 0,40,55,0,75,0,172,5,171,0, - 62,0,193,0,159,0,143,0,67,129, - 40,10,9,2,13,5,0,175,0,40, - 1,0,191,0,109,0,156,0,4,177, - 0,162,0,184,0,141,0,110,0,13, - 2,9,10,5,83,0,126,0,113,0, - 2,44,0,33,94,95,4,0,2,115, - 0,33,95,94,64,5,2,9,10,4, - 0,4,10,9,2,64,5,90,54,0, - 40,104,0,39,4,23,181,0,48,40, - 179,4,39,0,54,5,90,23,4,0, - 5,102,192,0,4,67,0,67,39,48, - 68,4,40,0,95,94,54,5,58,0, - 95,94,54,64,58,5,10,9,2,0, - 4,45,196,0,4,29,0,4,178,0, - 44,2,3,0,4,174,0,2,56,0, - 161,0,4,39,38,0,5,102,168,0, - 40,160,0,4,97,0,116,4,48,82, - 0,5,10,9,13,3,1,0,4,48, - 82,84,0,2,5,121,117,118,119,13, - 87,0,4,48,82,102,46,5,0,4, - 45,103,0,38,5,2,9,10,4,158, - 0,45,4,180,0,4,45,39,0,45, + 136,2,65,0,109,0,110,0,5,10, + 9,2,13,4,45,0,136,65,0,143, + 0,153,188,0,172,5,171,0,62,0, + 159,0,193,0,67,129,40,10,9,2, + 13,5,0,175,0,65,49,0,4,195, + 0,191,0,156,0,4,177,0,162,0, + 184,0,153,183,0,75,0,141,0,13, + 2,9,10,5,83,0,126,0,40,1, + 0,44,2,3,0,33,94,95,4,0, + 2,115,0,2,44,0,40,104,0,4, + 29,0,4,178,0,33,95,94,64,5, + 2,9,10,4,0,4,97,0,95,94, + 49,5,58,0,4,10,9,2,64,5, + 90,49,0,48,40,179,4,39,0,113, + 0,4,48,82,102,46,5,0,5,102, + 192,0,4,67,0,65,138,137,0,67, + 39,48,68,4,40,0,95,94,49,64, + 58,5,10,9,2,0,39,4,23,181, + 0,40,160,0,4,174,0,4,45,196, + 0,161,0,4,45,39,0,45,4,180, + 0,4,39,38,0,40,55,0,2,56, + 0,4,45,103,0,116,4,48,82,0, + 5,102,168,0,5,10,9,13,3,1, + 0,4,48,82,84,0,2,5,121,117, + 118,119,13,87,0,38,5,2,9,10, + 4,158,0,49,5,90,23,4,0,45, 4,33,0 }; }; @@ -2124,18 +2133,18 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopePrefix { public final static char scopePrefix[] = { - 159,578,597,308,529,545,556,567,367,266, - 280,302,315,328,42,291,387,425,167,586, - 472,20,51,71,80,85,90,130,195,297, - 321,336,341,144,272,286,500,27,144,377, - 341,605,27,217,245,1,14,61,76,106, - 346,356,360,443,465,494,521,525,615,619, - 623,97,7,97,405,421,434,455,513,232, - 116,116,434,536,552,563,574,207,483,56, - 56,156,222,225,56,240,261,225,225,56, - 364,462,469,156,56,638,110,350,409,449, - 56,350,396,177,104,447,627,634,627,634, - 65,415,137,104,104,250 + 159,579,598,309,530,546,557,568,368,267, + 281,303,316,329,42,292,388,426,167,587, + 473,20,51,71,80,85,90,130,195,298, + 322,337,342,144,273,287,501,27,144,378, + 342,606,27,217,246,1,14,61,76,106, + 347,357,361,444,466,495,522,526,616,620, + 624,97,7,97,406,422,435,456,514,116, + 116,232,435,537,553,564,575,207,484,56, + 56,156,222,225,56,241,262,225,225,56, + 365,463,470,156,56,639,110,351,410,450, + 56,351,397,177,104,448,628,635,628,635, + 65,416,137,104,104,251 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2143,18 +2152,18 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeSuffix { public final static char scopeSuffix[] = { - 18,5,5,135,5,5,5,5,374,135, - 95,135,135,334,48,277,393,431,173,67, - 478,25,25,25,59,59,95,135,200,135, - 326,326,334,149,277,101,505,38,152,382, - 592,610,32,211,211,5,18,5,59,95, - 326,95,95,135,243,5,5,5,5,5, - 243,636,11,101,374,374,374,459,505,236, - 120,125,438,540,540,540,540,211,487,59, - 59,5,5,228,230,243,5,264,264,230, - 95,5,243,5,498,5,113,353,412,452, - 517,508,399,180,95,95,629,629,631,631, - 67,417,139,202,187,252 + 18,5,5,135,5,5,5,5,375,135, + 95,135,135,335,48,278,394,432,173,67, + 479,25,25,25,59,59,95,135,200,135, + 327,327,335,149,278,101,506,38,152,383, + 593,611,32,211,211,5,18,5,59,95, + 327,95,95,135,244,5,5,5,5,5, + 244,637,11,101,375,375,375,460,506,120, + 125,236,439,541,541,541,541,211,488,59, + 59,5,5,228,230,244,5,265,265,230, + 95,5,244,5,499,5,113,354,413,453, + 518,509,400,180,95,95,630,630,632,632, + 67,418,139,202,187,253 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2163,13 +2172,13 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLhs { public final static char scopeLhs[] = { 46,17,17,119,17,17,17,17,71,86, - 47,80,119,118,77,52,71,70,46,17, + 47,80,119,118,77,53,71,70,46,17, 19,3,7,8,168,168,164,117,46,81, - 118,118,120,128,53,47,139,133,128,71, + 118,118,120,128,54,47,139,133,128,71, 17,17,133,96,59,135,74,171,168,164, - 120,182,50,55,143,18,17,17,17,17, - 17,12,113,164,71,70,70,37,139,58, - 130,130,70,17,17,17,17,96,19,172, + 120,182,51,55,143,18,17,17,17,17, + 17,12,113,164,71,70,70,37,139,130, + 130,58,70,17,17,17,17,96,19,172, 168,184,94,101,61,75,60,158,76,120, 72,144,143,175,139,16,164,120,103,69, 139,139,71,46,164,66,137,44,137,44, @@ -2187,8 +2196,8 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 1,1,1,71,1,1,4,68,70,27, 1,1,68,73,73,73,118,73,1,27, 1,27,27,71,117,73,73,73,73,73, - 117,1,73,1,73,73,73,72,4,6, - 1,1,73,68,68,68,68,73,3,1, + 117,1,73,1,73,73,73,72,4,1, + 1,6,73,68,68,68,68,73,3,1, 1,73,73,3,1,117,73,1,1,1, 27,73,117,73,5,73,1,48,69,72, 1,48,75,74,27,27,4,4,4,4, @@ -2206,8 +2215,8 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 154,154,154,312,98,96,149,50,312,106, 250,250,50,141,63,26,106,30,54,82, 154,22,98,33,79,250,250,250,250,250, - 250,230,6,82,106,106,106,281,149,121, - 154,154,106,250,250,250,250,141,250,30, + 250,230,6,82,106,106,106,281,149,154, + 154,121,106,250,250,250,250,141,250,30, 54,24,141,143,63,137,63,60,68,154, 106,57,79,152,149,250,82,154,1,106, 149,149,106,96,82,11,118,158,118,158, @@ -2242,47 +2251,48 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,203,0,0,215,0,227,126,3,0, 126,0,0,0,0,0,227,126,3,216, 0,223,3,0,212,126,0,208,0,146, - 0,176,166,127,0,10,0,0,0,214, - 63,0,125,0,227,126,3,182,0,182, - 0,2,0,0,126,0,0,0,0,0, - 198,3,0,201,0,236,126,162,39,30, - 0,178,127,59,62,0,196,128,0,128, - 178,127,278,62,0,178,127,278,62,0, - 178,127,69,123,59,0,236,126,162,59, - 0,236,126,162,226,59,0,276,126,162, - 123,305,56,0,276,126,162,305,56,0, - 178,127,275,56,0,135,0,187,178,127, - 275,243,0,136,0,178,127,275,243,0, - 187,166,127,10,0,166,127,10,0,166, - 127,0,93,136,0,268,126,145,0,268, - 126,170,0,161,84,0,300,160,302,303, - 3,81,0,126,171,0,302,303,3,81, - 0,128,0,126,171,0,161,3,75,190, - 80,0,126,128,0,190,80,0,108,2, - 131,126,128,0,225,3,75,0,198,167, - 0,33,169,0,167,0,175,33,169,0, - 225,3,85,0,190,155,225,3,83,0, - 62,171,0,225,3,83,0,126,171,62, - 171,0,301,126,162,0,161,0,214,77, - 0,30,171,0,161,106,158,0,30,169, - 0,219,3,0,214,63,265,0,161,63, - 0,179,3,297,66,127,0,126,0,0, - 0,0,297,66,127,0,2,145,126,0, - 0,0,0,179,3,46,0,147,0,125, - 48,166,127,0,31,147,0,93,136,31, - 147,0,220,178,127,0,146,31,147,0, - 179,3,51,0,161,3,51,0,161,3, - 68,179,55,42,0,179,55,42,0,20, - 2,131,126,0,161,3,68,179,55,45, - 0,179,55,45,0,161,3,68,179,55, - 47,0,179,55,47,0,161,3,68,179, - 55,43,0,179,55,43,0,219,3,125, - 187,166,127,10,0,125,187,166,127,10, - 0,136,2,0,126,0,219,3,124,258, - 166,127,10,0,258,166,127,10,0,135, - 2,0,126,0,219,3,135,0,219,3, - 139,0,161,63,139,0,260,0,31,0, - 31,139,0,165,0,134,0,161,3,0 + 0,171,166,127,0,10,0,0,0,0, + 214,63,0,125,0,227,126,3,182,0, + 182,0,2,0,0,126,0,0,0,0, + 0,198,3,0,201,0,236,126,162,39, + 30,0,178,127,59,62,0,196,128,0, + 128,178,127,278,62,0,178,127,278,62, + 0,178,127,69,123,59,0,236,126,162, + 59,0,236,126,162,226,59,0,276,126, + 162,123,305,56,0,276,126,162,305,56, + 0,178,127,275,56,0,135,0,187,178, + 127,275,243,0,136,0,178,127,275,243, + 0,187,166,127,10,0,166,127,10,0, + 166,127,0,93,136,0,268,126,145,0, + 268,126,170,0,161,84,0,300,160,302, + 303,3,81,0,126,171,0,302,303,3, + 81,0,128,0,126,171,0,161,3,75, + 190,80,0,126,128,0,190,80,0,108, + 2,131,126,128,0,225,3,75,0,198, + 167,0,33,169,0,167,0,175,33,169, + 0,225,3,85,0,190,155,225,3,83, + 0,62,171,0,225,3,83,0,126,171, + 62,171,0,301,126,162,0,161,0,214, + 77,0,30,171,0,161,106,158,0,30, + 169,0,219,3,0,214,63,265,0,161, + 63,0,179,3,297,66,127,0,126,0, + 0,0,0,297,66,127,0,2,145,126, + 0,0,0,0,179,3,46,0,147,0, + 125,48,166,127,0,31,147,0,93,136, + 31,147,0,220,178,127,0,146,31,147, + 0,179,3,51,0,161,3,51,0,161, + 3,68,179,55,42,0,179,55,42,0, + 20,2,131,126,0,161,3,68,179,55, + 45,0,179,55,45,0,161,3,68,179, + 55,47,0,179,55,47,0,161,3,68, + 179,55,43,0,179,55,43,0,219,3, + 125,187,166,127,10,0,125,187,166,127, + 10,0,136,2,0,126,0,219,3,124, + 258,166,127,10,0,258,166,127,10,0, + 135,2,0,126,0,219,3,135,0,219, + 3,139,0,161,63,139,0,260,0,31, + 0,31,139,0,165,0,134,0,161,3, + 0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2290,34 +2300,34 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 4718,4850,4837,4590,0,2069,3731,1981,3441,0, - 3672,3618,3561,3453,3399,3345,3291,3237,3183,2891, - 2837,2672,0,1365,0,2060,1973,1972,0,2452, - 921,0,3672,3618,3799,3316,3561,3453,3399,3345, - 3291,3237,877,3183,2891,2837,3566,3518,0,4742, - 3190,3728,0,3475,2843,0,1839,1833,0,4674, - 4598,0,4503,4674,3945,2990,4598,2966,3528,4516, - 2798,2387,3915,4470,2629,2552,2513,0,2444,999, - 0,4621,4568,0,4621,4568,3935,4416,4406,3828, - 4323,4313,4303,3818,0,4621,4568,3935,4416,4406, - 3828,4323,4313,4303,3818,3672,3618,3561,3453,3399, - 3345,3291,3237,3183,2891,2837,0,2540,793,0, - 2387,4503,4583,3945,2990,3404,2629,3883,1123,722, - 2842,2980,3023,3640,875,0,1850,1506,1457,879, - 2990,2980,2966,2552,2513,2433,2503,0,667,579, - 0,1008,0,4535,536,2981,0,4771,4736,4725, - 4710,4706,4661,4584,3659,3594,3542,4843,3512,3386, - 4808,4795,3967,3332,3928,3224,2547,2536,3003,2428, - 0,3679,3569,4771,4736,4725,3018,2953,4710,2878, - 4706,4661,4584,3659,3594,3548,3196,3103,3542,3094, - 4843,3090,3007,2924,2458,3512,3386,871,4808,2467, - 4795,2870,3483,3967,3332,3928,661,3224,2547,2536, - 4535,626,2981,3003,2428,2277,2191,2103,735,807, - 2966,3528,4516,2798,2387,4503,3915,4674,3945,2990, - 4470,2629,2552,4598,2513,1275,941,667,579,4281, - 2241,2291,2356,2324,2473,2400,594,3160,3134,2814, - 2742,2715,2649,3795,3772,630,3747,2769,4259,4237, - 4215,4193,4171,4149,4127,4105,4083,4052,4022,3107, + 3306,4886,3696,3542,0,2923,3294,2831,3097,0, + 3676,3619,3556,3454,3398,3342,3286,3230,3174,2882, + 2826,2999,0,1365,0,2061,2060,1972,0,2452, + 921,0,3676,3619,3578,3577,3556,3454,3398,3342, + 3286,3230,3442,3174,2882,2826,3519,3023,0,3308, + 2847,3252,0,3867,2843,0,3377,1839,0,4715, + 4692,0,4600,4715,4587,2981,4692,2957,3529,4613, + 4022,2387,3944,4568,2591,2552,2513,0,3236,787, + 0,3185,2837,0,3185,2837,3964,4481,4471,3857, + 4388,4378,4368,3847,0,3185,2837,3964,4481,4471, + 3857,4388,4378,4368,3847,3676,3619,3556,3454,3398, + 3342,3286,3230,3174,2882,2826,0,3424,2859,0, + 2387,4600,4878,4587,2981,4708,2591,3989,1123,727, + 4705,2581,994,3916,2852,0,1850,1758,1506,1457, + 2981,2581,2957,2552,2513,2433,2542,0,667,579, + 0,1008,0,4652,536,2972,0,4868,4864,4841, + 4818,4802,4791,4783,4745,4734,3957,4879,3612,3514, + 4637,4496,4100,2428,3660,3510,3431,3319,3597,2504, + 0,3852,3706,4868,4864,4841,3549,3366,4818,931, + 4802,4791,4783,4745,4734,2906,3204,2887,3957,2772, + 4879,2688,2668,2458,2438,3612,3514,871,4637,2467, + 4496,3012,2833,4100,2428,3660,661,3510,3431,3319, + 4652,626,2972,3597,2504,2277,2191,2103,735,807, + 2957,3529,4613,4022,2387,4600,3944,4715,4587,2981, + 4568,2591,2552,4692,2513,1275,941,667,579,4346, + 2241,2291,2356,2324,2473,2400,594,3151,3125,2803, + 2776,2721,2694,3824,3801,630,3776,3751,4324,4302, + 4280,4258,4236,4214,4192,4170,4148,4112,4051,3098, 1984,2203,2153,2115,2065,2027,1293,1232,1048,1189, 883,1934,1896,825,747,689,536,1853,1810,1767, 1724,1681,1638,1595,1552,1509,1466,1423,1380,1336, @@ -2347,42 +2357,42 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 148,147,147,150,149,149,153,152,154,161, 157,126,63,3,217,216,135,125,124,10, 127,68,68,68,68,187,258,253,256,253, - 212,127,176,162,310,275,305,275,127,178, + 212,127,171,162,310,275,305,275,127,178, 166,253,205,3,298,167,151,260,187,127, 178,166,72,212,214,158,223,126,3,127, - 166,3,3,3,3,125,124,70,166,6, - 126,166,230,125,124,127,123,162,127,166, - 48,179,126,126,4,220,5,48,227,228, - 145,229,126,166,48,161,161,161,161,3, - 3,176,126,309,127,168,224,59,48,204, - 62,170,312,125,124,231,231,178,162,126, - 178,187,155,262,265,63,180,4,123,125, - 155,69,223,198,186,182,127,3,126,70, - 227,187,219,219,6,184,166,162,226,55, - 48,278,280,126,3,182,231,231,126,126, - 187,126,276,123,277,126,3,63,161,4, - 126,69,69,3,178,166,198,126,212,155, - 125,126,187,126,162,68,55,127,74,126, - 212,311,72,289,198,124,127,126,126,126, - 72,276,69,70,262,219,214,221,126,126, - 128,236,30,48,170,64,59,62,238,126, - 126,178,126,281,72,70,72,69,166,212, - 314,224,22,127,126,227,221,39,126,3, - 123,59,236,295,48,10,40,128,281,162, - 293,127,294,70,127,22,315,178,60,155, - 126,126,162,268,247,279,39,69,127,70, - 68,55,230,230,282,126,70,178,3,178, - 127,127,3,126,126,3,69,70,155,127, - 178,126,69,69,126,301,79,77,1,161, - 8,85,83,81,80,75,82,84,78,76, - 59,74,219,178,178,320,221,236,151,162, - 251,178,226,295,283,118,8,72,214,72, - 3,3,3,190,3,123,161,123,177,70, - 126,126,162,226,68,3,72,225,167,225, - 303,145,75,225,126,126,40,90,319,167, - 155,198,155,302,126,3,155,283,308,230, - 155,155,126,69,190,160,268,161,189,70, - 69,121,300,155,189,8,155 + 166,3,3,3,3,125,124,70,166,9, + 6,126,166,230,125,124,127,123,162,127, + 166,48,179,126,126,4,220,5,48,227, + 228,145,229,126,166,48,161,161,161,161, + 3,3,171,171,309,127,168,224,59,48, + 204,62,170,312,125,124,231,231,178,162, + 126,178,187,155,262,265,63,180,4,123, + 125,155,69,223,198,186,182,127,3,126, + 70,227,187,219,219,6,126,166,162,226, + 55,48,278,280,126,3,182,231,231,126, + 126,187,126,276,123,277,126,3,63,161, + 4,126,69,69,3,178,166,198,126,212, + 155,125,171,184,187,126,162,68,55,127, + 74,126,212,311,72,289,198,124,127,126, + 126,126,72,276,69,70,262,219,214,221, + 126,126,126,128,236,30,48,170,64,59, + 62,238,126,126,178,126,281,72,70,72, + 69,166,212,314,224,22,127,126,227,221, + 39,126,3,123,59,236,295,48,10,40, + 128,281,162,293,127,294,70,127,22,315, + 178,60,155,126,126,162,268,247,279,39, + 69,127,70,68,55,230,230,282,126,70, + 178,3,178,127,127,3,126,126,3,69, + 70,155,127,178,126,69,69,126,301,79, + 77,1,161,8,85,83,81,80,75,82, + 84,78,76,59,74,219,178,178,320,221, + 236,151,162,251,178,226,295,283,118,8, + 72,214,72,3,3,3,190,3,123,161, + 123,177,70,126,126,162,226,68,3,72, + 225,167,225,303,145,75,225,126,126,40, + 90,319,167,155,198,155,302,126,3,155, + 283,308,230,155,155,126,69,190,160,268, + 161,189,70,69,121,300,155,189,8,155 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2657,20 +2667,20 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 537, + NUM_STATES = 540, NT_OFFSET = 122, - LA_STATE_OFFSET = 5926, + LA_STATE_OFFSET = 5972, MAX_LA = 2147483647, NUM_RULES = 535, NUM_NONTERMINALS = 202, NUM_SYMBOLS = 324, SEGMENT_SIZE = 8192, - START_STATE = 3373, + START_STATE = 3025, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 120, EOLT_SYMBOL = 120, - ACCEPT_ACTION = 5026, - ERROR_ACTION = 5391; + ACCEPT_ACTION = 5072, + ERROR_ACTION = 5437; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java index 56486ceaee6..c6b86841be8 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java @@ -17,20 +17,29 @@ import lpg.lpgjavaruntime.*; import java.util.*; import org.eclipse.cdt.core.dom.ast.*; +import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter; +import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap; import org.eclipse.cdt.core.dom.lrparser.IParser; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.ITokenCollector; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack; +import org.eclipse.cdt.core.parser.IScanner; +import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider; +import org.eclipse.cdt.core.index.IIndex; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; +import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser; import org.eclipse.cdt.core.dom.ast.cpp.*; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPNodeFactory; import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPBuildASTParserAction; import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPSecondaryParserFactory; -public class CPPNoFunctionDeclaratorParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser< IASTDeclarator > +public class CPPNoFunctionDeclaratorParser extends PrsStream implements RuleAction, ITokenStream, + ITokenCollector, IParser< IASTDeclarator > + , ISecondaryParser< IASTDeclarator > { private static ParseTable prs = new CPPNoFunctionDeclaratorParserprs(); private FixedBacktrackingParser btParser; @@ -168,7 +177,11 @@ public class CPPNoFunctionDeclaratorParser extends PrsStream implements RuleActi private CPPBuildASTParserAction action; private IASTCompletionNode compNode; -public CPPNoFunctionDeclaratorParser() { // constructor + +public CPPNoFunctionDeclaratorParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Set options) { + initActions(options); + action.initializeTranslationUnit(scanner, builtinBindingsProvider, index); + CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap); } private void initActions(Set options) { @@ -187,10 +200,9 @@ public void addToken(IToken token) { } -public IASTDeclarator parse(Set options) { +public IASTDeclarator parse() { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(options); final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse @@ -233,12 +245,12 @@ public void setTokens(List tokens) { addToken(new Token(null, 0, 0, CPPNoFunctionDeclaratorParsersym.TK_EOF_TOKEN)); } -public CPPNoFunctionDeclaratorParser(IParserActionTokenProvider parser) { // constructor +public CPPNoFunctionDeclaratorParser(ITokenStream parser, Set options) { // constructor for creating secondary parser + initActions(options); tokenMap = new TokenMap(CPPNoFunctionDeclaratorParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols()); } - public void ruleAction(int ruleNumber) { switch (ruleNumber) @@ -1415,19 +1427,19 @@ public CPPNoFunctionDeclaratorParser(IParserActionTokenProvider parser) { // co } // - // Rule 326: ptr_operator ::= pointer_hook * cv_qualifier_seq_opt + // Rule 326: ptr_operator ::= pointer_hook * pointer_hook cv_qualifier_seq_opt // case 326: { action. consumePointer(); break; } // - // Rule 327: ptr_operator ::= pointer_hook & + // Rule 327: ptr_operator ::= pointer_hook & pointer_hook // case 327: { action. consumeReferenceOperator(); break; } // - // Rule 328: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * cv_qualifier_seq_opt + // Rule 328: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook cv_qualifier_seq_opt // case 328: { action. consumePointerToMember(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java index e43bad0f389..0fe02108885 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java @@ -69,7 +69,7 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 1,3,1,1,1,6,5,7,6,1, 0,6,5,6,4,1,3,1,0,1, 2,1,1,3,1,3,1,1,1,3, - 9,2,2,3,2,4,2,6,0,1, + 9,2,2,3,2,5,3,7,0,1, 2,2,1,0,1,1,1,3,1,2, 1,1,2,3,1,1,1,3,2,1, 2,2,9,8,2,1,3,1,3,1, @@ -90,445 +90,441 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 3,1,1,2,4,2,4,7,9,5, 1,3,1,0,1,1,2,4,4,1, 2,5,5,3,3,1,4,3,1,0, - 1,3,1,1,1,-109,0,0,0,-13, + 1,3,1,1,1,-110,0,0,0,-13, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-2,0,0, - 0,0,0,0,0,-7,0,-222,0,0, - 0,0,0,-87,0,0,0,0,0,-115, + 0,0,0,0,0,0,0,-276,0,0, + 0,0,0,0,0,-2,0,-7,0,0, + 0,0,0,-88,0,0,0,0,0,-116, 0,0,0,-8,0,0,0,0,0,0, - 0,0,-132,0,0,0,0,0,0,0, + 0,0,-133,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-10,0,0,0,-130,0, + 0,0,0,0,-10,0,0,0,-131,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -11,0,0,0,0,0,0,0,0,-14, - -19,-287,0,0,0,-116,0,0,0,-3, + -11,0,0,0,0,0,0,0,0,-471, + 0,-289,0,0,0,-117,0,0,0,-3, + 0,0,0,0,0,0,0,0,-73,0, + -338,0,0,0,0,0,0,-76,0,0, 0,0,0,0,0,0,0,0,0,0, - -111,0,0,0,0,0,0,-75,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-151, - 0,-291,0,0,0,0,0,-23,0,0, - -92,0,0,-4,0,-157,-35,-401,0,-25, - 0,0,0,-76,0,0,0,0,0,0, + 0,-19,0,0,0,0,-158,0,0,0, + -27,0,0,-4,-293,-93,-416,-23,0,0, + 0,0,0,-77,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-21,0,0,0,0,0,0, + 0,-25,0,0,0,0,0,-20,0,-28, + -188,0,0,0,0,0,0,0,0,0, + -29,0,0,0,-538,0,0,0,-223,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-21,0,0,0,0,0,0,0, - -238,0,0,0,0,0,0,-177,0,-231, - 0,0,-182,0,-535,0,0,0,-423,0, - 0,0,0,0,0,0,0,0,0,-223, - 0,0,0,-91,0,0,0,0,0,0, + 0,-389,0,-92,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-14,0,0,0,0, + 0,0,-78,0,0,0,-22,0,0,-181, + 0,0,0,0,0,0,0,0,0,-220, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-77, - -187,0,0,0,0,0,0,0,0,-219, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-191, + 0,0,0,0,0,0,0,-459,0,0, + 0,0,0,-26,0,-222,0,0,0,0, + 0,0,0,-30,0,-475,0,0,-194,0, + 0,0,-152,0,0,0,0,0,0,0, + 0,0,-90,0,0,0,0,-37,0,-171, + 0,0,0,-112,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-190, - 0,-27,0,0,0,0,0,-229,0,0, - 0,0,0,0,0,-221,0,0,0,0, - 0,0,0,0,0,0,0,0,-193,0, 0,0,0,0,0,0,0,0,0,0, - 0,-161,0,0,0,-28,0,-20,0,-170, - 0,0,0,-29,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-361,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,-33,0,0,0,0,0, + 0,0,0,0,0,0,-83,0,0,0, + -162,0,0,0,0,-46,-351,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-290,-483,0, - 0,0,-275,0,0,0,-525,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-73,0,0,0,0,0, - 0,0,-30,0,-33,0,-82,0,0,0, - -34,-22,0,0,0,0,-348,0,0,0, - -41,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-35,0,0,0, + 0,0,0,0,-34,0,0,0,-239,0, + 0,-16,0,0,0,-224,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-31,0,0,0, - 0,0,0,0,-42,0,0,0,-272,0, - 0,-16,0,0,0,-265,0,0,0,0, + 0,0,0,-41,0,0,0,0,0,0, + 0,0,0,-476,0,-426,0,0,0,0, + 0,0,0,0,-274,0,0,0,0,-183, + 0,-38,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-473,0,-447,0,0,0,0, - 0,0,0,0,-358,0,0,0,-43,0, - -40,-38,0,0,0,0,0,0,0,0, + 0,-31,0,-264,0,0,0,0,0,0, + -42,-43,0,0,-138,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-39,0,-262,0,0,0,0,0,0, - 0,-380,0,0,-137,0,0,0,0,0, + 0,0,0,0,0,0,-44,0,0,0, + -325,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-267,0,0,0,0,0,0,0, + 0,0,-74,0,-450,0,0,0,-45,0, + -268,0,0,-365,0,0,0,-353,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-257,0,-44,0,0,0, - -322,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-266,0,0,0,0,0,0,0, - 0,0,0,0,-512,0,0,0,0,0, - -45,0,0,-362,0,0,0,-47,0,0, + 0,0,0,-249,0,-75,0,0,0,0, + 0,0,-47,-59,0,0,-366,0,0,0, + -60,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-39,0,-61,0, + 0,0,0,0,0,-62,0,0,0,-36, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-248,0,-59,0,0,0,0, - 0,-468,0,-60,0,0,-363,0,0,0, - -350,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-61,0, - -46,0,0,0,-62,0,0,0,0,-36, 0,0,0,0,0,0,0,0,0,0, + 0,-63,0,-99,0,0,0,0,0,0, + -107,-161,-70,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,-64,0,-74,0,0,0,0,0,0, - -26,-160,-70,0,0,0,0,0,0,0, + 0,0,0,0,-64,0,0,0,0,0, + 0,0,0,0,-65,0,-404,0,0,0, + 0,0,0,0,0,-515,-139,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-65,0,0,0,0,0, - 0,0,0,0,-66,0,-37,0,0,0, - -67,0,0,0,0,-80,-138,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-218,0, + 0,0,0,0,-91,-383,-66,0,0,-140, + 0,0,0,-67,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-68,0,-274,0, - 0,0,0,0,-89,0,-69,0,0,-139, - 0,0,0,-71,0,0,0,0,0,0, + 0,-68,0,0,0,0,0,0,0,-69, + 0,-316,0,-95,0,0,0,0,-71,-96, + 0,0,-141,0,0,0,-97,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-95, - 0,-313,0,-90,0,0,0,-94,-472,0, - 0,0,-140,0,0,0,-96,0,0,0, + 0,0,0,0,-115,0,0,0,0,0, + 0,0,-153,0,-155,0,0,0,0,0, + 0,-156,-157,0,0,-142,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-114,0,0,0,0,0, - 0,0,-152,0,-154,0,0,0,0,0, - -155,-156,-165,0,0,-141,0,0,0,-166, + 0,0,0,0,0,0,0,-166,0,0, + 0,0,0,0,0,0,0,-167,0,-154, + 0,0,0,0,-168,-174,0,0,-143,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,-167,0,0, - 0,0,0,0,0,0,0,-173,0,0, - 0,0,0,-174,-175,-176,0,0,-142,0, - 0,0,-184,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-159,0, + -176,0,0,0,0,0,-190,-177,-185,0, + 0,-144,0,0,0,-186,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-98,0, - -185,0,0,0,0,0,-186,-198,-199,0, - 0,-143,0,0,0,-200,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-187,0,-199,0,-163,0,0,0,-198, + 0,-200,0,0,-145,0,0,0,-201,0, 0,0,0,0,0,0,0,0,0,0, - 0,-158,0,-201,0,0,0,0,0,-189, - -202,-203,0,0,-144,0,0,0,-204,0, + 0,0,0,0,0,0,-202,0,0,0, + 0,0,0,0,-203,0,-204,0,0,0, + 0,0,-205,-206,-207,0,0,-146,0,0, + 0,-208,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-209, + 0,0,0,0,0,0,0,-210,0,-211, + 0,0,0,0,0,-212,-213,-214,0,0, + -147,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,-205,0,0,0, - 0,0,0,0,-206,0,-207,0,-162,0, - 0,0,-197,0,-208,0,0,-145,0,0, - 0,-209,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-210, - 0,0,0,0,0,0,0,-211,0,-212, - 0,0,0,0,0,-213,-214,-215,0,0, - -146,0,0,0,-216,0,0,0,0,0, + 0,0,-216,0,0,0,0,0,0,0, + -228,0,-217,0,0,0,0,0,-225,-234, + -235,0,0,-148,0,0,0,-236,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-224,0,0,0,0,0,0,0, - -233,0,-234,0,0,0,0,0,-235,-236, - -258,0,0,-147,0,0,0,-260,0,0, + 0,0,0,0,0,-237,0,0,0,0, + 0,0,0,-243,0,-260,0,0,0,0, + 0,-262,-263,-282,0,0,-149,0,0,0, + -283,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-285,0, + 0,0,0,0,0,0,-248,0,-287,0, + 0,0,0,0,-294,-301,-302,0,0,-170, + 0,0,0,-306,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-261,0,0,0,0, - 0,0,0,-217,0,-280,0,0,0,0, - 0,-281,-283,-285,0,0,-148,0,0,0, - -292,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-298,0, - 0,0,0,0,0,0,-227,0,-299,0, - 0,0,0,0,-303,-311,-312,0,0,-169, - 0,0,0,-314,0,0,0,0,0,0, + 0,-314,0,0,0,0,0,0,0,-255, + 0,-315,0,0,0,0,0,-317,-259,-348, + 0,0,-254,0,0,0,-326,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-323,0,0,0,0,0,0,0,-242, - 0,-324,0,0,0,0,0,-332,-336,-345, - 0,0,-253,0,0,0,-337,0,0,0, + 0,0,0,0,-327,0,0,0,0,0, + 0,0,-335,0,-339,0,0,0,0,0, + -340,-352,-354,0,0,-533,0,0,0,-370, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-349,0,0,0,0,0, - 0,0,-247,0,-351,0,0,0,0,0, - -367,-375,-378,0,0,-530,0,0,0,-392, + 0,0,0,0,0,0,0,-378,0,0, + 0,0,0,0,0,-269,0,-381,0,0, + 0,0,0,-395,-406,-407,0,0,-360,0, + 0,0,-113,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-403,0,0, - 0,0,0,0,0,-267,0,-404,0,0, - 0,0,0,-407,-408,-183,0,0,-357,0, - 0,0,-112,0,0,0,0,0,0,0, + -410,0,0,0,0,0,0,0,-15,0, + -40,0,0,0,0,0,-373,0,0,0, + -486,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -414,0,0,0,0,0,0,0,-15,0, - -416,0,0,0,0,0,-370,0,0,0, - -428,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-6,0,0,0,0,-514, + 0,0,0,0,0,-392,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-6,0,0,0,0,-456, - 0,0,0,0,0,-389,0,0,0,0, + 0,0,0,0,0,0,0,-411,0,0, + 0,0,0,0,0,-192,0,-81,0,0, + 0,0,0,-393,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-435,0,0, - 0,0,0,0,0,-191,0,-226,0,0, - 0,0,0,-390,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-417,0,0,0,0,0,0, + 0,-94,0,0,0,-419,-98,0,0,0, + 0,0,-462,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-436,0,-446,0,0,0,0, - 0,-93,0,0,0,-458,-97,0,0,0, - 0,0,-459,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-270,0,-227,0,0,0,0,0, + -151,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-268,0,-297,0,0,0,0,0, - -150,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-85,0,0,0,-196,0,0,0, + -431,0,0,0,0,0,0,0,0,-136, 0,0,0,0,0,0,0,0,0,0, - 0,0,-460,0,0,0,-195,0,0,0, - -462,0,0,0,0,0,0,0,0,-135, 0,0,0,0,0,0,0,0,0,0, + 0,-108,0,0,0,0,0,0,0,-245, + 0,-137,0,0,0,-375,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-84,0,0,0,0,0,0,0,-244, - 0,-136,0,0,0,-463,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-335,0,0,0,0,0,0, - 0,-133,0,0,0,-464,0,0,0,0, + 0,-134,0,0,0,-292,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-465,0,0,0,0,0,-134, + 0,0,0,-438,0,0,0,0,0,-135, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-79,0,0,0,0,0,-402,0,0, + 0,-80,0,0,0,0,0,-405,0,0, 0,0,0,0,0,0,0,0,0,0, - -126,0,0,0,-467,0,0,0,0,0, + -127,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-232,0,0,0,0,-17,0,0, - 0,-482,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-484,0,-106,0, - 0,-107,-422,0,0,0,-338,0,0,0, - -255,0,0,0,0,0,0,0,0,0, - -230,0,0,0,0,-485,0,-387,0,0, + 0,0,0,0,0,0,0,-231,0,0, + 0,-341,0,0,0,0,0,0,0,0, + 0,0,0,-172,0,0,-303,0,-173,0, + 0,0,-425,0,0,0,-387,0,0,0, + -253,0,0,0,0,0,0,0,0,0, + -230,0,0,-337,0,0,0,0,0,-439, + 0,-449,-18,0,0,0,0,-49,0,0, + 0,0,0,0,-128,0,0,0,-461,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-127,0,0,0,-487,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-492,0,0,0, - 0,-384,0,0,0,-496,0,0,0,0, - 0,0,0,-237,0,0,0,-368,-501,-128, + 0,0,0,-463,0,0,0,-371,-374,-465, + 0,0,0,0,0,-238,0,0,0,-129, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-385,0,0,0,0,-129,0,0,0, - -331,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-509,0, - 0,0,0,-284,0,0,0,0,0,0, - 0,0,0,0,0,0,-259,0,0,-300, - -269,0,0,-398,0,-302,0,0,0,0, - 0,0,0,0,0,0,0,0,-440,0, - 0,0,-347,-325,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-439,0,0,0,0,0,-12,0, - 0,0,0,-519,-511,0,-171,0,0,0, - 0,-78,0,0,0,0,0,0,0,0, - -159,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-371,0,0,-526,0,-438, - -239,0,0,0,0,0,-400,0,0,0, - 0,-270,-286,0,0,0,0,0,-9,-531, - 0,0,0,0,0,0,0,0,0,0, - 0,-296,0,0,0,0,-394,0,0,0, - 0,-273,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-457,0,0,0,0,0,0,0,0, - 0,0,0,-105,-172,0,0,0,0,0, - 0,0,0,0,-24,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-252,-310,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-178,-81,0,0,-83, - -527,-131,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-373,0,0,0,0,-393,0, - 0,0,0,0,-18,0,0,0,0,0, - 0,0,0,-263,0,0,0,0,0,0, + 0,-388,0,0,0,0,-130,0,0,0, + -397,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,-466,0, - 0,0,0,0,0,0,0,0,0,-452, - 0,0,0,0,0,-301,0,0,0,0, + 0,0,0,-286,0,0,0,0,0,0, + 0,0,0,0,0,0,-530,-288,-101,-505, + 0,0,0,0,0,-305,0,0,0,0, + 0,0,0,0,0,0,0,0,-272,0, + 0,0,0,-328,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-179,-182,-193, + 0,0,0,0,0,0,0,-467,-105,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-108, + -79,0,0,0,-197,0,-334,0,0,0, + 0,0,-468,0,-470,0,0,0,0,0, + 0,0,0,0,-106,0,0,0,0,-441, + -485,0,0,0,0,-299,0,0,0,0, + -271,0,0,-242,0,0,0,0,0,-415, + 0,0,-233,0,0,0,0,0,0,0, + 0,0,-232,0,-298,0,-487,0,0,0, + 0,0,0,0,-257,0,0,0,0,0, + 0,0,0,0,-488,0,0,0,0,0, + -184,-460,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-401,-490,0,-495, + 0,0,0,0,-24,0,0,0,0,0, + 0,0,-275,0,0,0,0,0,0,0, + 0,0,0,0,0,-241,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-486,-372,0,-304,0,-432,-391,0, - -413,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-251,0,0,0,0, - 0,-306,0,-334,-168,0,0,0,0,-307, - 0,0,0,-327,0,-271,0,0,0,0, - 0,0,0,0,0,0,-488,-383,0,0, - 0,0,0,0,0,0,-295,0,0,0, + 0,0,0,-300,-499,-504,0,0,0,0, + 0,0,0,0,0,0,-82,0,-512,-84, + -531,-132,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -353,0,0,0,0,-85,0,0,-117,0, - 0,0,0,0,0,0,0,0,0,-309, - 0,-356,0,0,0,0,0,0,0,0, - -503,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-453,0,0,0,0,-180,0,0,0, - 0,0,0,0,0,-386,0,0,0,0, - 0,0,0,0,0,-192,0,0,0,0, - 0,0,0,0,-518,-354,0,0,0,0, + 0,0,0,0,0,0,0,-250,0,0, + 0,0,0,-403,-160,0,0,0,0,0, + 0,0,-522,-265,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-469,0, + 0,-529,0,0,0,0,0,0,0,-290, + 0,0,0,0,-178,-284,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-86, + 0,0,0,0,0,0,0,0,0,-109, + 0,0,-291,0,0,0,0,0,0,0, + 0,0,0,-489,0,0,-309,0,-295,0, + 0,0,-534,0,0,0,0,0,0,0, + 0,0,-494,-304,0,0,0,0,0,-443, + 0,0,0,0,0,-12,0,0,0,-350, + 0,0,0,0,0,-261,0,0,-376,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,0,0,0,0,-326,0,0,0,0, - 0,0,0,0,0,-100,-379,0,0,0, - 0,0,0,0,0,0,0,0,-520,-196, - 0,0,0,0,-305,0,-374,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-32,0,0,0,0,0,0,0,0, - 0,0,0,0,-405,0,0,0,0,0, - 0,-240,0,0,0,0,0,0,0,0, - 0,0,-524,0,0,0,0,0,0,-443, + 0,0,-318,0,0,0,0,0,0,0, + -252,0,0,0,0,0,0,0,0,0, + 0,0,0,-506,0,0,-119,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-164,0,0,0,0, - -249,-355,0,-319,0,0,0,0,0,0, - 0,0,0,0,-288,0,0,0,0,0, - 0,0,0,0,0,0,-321,-406,0,0, - 0,-181,0,0,-479,0,0,0,0,0, - 0,0,0,0,0,0,-529,0,0,0, - 0,0,0,0,0,0,0,0,0,-121, + 0,0,0,-313,0,0,-169,0,0,0, + -367,0,-329,0,0,0,0,0,0,0, + 0,0,0,0,-386,0,-273,0,0,0, + 0,0,0,0,0,0,0,0,-521,0, + 0,-118,0,-307,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-312,0,0, + 0,0,-446,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-32, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-523,0,0,0,0,-308,0, + 0,0,0,0,-319,0,0,0,0,0, + 0,0,-510,0,0,0,0,0,0,0, + -324,-320,-321,0,0,-72,0,0,0,0, + -396,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-527,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-394,0,0, + 0,0,0,-535,-528,-310,0,0,0,0, + 0,0,0,0,0,-358,0,0,0,0, + 0,-412,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,-532,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,0,0,0,0, - 0,-282,0,0,-72,0,0,0,-476,0, - 0,0,0,0,0,-477,0,0,0,0, - 0,-330,0,0,0,0,0,-320,0,0, - -502,0,-536,0,0,-289,0,0,0,0, + -472,-331,-362,0,0,-359,-164,0,0,0, + 0,0,-219,-539,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, - -420,0,0,-528,0,0,0,0,0,0, - 0,0,0,0,-340,-101,0,0,0,0, - 0,0,0,-102,-315,0,-411,0,0,0, - 0,0,0,0,0,0,-539,0,0,0, - 0,-427,-469,0,-342,0,0,0,0,0, - 0,0,0,0,0,0,0,-421,0,0, - 0,-118,0,0,0,0,0,-344,0,0, + 0,0,0,0,0,-89,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-542,0, + 0,0,0,0,-296,0,0,0,0,0, + 0,0,0,0,0,0,0,-408,0,0, + 0,0,0,0,-479,0,0,0,0,0, + -480,0,0,0,0,-377,0,0,0,-356, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-293,0,0,0,-480,0,0, + 0,0,0,0,0,-390,0,0,0,0, + 0,0,-363,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, - -122,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-368,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-365,0,0,0,0, - 0,0,0,0,0,0,0,0,-316,-522, + 0,-525,0,0,0,0,0,0,0,0, + 0,0,0,0,-1,0,0,0,0,0, + 0,0,0,0,0,0,0,-150,-333,-9, + -278,0,0,0,0,-402,0,-311,0,0, + 0,0,0,0,0,0,-420,0,-409,0, + 0,0,-332,0,0,0,0,0,0,0, + 0,-330,0,0,0,0,0,0,-423,0, + -357,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-50,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-1,0,0,0,0,0,0,0, - 0,0,0,0,0,-149,0,0,-532,0, - 0,-352,0,-276,-317,0,-318,0,0,0, - 0,-430,0,0,-328,0,0,0,0,-153, - 0,-218,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-359,-50,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-294,0,0,0, - 0,-369,0,0,-254,0,0,0,0,-123, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-450,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-343, + -382,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,-461,0,0,-88,0,0,0, - 0,0,-125,0,0,0,0,0,0,0, + 0,0,0,-432,0,-477,0,-442,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,-339,0,0,0,0,-360, - 0,0,0,0,-382,-409,0,0,0,0, - 0,-470,0,-103,-448,-361,0,0,0,-308, - 0,0,0,0,0,0,0,-329,0,0, - 0,0,0,-366,-396,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-189,0, + 0,0,0,0,-126,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-342,0,0,0, + 0,-279,0,0,-256,0,-385,-455,0,0, + 0,0,0,0,-424,0,-451,0,0,0, + 0,-322,-483,0,0,0,-345,0,0,-433, + 0,0,-347,-102,0,-355,0,0,0,0, + 0,-369,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-399, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-417,0,0,0, - 0,0,0,0,0,0,-424,0,0,0, - 0,0,-426,0,-434,-437,0,-441,0,0, - 0,0,0,0,0,0,0,-442,0,-497, - 0,0,0,0,-498,-508,0,-429,0,0, - 0,0,0,-51,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-52,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-53,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-54, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,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,-56,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-57,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-58,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-110, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-119,0,0,0,0,0,0,0,0, + 0,-399,0,0,0,0,-427,0,0,0, + 0,0,0,-414,0,0,-429,-437,0,-440, + 0,0,0,0,0,-51,0,0,0,-482, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-52,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-53, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-54,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,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,-56,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-57,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-58, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,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,-120,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-179,0,0,0,0, + 0,0,0,0,0,-121,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-245,0,0, + 0,0,0,0,0,0,0,-180,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-388, + 0,0,0,0,0,0,0,0,0,-246, 0,0,0,0,0,0,0,0,0,0, - 0,0,-449,0,0,0,0,0,0,0, - 0,0,0,0,0,-471,0,0,-277,-278, - -341,-418,0,0,0,0,0,-517,-397,-474, - -499,0,-246,-376,-241,0,0,0,0,0, - -481,0,0,-410,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-391,0,0,0,0,0,0,0,0, + 0,0,0,0,-452,0,0,0,0,0, + 0,0,0,0,0,0,0,-280,0,-445, + -281,0,-344,0,0,-336,0,-500,-501,0, + -323,0,0,-430,0,-379,-517,0,0,0, + 0,-421,-453,0,0,-502,0,0,0,0, + 0,0,-464,0,0,0,0,0,-473,0, + 0,0,0,-297,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-474,0,0,0,0,0, + 0,-195,0,0,0,0,0,0,0,0, + 0,0,0,0,-507,0,0,0,0,0, + 0,0,0,0,0,0,0,-384,0,0, + 0,0,0,-509,0,0,0,-428,-484,-435, + 0,0,0,0,0,0,0,-436,-364,0, + -513,0,0,-511,-497,0,0,0,-498,0, + 0,0,0,0,-503,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -494,-279,-412,-495,0,0,0,0,0,0, - 0,0,-504,0,0,0,0,0,0,0, - 0,0,0,0,0,-381,0,0,0,0, - -500,0,0,0,0,-425,0,0,0,0, - 0,0,0,0,0,-433,0,0,0,0, - -333,0,0,0,0,0,0,0,0,0, - -514,0,0,0,0,0,0,0,0,-521, - 0,0,0,0,0,0,0,0,0,-533, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-5,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, + 0,-518,-519,-240,-87,0,0,0,0,0, + 0,0,0,-349,0,0,0,0,0,0, + 0,0,0,0,0,0,-524,-537,-526,0, + 0,0,0,0,0,0,0,0,0,-221, + -540,-536,-541,0,0,0,0,0,0,-520, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-538,0,0, - 0,-5,0,0,0,0,0,0,0,0, - 0,0,0,0,-506,-86,0,0,0,-220, - 0,-510,-515,0,0,-478,-454,0,0,0, - 0,0,0,0,0,0,-516,0,0,-491, - 0,0,-534,0,-475,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-508,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-226,0, + 0,0,-266,0,0,0,0,0,0,0, + 0,-380,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-537, - 0,0,-377,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-364, - 0,0,0,0,0,0,-346,0,0,0, - 0,0,0,0,0,0,0,0,0,-523, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-505,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-264,0,0, + 0,0,0,0,-400,0,0,0,0,0, + 0,-229,0,0,0,0,0,0,-346,0, + 0,0,0,-398,0,0,0,0,0,0, + 0,-103,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-418,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -188,0,0,0,-194,0,0,0,0,0, + 0,0,-422,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-456,0,0, + 0,0,0,-434,0,0,0,0,-447,0, + 0,0,0,0,0,0,0,0,0,0, + -448,0,0,0,0,0,0,-454,0,0, + 0,0,0,0,-478,0,0,0,0,0, + 0,0,0,0,-48,-372,0,0,0,0, + 0,0,0,0,0,-100,0,0,0,0, + 0,0,0,0,0,0,0,0,-114,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-225, + 0,0,-444,0,0,0,0,0,0,0, + 0,-244,0,0,0,-481,0,0,-492,0, + 0,0,0,0,-251,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, - 0,0,0,0,0,-228,0,0,0,-343, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-395,0,0,0, - 0,-415,0,0,0,0,0,-507,0,0, - 0,0,0,0,-419,0,0,0,0,0, - 0,0,0,0,0,-431,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-455,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-444,0,0,0,0,0,0,0,0, - 0,0,0,0,-445,0,0,0,-451,0, - 0,0,0,0,0,-48,0,0,0,0, - 0,-49,0,0,0,0,0,-99,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-113,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-104,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-163, - 0,0,0,-243,0,0,0,0,-513,0, - 0,0,0,0,-250,0,0,0,0,0, - 0,0,-489,0,0,0,0,0,0,0, - 0,0,-490,0,0,0,0,0,-256,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-493,0,0,0, + 0,0,-493,0,0,0,0,0,0,0, + 0,0,0,0,0,-496,0,0,0,0, + 0,0,0,0,0,0,0,-104,0,-247, + 0,0,0,0,-457,-458,-516,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -538,7 +534,10 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0 }; }; public final static short baseCheck[] = BaseCheck.baseCheck; @@ -569,18 +568,18 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 65,56,56,179,179,69,69,69,102,102, 180,180,70,70,70,181,181,71,71,71, 71,71,72,72,83,83,83,83,83,83, - 83,83,49,49,49,49,49,118,118,116, - 116,50,182,22,22,22,22,22,48,48, + 83,83,50,50,50,50,50,118,118,116, + 116,51,182,22,22,22,22,22,48,48, 86,86,86,86,86,151,151,146,146,146, 146,146,147,147,147,148,148,148,149,149, 149,150,150,150,87,87,87,87,87,88, 88,88,13,13,13,13,13,13,13,13, 13,13,13,97,122,122,122,122,122,122, 120,120,120,152,121,121,183,154,154,153, - 153,124,124,103,78,78,79,80,52,47, - 155,155,53,51,85,85,156,156,145,145, + 153,124,124,103,78,78,79,80,53,47, + 155,155,54,52,85,85,156,156,145,145, 105,105,106,74,74,157,157,62,62,57, - 57,158,63,63,75,75,60,60,60,54, + 57,158,63,63,75,75,60,60,60,49, 89,89,99,98,98,61,61,58,58,55, 55,45,100,100,100,92,92,92,93,93, 94,94,94,95,95,107,107,107,109,109, @@ -601,492 +600,490 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 173,173,131,131,132,132,132,132,132,132, 3,133,133,130,130,114,114,84,77,73, 161,161,115,115,197,197,197,134,134,125, - 125,198,198,174,174,104,1119,35,1647,1641, - 1179,4611,27,30,31,584,566,26,28,1613, - 25,23,50,1296,106,76,77,108,1234,1304, - 1345,1339,1382,1372,1425,1415,1167,1467,142,1431, - 273,1477,1484,143,327,35,279,158,144,4860, - 1600,35,651,32,2077,4615,27,30,31,584, - 566,57,28,3023,35,651,32,232,4792,27, - 30,31,584,566,26,28,1268,25,23,50, - 1296,106,76,77,108,322,1304,1345,1339,1382, - 1372,1742,235,230,231,502,1033,964,34,3023, - 35,651,32,274,4792,27,30,31,584,566, - 26,28,1268,25,23,50,1296,106,76,77, - 108,2164,1304,1345,1727,242,245,248,251,1037, - 1446,924,2377,35,277,1436,2035,35,651,32, - 1322,4615,27,30,31,584,566,56,28,2026, - 1527,1525,2702,2412,2867,2870,3066,4436,2250,35, - 651,32,2815,4792,27,30,31,584,566,26, - 28,1268,25,23,50,1296,106,76,77,108, - 341,1304,1345,1339,1382,1372,1425,1415,61,1467, - 2242,1431,1347,1477,1484,143,3798,2905,1517,515, - 144,1993,870,2970,1347,323,1867,1859,2053,2905, - 1010,2905,4326,516,2250,35,651,32,2815,4792, - 27,30,31,584,566,26,28,1268,25,23, - 50,1296,106,76,77,108,341,1304,1345,1339, - 1382,1372,1425,1415,1553,1467,661,1431,3873,1477, - 1484,143,3014,56,2202,515,144,688,661,2970, - 661,502,35,1862,330,3015,331,791,2080,516, - 2305,2202,511,2217,60,2122,35,651,32,2237, - 4875,27,30,31,584,566,26,28,1555,509, - 2223,1561,496,2458,2250,35,651,32,2815,4792, - 27,30,31,584,566,26,28,1268,25,23, - 50,1296,106,76,77,108,341,1304,1345,1339, - 1382,1372,1425,1415,311,1467,910,1431,511,1477, - 1484,143,2564,94,3015,515,144,42,1588,2970, - 1347,327,35,279,1562,2905,4864,1561,351,516, - 2594,35,651,32,2815,4792,27,30,31,584, - 566,26,28,1268,25,23,50,1296,106,76, - 77,108,341,1304,1345,1339,1382,1372,1425,1415, - 2344,1467,1725,1431,2815,1477,1484,143,2224,35, - 277,515,144,441,661,2970,502,35,1243,1096, - 330,2243,341,791,354,516,44,1588,511,1956, - 35,651,32,529,4875,27,30,31,584,566, - 59,28,2207,2158,1570,1294,1903,1561,1355,736, - 2526,35,651,32,2467,4792,27,30,31,584, - 566,26,28,1268,25,23,50,1296,106,76, - 77,108,2772,1304,1345,1339,1382,1372,1425,1415, - 320,1467,1897,1431,512,1477,1484,143,2383,2583, - 1172,377,144,2319,35,651,32,2700,4792,27, - 30,31,584,566,26,28,1268,25,23,50, - 1296,106,76,77,108,135,1304,1345,1339,1382, - 1372,1425,1415,1324,1467,69,1431,1335,1477,1484, - 143,2493,56,1172,377,144,744,3023,35,651, - 32,71,4792,27,30,31,584,566,26,28, - 1268,25,23,50,1296,106,76,77,108,1512, - 1304,1345,1339,1382,1372,1425,1415,56,1467,1553, - 1431,824,1477,1510,164,2499,1983,383,1141,502, - 35,282,2391,35,651,32,142,4792,27,30, - 31,584,566,26,28,1268,25,23,50,1296, - 106,76,77,108,521,1304,1345,1339,1382,1372, - 1425,1415,521,1467,1618,1431,2237,1477,1484,143, - 384,1141,1172,377,144,502,1906,2601,421,2617, - 1948,1618,2788,35,651,32,2453,4792,27,30, - 31,584,566,26,28,1268,25,23,50,1296, - 106,76,77,108,2991,1304,1345,1339,1382,1372, - 1425,1415,56,1467,236,1431,2207,1477,1484,143, - 3890,1639,1713,158,144,3023,35,651,32,1392, - 4792,27,30,31,584,566,26,28,1268,25, - 23,50,1296,106,76,77,108,2986,1304,1345, - 1339,1382,1372,1425,1415,2130,1467,2623,1777,375, - 1141,2788,35,651,32,2711,4792,27,30,31, - 584,566,26,28,1268,25,23,50,1296,106, - 76,77,108,2663,1304,1345,1339,1382,1372,1425, - 1415,353,1467,402,1431,2237,1477,1484,143,288, - 529,2634,371,144,2788,35,651,32,931,4792, - 27,30,31,584,566,26,28,1268,25,23, - 50,1296,106,76,77,108,1527,1304,1345,1339, - 1382,1372,1425,1415,1946,1467,3270,1431,722,1477, - 1484,143,502,4291,585,371,144,2788,35,651, - 32,2515,4792,27,30,31,584,566,26,28, - 1268,25,23,50,1296,106,76,77,108,2640, - 1304,1345,1339,1382,1372,1425,1415,2640,1467,1350, - 1431,671,1477,1484,143,64,4846,370,371,144, - 2733,35,651,32,3205,4792,27,30,31,584, - 566,26,28,1268,25,23,50,1296,106,76, - 77,108,1811,1304,1345,1339,1382,1372,1425,1415, - 321,1467,929,1431,56,1477,1510,164,3610,529, - 369,1355,671,2459,35,651,32,4650,4792,27, - 30,31,584,566,26,28,1268,25,23,50, - 1296,106,76,77,108,1236,1304,1345,1339,1382, - 1372,1425,1415,495,1467,1244,1431,1355,1477,1484, - 143,400,325,367,142,144,1618,2788,35,651, - 32,1518,4792,27,30,31,584,566,26,28, - 1268,25,23,50,1296,106,76,77,108,376, - 1304,1345,1339,1382,1372,1425,1415,1328,1467,159, - 1431,93,1477,1484,143,1010,1682,1352,155,144, - 2788,35,651,32,1380,4792,27,30,31,584, - 566,26,28,1268,25,23,50,1296,106,76, - 77,108,419,1304,1345,1339,1382,1372,1425,1415, - 49,1467,159,1431,1010,1477,1484,143,1010,502, - 2556,154,144,2788,35,651,32,1476,4792,27, - 30,31,584,566,26,28,1268,25,23,50, - 1296,106,76,77,108,1442,1304,1345,1339,1382, - 1372,1425,1415,1375,1467,160,1431,458,1477,1484, - 143,2163,590,1774,153,144,2788,35,651,32, - 848,4792,27,30,31,584,566,26,28,1268, - 25,23,50,1296,106,76,77,108,1174,1304, - 1345,1339,1382,1372,1425,1415,457,1467,1560,1431, - 324,1477,1484,143,1965,1991,2146,152,144,2788, - 35,651,32,2310,4792,27,30,31,584,566, - 26,28,1268,25,23,50,1296,106,76,77, - 108,379,1304,1345,1339,1382,1372,1425,1415,56, - 1467,3297,1431,960,1477,1484,143,3223,408,580, - 151,144,2788,35,651,32,1144,4792,27,30, - 31,584,566,26,28,1268,25,23,50,1296, - 106,76,77,108,378,1304,1345,1339,1382,1372, - 1425,1415,56,1467,1613,1431,4440,1477,1484,143, - 1010,1700,932,150,144,2788,35,651,32,1378, - 4792,27,30,31,584,566,26,28,1268,25, - 23,50,1296,106,76,77,108,1527,1304,1345, - 1339,1382,1372,1425,1415,1790,1467,1610,1431,671, - 1477,1484,143,1010,4676,2246,149,144,2788,35, - 651,32,1954,4792,27,30,31,584,566,26, - 28,1268,25,23,50,1296,106,76,77,108, - 3217,1304,1345,1339,1382,1372,1425,1415,3219,1467, - 1508,1431,4168,1477,1484,143,1778,1949,1629,148, - 144,2788,35,651,32,1498,4792,27,30,31, - 584,566,26,28,1268,25,23,50,1296,106, - 76,77,108,1815,1304,1345,1339,1382,1372,1425, - 1415,2345,1467,2346,1431,51,1477,1484,143,2385, - 2414,1900,147,144,2788,35,651,32,2642,4792, - 27,30,31,584,566,26,28,1268,25,23, - 50,1296,106,76,77,108,2439,1304,1345,1339, - 1382,1372,1425,1415,56,1467,2415,1431,3675,1477, - 1484,143,2421,1887,2350,146,144,2788,35,651, - 32,2447,4792,27,30,31,584,566,26,28, - 1268,25,23,50,1296,106,76,77,108,2284, - 1304,1345,1339,1382,1372,1425,1415,56,1467,2664, - 1431,3026,1477,1484,143,2450,2387,2413,145,144, - 2788,35,651,32,838,4792,27,30,31,584, - 566,26,28,1268,25,23,50,1296,106,76, - 77,108,2419,1304,1345,1339,1382,1372,1425,1415, - 56,1467,2449,1431,2743,1477,1484,143,2486,2665, - 2514,159,144,2788,35,651,32,2481,4792,27, - 30,31,584,566,26,28,1268,25,23,50, - 1296,106,76,77,108,2516,1304,1345,1339,1382, - 1372,1425,1415,56,1467,1329,1431,998,1477,1484, - 143,2550,1338,2552,140,144,2906,35,651,32, - 2521,4792,27,30,31,584,566,26,28,1268, - 25,23,50,1296,106,76,77,108,2517,1304, - 1345,1339,1382,1372,1425,1415,56,1467,2557,1431, - 3012,1477,1484,143,1908,2667,2210,189,144,3023, - 35,651,32,1599,4792,27,30,31,584,566, - 26,28,1268,25,23,50,1296,106,76,77, - 108,2592,1304,1345,1339,1382,1372,1425,1415,56, - 1467,2582,1431,1142,1477,1510,164,3023,35,651, - 32,2687,4792,27,30,31,584,566,26,28, - 1268,25,23,50,1296,106,76,77,108,1427, - 1304,1345,1339,1382,1372,1425,1415,2202,1467,3126, - 1431,352,1477,1510,164,2152,35,651,32,445, - 2551,41,30,31,584,566,3023,35,651,32, - 292,4792,27,30,31,584,566,26,28,1268, - 25,23,50,1296,106,76,77,108,2558,1304, - 1345,1339,1382,1372,1425,1415,56,1467,1618,1431, - 1142,1477,1510,164,3023,35,651,32,2737,4792, - 27,30,31,584,566,26,28,1268,25,23, - 50,1296,106,76,77,108,3281,1304,1345,1339, - 1382,1372,1425,1415,2690,1467,2670,1431,2742,1477, - 1510,164,2160,35,651,32,2589,322,40,30, - 31,584,566,3078,35,651,32,420,4792,27, - 30,31,584,566,26,28,1268,25,23,50, - 1296,106,76,77,108,520,1304,1345,1339,1382, - 1372,1425,1415,56,1467,1618,1431,3020,1477,1510, - 164,3023,35,651,32,423,4792,27,30,31, - 584,566,26,28,1268,25,23,50,1296,106, - 76,77,108,380,1304,1345,1339,1382,1372,1425, - 1415,999,1467,2602,1431,3425,1785,1956,35,651, - 32,87,4875,27,30,31,584,566,58,28, - 3023,35,651,32,2529,4792,27,30,31,584, - 566,26,28,1268,25,23,50,1296,106,76, - 77,108,241,1304,1345,1339,1382,1372,1425,1415, - 2374,1770,3023,35,651,32,2677,4792,27,30, - 31,584,566,26,28,1268,25,23,50,1296, - 106,76,77,108,2484,1304,1345,1339,1382,1372, - 1425,1776,3023,35,651,32,2688,4792,27,30, - 31,584,566,26,28,1268,25,23,50,1296, - 106,76,77,108,2692,1304,1345,1339,1382,1760, - 3023,35,651,32,2202,4792,27,30,31,584, - 566,26,28,1268,25,23,50,1296,106,76, - 77,108,1232,1304,1345,1339,1382,1768,1983,35, - 651,32,734,3365,27,30,31,584,566,337, - 28,3023,35,651,32,2693,4792,27,30,31, - 584,566,26,28,1268,25,23,50,1296,106, - 76,77,108,1474,1304,1345,1339,1692,1692,35, - 651,32,2069,3365,27,30,31,584,566,337, - 28,70,661,232,1729,660,319,2699,330,1355, - 313,540,1355,502,35,1041,386,2160,35,651, - 32,322,312,2894,30,31,584,566,244,230, - 231,502,35,964,276,952,173,4537,327,35, - 451,4146,661,4702,24,660,319,429,331,1469, - 314,540,306,535,670,3023,35,651,32,2683, - 4792,27,30,31,584,566,26,28,1268,25, - 23,50,1296,106,76,77,108,2314,1304,1345, - 1339,1699,2160,35,651,32,2694,387,3437,30, - 31,584,566,3452,502,35,964,1856,2383,2756, - 3023,35,651,32,2081,4792,27,30,31,584, - 566,26,28,1268,25,23,50,1296,106,76, - 77,108,2514,1304,1345,1339,1717,3023,35,651, - 32,2454,4792,27,30,31,584,566,26,28, - 1268,25,23,50,1296,106,76,77,108,2758, - 1304,1345,1339,1725,1453,35,651,32,3176,2689, - 27,30,31,584,566,337,28,2207,35,293, - 671,2224,35,280,2454,4680,1726,35,1985,32, - 734,3365,27,30,31,584,566,337,28,502, - 35,1041,386,1792,1802,35,651,32,4530,2689, - 27,30,31,584,566,337,28,2762,444,2061, - 2071,660,319,843,35,451,313,540,4702,587, - 35,1041,386,450,2698,2551,349,1355,1942,350, - 661,400,3335,660,319,3790,330,2644,313,540, - 1948,1101,35,1803,820,239,342,2036,803,347, - 1311,660,319,49,1932,1010,313,540,2810,69, - 259,1890,1035,737,536,4537,2905,1010,958,350, - 2245,88,56,1374,102,49,3080,2815,3222,2616, - 2707,4293,228,2815,1035,926,342,2036,803,347, - 156,445,56,232,3242,2624,3765,314,180,3734, - 2991,341,502,35,964,278,203,215,4503,202, - 212,213,214,216,89,661,169,102,240,230, - 231,331,1,5383,728,168,536,183,167,170, - 171,172,173,174,1616,1355,350,97,1142,364, - 520,415,417,1975,228,3133,35,1041,386,98, - 3737,568,156,344,2036,803,347,5383,237,5383, - 180,3734,2991,358,160,2663,5383,68,203,215, - 4503,202,212,213,214,216,1686,322,169,273, - 3605,1863,1864,448,2061,2071,1007,168,181,184, - 167,170,171,172,173,174,1355,1246,436,5383, - 1376,1618,3023,35,651,32,232,4792,27,30, - 31,584,566,26,28,1268,25,23,50,1296, - 106,76,77,108,2359,1304,1345,1735,53,1608, - 2866,235,230,231,4715,502,35,1041,386,2792, - 2202,2991,274,284,1223,35,651,32,2646,2689, - 27,30,31,584,566,337,28,523,232,345, - 5383,232,404,536,242,245,248,251,1037,49, - 502,35,293,440,1436,454,1247,5383,1035,1025, - 1950,228,401,247,230,231,250,230,231,156, - 3468,2702,2412,2867,2870,3066,4436,180,3734,2991, - 2148,1905,319,5383,3117,203,215,4503,202,212, - 213,214,216,431,2484,169,56,536,2235,1374, - 3061,2241,2815,2815,168,2730,2547,167,170,171, - 172,173,174,5383,5383,228,757,35,1041,386, - 2624,2624,2150,156,2043,502,35,1041,386,2905, - 2150,180,3734,2991,2491,5383,1249,1906,2815,203, - 215,4503,202,212,213,214,216,517,2235,169, - 273,536,2815,4241,5383,350,2624,1599,168,49, - 178,167,170,171,172,173,174,182,46,228, - 2624,2150,342,2036,803,347,1609,156,661,1616, - 340,2946,315,1142,3014,180,3734,2991,503,358, - 1249,1906,322,203,215,4503,202,212,213,214, - 216,603,5383,169,5383,536,3857,1863,1864,160, - 5383,71,168,1871,176,167,170,171,172,173, - 174,2487,2618,228,359,5383,2815,1347,5383,501, - 502,156,2905,72,388,425,1618,232,503,180, - 3734,2991,389,425,2624,5383,1355,203,215,4503, - 202,212,213,214,216,689,2150,169,285,536, - 287,5383,253,230,231,96,168,5383,177,167, - 170,171,172,173,174,3200,2991,228,87,500, - 502,661,5383,391,425,156,1347,330,5383,2847, - 1907,2905,374,180,3734,2991,56,2207,2028,293, - 2815,203,215,4503,202,212,213,214,216,775, - 1355,169,503,536,287,56,2731,322,341,3146, - 168,2034,187,167,170,171,172,173,174,5383, - 5383,228,502,35,1041,386,5383,2762,5383,156, - 661,2970,52,3082,1907,671,330,180,3734,2991, - 4726,1598,1355,500,502,203,215,4503,202,212, - 213,214,216,861,5383,169,273,536,390,425, - 502,35,1041,386,168,3546,2750,167,170,171, - 172,173,174,297,348,228,502,35,1041,386, - 5383,1355,2136,156,1616,2462,372,4697,1142,5383, - 2245,180,3734,2991,432,1483,35,964,276,203, - 215,4503,202,212,213,214,216,56,322,169, - 273,3786,1901,90,160,322,4235,5383,168,338, - 192,167,170,171,172,173,174,2071,35,651, - 32,3176,2689,27,30,31,584,566,337,28, - 3023,35,651,32,349,4792,27,30,31,584, - 566,26,28,1268,25,23,50,1296,106,76, - 77,108,1355,1304,1648,587,35,1041,386,502, - 35,1041,386,275,296,5383,502,35,1041,386, - 3642,304,56,2899,660,319,2568,350,1616,313, - 540,2559,1142,947,3307,2815,1355,536,5383,49, - 5383,524,350,431,342,2036,803,347,1035,720, - 430,671,3242,341,1618,228,4762,5383,160,342, - 2036,803,347,156,3222,56,56,525,3382,3775, - 2815,180,3734,2991,56,1355,4228,2359,2815,203, - 215,4503,202,212,213,214,216,1033,341,169, - 427,536,2359,2423,2991,56,341,1142,168,3038, - 186,167,170,171,172,173,174,67,671,228, - 522,2970,56,4775,2000,299,1142,156,56,2970, - 5383,1604,2592,156,3770,180,3734,2991,5383,1605, - 221,200,4294,203,215,4503,202,212,213,214, - 216,5383,156,169,502,1949,964,74,502,35, - 293,1733,168,5383,194,167,170,171,172,173, - 174,3023,35,651,32,5383,4792,27,30,31, - 584,566,26,28,1268,25,23,50,1296,106, - 76,77,108,5383,1304,1649,1364,35,651,32, - 5383,3365,27,30,31,584,566,337,28,1355, - 1499,35,651,32,734,2689,27,30,31,584, - 566,337,28,1715,35,651,32,734,2689,27, - 30,31,584,566,337,28,56,5383,4457,2343, - 1142,66,56,1142,56,1355,2989,1355,1142,5383, - 661,5383,671,660,319,1355,331,4779,314,540, - 737,4321,737,5383,5383,5383,156,660,319,156, - 5383,350,313,540,156,1778,5383,65,162,64, - 660,319,5383,3435,312,313,540,3804,344,2036, - 803,347,1355,2968,35,651,32,312,4792,27, - 30,31,584,566,26,28,1268,25,23,50, - 1296,86,76,77,306,535,670,1483,35,964, - 1957,3612,1616,3612,55,737,1142,533,535,670, - 3023,35,651,32,5383,4792,27,30,31,584, - 566,26,28,1268,25,23,50,1296,106,76, - 77,108,160,1656,2359,4370,5383,5383,326,333, - 332,333,3023,35,651,32,2081,4792,27,30, - 31,584,566,26,28,1268,25,23,50,1296, - 106,76,77,108,2359,1684,3612,587,35,1041, - 386,5383,303,3023,35,651,32,558,4792,27, - 30,31,584,566,26,28,1268,25,23,50, - 1296,106,76,77,108,1563,1691,4500,3840,2815, - 1355,49,179,328,333,1824,1101,35,394,2815, - 1035,1563,2359,5383,56,1911,737,228,2815,2815, - 502,35,964,281,5383,5383,3276,228,502,35, - 964,1991,54,5383,56,56,341,228,4229,809, - 5383,205,215,4503,204,212,213,214,216,5383, - 198,205,215,4503,204,212,213,214,216,2970, - 5383,205,215,4503,204,212,213,214,216,1606, - 1355,206,208,210,294,295,1846,3612,217,207, - 209,206,208,210,294,295,1846,1355,217,207, - 209,206,208,210,294,295,1846,56,217,207, - 209,1126,101,56,5383,56,56,3785,1616,3112, - 2120,3207,1142,4316,3805,333,2148,5383,56,3888, - 56,3308,4465,4316,2695,56,56,5383,1355,1255, - 3560,3315,5383,4316,3023,35,651,32,160,4792, - 27,30,31,584,566,26,28,1268,25,23, - 50,1296,106,76,77,85,3023,1033,651,1545, - 3704,4792,27,30,31,584,566,26,28,1268, - 25,23,50,1296,106,76,77,84,3023,35, - 651,32,5383,4792,27,30,31,584,566,26, - 28,1268,25,23,50,1296,106,76,77,83, - 3023,35,651,32,4230,4792,27,30,31,584, - 566,26,28,1268,25,23,50,1296,106,76, - 77,82,3023,35,651,32,5383,4792,27,30, - 31,584,566,26,28,1268,25,23,50,1296, - 106,76,77,81,3023,35,651,32,5383,4792, - 27,30,31,584,566,26,28,1268,25,23, - 50,1296,106,76,77,80,3023,35,651,32, - 5383,4792,27,30,31,584,566,26,28,1268, - 25,23,50,1296,106,76,77,79,3023,35, - 651,32,5383,4792,27,30,31,584,566,26, - 28,1268,25,23,50,1296,106,76,77,78, - 2851,35,651,32,5383,4792,27,30,31,584, - 566,26,28,1268,25,23,50,1296,106,76, - 77,104,3023,35,651,32,5383,4792,27,30, - 31,584,566,26,28,1268,25,23,50,1296, - 106,76,77,110,3023,35,651,32,5383,4792, - 27,30,31,584,566,26,28,1268,25,23, - 50,1296,106,76,77,109,3023,35,651,32, - 5383,4792,27,30,31,584,566,26,28,1268, - 25,23,50,1296,106,76,77,107,3023,35, - 651,32,5383,4792,27,30,31,584,566,26, - 28,1268,25,23,50,1296,106,76,77,105, - 2063,35,1985,32,734,2689,27,30,31,584, - 566,337,28,1468,35,651,32,734,2689,27, - 30,31,584,566,337,28,2359,5383,5383,56, - 56,1998,2136,1142,1142,2815,5383,4697,2309,737, - 1355,1703,3327,56,1650,1812,5383,2815,2815,2815, - 2905,2359,5383,228,1101,35,394,660,319,156, - 156,5383,313,540,197,341,228,2624,3559,3595, - 660,319,449,527,1311,313,540,205,215,4503, - 204,212,213,214,216,5383,5383,312,2970,302, - 205,215,4503,204,212,213,214,216,3396,661, - 3612,2359,56,1618,2359,330,1142,206,208,210, - 294,295,1846,1355,518,207,209,307,535,670, - 206,208,210,294,295,1846,1737,517,207,209, - 2815,2359,156,2899,2731,358,2085,3867,333,201, - 2815,3597,199,2991,5383,3145,2172,5383,228,5383, - 2815,56,3362,1863,1864,1142,5383,5383,228,374, - 5383,1101,35,394,2194,416,417,1975,228,298, - 2359,5383,205,215,4503,204,212,213,214,216, - 2359,156,205,215,4503,204,212,213,214,216, - 2725,5383,205,215,4503,204,212,213,214,216, - 428,5383,206,208,210,294,295,1846,3589,218, - 207,209,206,208,210,294,295,1846,222,305, - 207,209,206,208,210,294,295,1846,2359,497, - 207,209,1468,35,651,32,734,2689,27,30, - 31,584,566,337,28,1355,3182,35,1041,386, - 1181,3737,1355,1355,2815,4899,1889,56,5383,238, - 2815,2815,5383,3876,5383,5383,193,1355,5383,5383, - 2423,2728,228,1355,536,737,5383,3199,341,341, - 273,5383,5383,5383,3253,2871,5383,5383,528,660, - 319,5383,3896,5383,313,540,1215,405,2914,3414, - 156,2970,2970,5383,5383,4418,958,232,180,3734, - 1355,531,507,1779,35,651,32,2418,2689,27, - 30,31,584,566,337,28,406,407,408,294, - 295,1846,236,230,231,195,3612,5383,5383,5383, - 1812,5383,3447,274,2815,2905,5383,1692,35,651, - 32,1821,3365,27,30,31,584,566,337,28, - 56,5383,2624,5383,1142,243,246,249,252,1037, - 1905,319,5383,3895,333,1436,1468,35,651,32, - 734,2689,27,30,31,584,566,337,28,5383, - 156,5383,5383,5383,661,5383,5383,5383,1286,4463, - 330,661,2815,4899,660,319,5383,331,5383,316, - 540,5383,5383,409,411,5383,5383,5383,5383,5383, - 228,2276,35,1041,386,1104,35,1041,386,3546, - 358,5383,5383,660,319,5383,5383,2491,313,540, - 4588,5383,5383,5383,1215,405,2914,3362,1863,1864, - 2694,4708,196,5383,4231,49,5383,5383,5383,49, - 1104,35,1041,386,1035,2330,5383,5383,1035,2846, - 2946,315,5383,5383,406,407,408,294,295,1846, - 3276,5383,5383,5383,3006,5383,587,35,1041,386, - 1104,35,1041,386,49,5383,5383,5383,5383,1821, - 5383,5383,5383,1035,47,5383,5383,587,35,1041, - 386,5383,587,35,1041,386,5383,5383,2482,2641, - 49,5383,536,5383,49,587,35,1041,386,1035, - 47,5383,5383,1035,47,5383,1979,35,1041,386, - 341,49,5383,5383,5383,1089,49,5383,156,2552, - 1035,47,5383,5383,56,1035,47,188,2815,49, - 5383,409,412,4566,5383,5383,2483,5383,1035,47, - 49,2659,587,35,1041,386,341,5383,5383,1035, - 47,5383,5383,5383,3260,587,35,1041,386,2168, - 35,1041,386,5383,5383,2940,56,5383,5383,2970, - 536,5383,1216,35,1041,386,49,5383,56,505, - 5383,5383,536,5383,5383,1035,47,5383,341,49, - 190,5383,5383,49,5383,5383,156,5383,1035,47, - 341,3369,1035,47,5383,2482,49,5383,156,56, - 5383,2970,5383,536,3376,1035,2043,2805,3508,5383, - 5383,2479,5383,2970,5383,5383,502,35,1041,386, - 5383,341,5383,2697,5383,5383,5383,5383,5383,156, - 502,35,1041,386,502,35,1041,386,2482,56, - 5383,5383,5383,2815,2970,502,35,1041,386,5383, - 49,5383,5383,56,3136,5383,5383,536,4360,1035, - 798,341,5383,56,49,5383,5383,536,49,502, - 35,1041,386,1035,918,341,5383,1035,662,49, - 5383,5383,5383,156,2970,341,5383,56,1035,2043, - 5383,536,188,156,532,5383,5383,5383,4566,5383, - 5383,5383,188,49,5383,5383,5383,5383,4566,341, - 5383,5383,1035,3047,5383,5383,5383,156,5383,5383, - 5383,5383,5383,5383,5383,5383,188,5383,5383,5383, - 5383,5383,4566,5383,5383,5383,5383,5383,5383,5383, - 5383,5383,5383,5383,5383,5383,5383,5383,5383,5383, - 5383,5383,5383,5383,5383,4303,5383,5383,5383,5383, - 5383,5383,5383,5383,5383,4435,5383,5383,5383,5383, - 5383,5383,5383,5383,5383,5383,5383,5383,5383,5383, - 5383,5383,5383,5383,5383,5383,5383,5383,5383,4442, - 5383,0,2115,1,0,39,5398,1,0,39, - 5397,1,0,38,625,0,38,5398,0,38, - 5397,0,452,783,0,438,1042,0,1077,29, - 0,5398,48,0,5397,48,0,5395,381,0, - 5394,381,0,39,5398,0,39,5397,0,1, - 442,0,456,1475,0,455,1514,0,35,33, - 0,1077,385,0,47,37,0,2570,126,0, - 1,1341,0,1,5655,0,1,5654,0,1, - 5653,0,1,5652,0,1,5651,0,1,5650, - 0,1,5649,0,1,5648,0,1,5647,0, - 1,5646,0,1,5645,0,283,392,0,283, - 286,0,5617,241,0,5616,241,0,5719,241, - 0,5718,241,0,5644,241,0,5643,241,0, - 5642,241,0,5641,241,0,5640,241,0,5639, - 241,0,5638,241,0,5637,241,0,5655,241, - 0,5654,241,0,5653,241,0,5652,241,0, - 5651,241,0,5650,241,0,5649,241,0,5648, - 241,0,5647,241,0,5646,241,0,5645,241, - 0,39,5398,241,0,39,5397,241,0,5421, - 241,0,43,5419,0,43,37,0,2156,91, - 0,32,34,0,39,625,0,329,443,0, - 5389,1,0,5388,1,0,237,2804,0,32, - 386,0,29,385,0,2570,128,0,2570,127, - 0,499,1828,0,5421,1,229,0,39,1, - 229,0,229,414,0,5398,37,0,5397,37, - 0,5419,45,0,37,45,0,5421,1,0, - 39,1,0,1,92,0,5393,403,0,5392, - 403,0,4422,1,0,2749,1,0,625,1, - 0,229,413,0,1914,381,0,5398,2,37, - 0,5397,2,37,0,5398,36,0,5397,36, - 0,1,329,0,8,12,0,329,95,0, - 35,73,0,499,4234,0,1,229,0,229, - 220,0,278,3284,0,229,219,0,1,3776, - 0,1,4244,0,5395,1,0,5391,1,0, - 1,229,2283,0,5392,229,0,2291,229,0, - 2506,229,0,10,12,0,8,10,12,0, - 185,3393,0 + 125,198,198,174,174,104,1119,35,1682,1656, + 1179,3729,27,30,31,584,568,26,28,1649, + 25,23,50,1304,106,76,77,108,159,1311, + 1346,1339,1415,1382,1477,1425,1234,1502,1167,1484, + 273,1510,1519,143,327,35,279,158,144,3377, + 1600,35,651,32,2077,4282,27,30,31,584, + 568,57,28,3023,35,651,32,232,2518,27, + 30,31,584,568,26,28,1303,25,23,50, + 1304,106,76,77,108,322,1311,1346,1339,1415, + 1382,1768,235,230,231,502,934,801,34,3023, + 35,651,32,274,2518,27,30,31,584,568, + 26,28,1303,25,23,50,1304,106,76,77, + 108,2164,1311,1346,1742,242,245,248,251,1037, + 502,4335,2377,35,277,2158,2035,35,651,32, + 1322,4282,27,30,31,584,568,56,28,135, + 1527,2484,2701,2412,2867,2870,2960,4445,2250,35, + 651,32,2815,2518,27,30,31,584,568,26, + 28,1303,25,23,50,1304,106,76,77,108, + 341,1311,1346,1339,1415,1382,1477,1425,61,1502, + 379,1484,924,1510,1519,143,3603,1867,1553,515, + 144,1725,2513,2970,1347,1347,1993,2241,1517,2513, + 2513,2730,863,516,2250,35,651,32,2815,2518, + 27,30,31,584,568,26,28,1303,25,23, + 50,1304,106,76,77,108,341,1311,1346,1339, + 1415,1382,1477,1425,56,1502,722,1484,688,1510, + 1519,143,1010,722,722,515,144,331,1355,2970, + 1903,327,35,279,330,2504,4802,1089,70,516, + 3117,2467,511,182,60,2122,35,651,32,142, + 4815,27,30,31,584,568,26,28,1555,509, + 320,1562,1618,4429,2250,35,651,32,2815,2518, + 27,30,31,584,568,26,28,1303,25,23, + 50,1304,106,76,77,108,341,1311,1346,1339, + 1415,1382,1477,1425,311,1502,1446,1484,511,1510, + 1519,143,737,1347,496,515,144,56,2513,2970, + 1347,744,42,1605,1563,2513,94,1562,374,516, + 2594,35,651,32,2815,2518,27,30,31,584, + 568,26,28,1303,25,23,50,1304,106,76, + 77,108,341,1311,1346,1339,1415,1382,1477,1425, + 2344,1502,722,1484,2815,1510,1519,143,2551,722, + 2026,515,144,330,1355,2970,502,35,1261,1243, + 330,323,341,441,1324,516,502,2855,511,1956, + 35,651,32,2242,4815,27,30,31,584,568, + 59,28,727,1010,1598,1294,495,1562,1355,4444, + 2526,35,651,32,1525,2518,27,30,31,584, + 568,26,28,1303,25,23,50,1304,106,76, + 77,108,372,1311,1346,1339,1415,1382,1477,1425, + 376,1502,1553,1484,512,1510,1519,143,502,1932, + 1337,377,144,2319,35,651,32,2202,2518,27, + 30,31,584,568,26,28,1303,25,23,50, + 1304,106,76,77,108,69,1311,1346,1339,1415, + 1382,1477,1425,520,1502,458,1484,1335,1510,1519, + 143,2207,2245,1337,377,144,671,3023,35,651, + 32,2689,2518,27,30,31,584,568,26,28, + 1303,25,23,50,1304,106,76,77,108,1512, + 1311,1346,1339,1415,1382,1477,1425,1859,1502,2081, + 1484,1811,1510,1520,164,2493,1897,383,2071,502, + 35,1871,2391,35,651,32,2223,2518,27,30, + 31,584,568,26,28,1303,25,23,50,1304, + 106,76,77,108,71,1311,1346,1339,1415,1382, + 1477,1425,288,1502,1618,1484,2237,1510,1519,143, + 384,2071,1337,377,144,502,35,282,421,910, + 2217,2202,2788,35,651,32,2753,2518,27,30, + 31,584,568,26,28,1303,25,23,50,1304, + 106,76,77,108,737,1311,1346,1339,1415,1382, + 1477,1425,56,1502,236,1484,824,1510,1519,143, + 4218,2499,2617,158,144,3023,35,651,32,1392, + 2518,27,30,31,584,568,26,28,1303,25, + 23,50,1304,106,76,77,108,2243,1311,1346, + 1339,1415,1382,1477,1425,351,1502,2623,1785,375, + 2071,2788,35,651,32,2905,2518,27,30,31, + 584,568,26,28,1303,25,23,50,1304,106, + 76,77,108,142,1311,1346,1339,1415,1382,1477, + 1425,354,1502,135,1484,2237,1510,1519,143,2634, + 529,2663,371,144,2788,35,651,32,2515,2518, + 27,30,31,584,568,26,28,1303,25,23, + 50,1304,106,76,77,108,1527,1311,1346,1339, + 1415,1382,1477,1425,1946,1502,135,1484,735,1510, + 1519,143,327,931,3270,371,144,2788,35,651, + 32,585,2518,27,30,31,584,568,26,28, + 1303,25,23,50,1304,106,76,77,108,2477, + 1311,1346,1339,1415,1382,1477,1425,56,1502,1350, + 1484,2207,1510,1519,143,1600,64,370,371,144, + 2733,35,651,32,3154,2518,27,30,31,584, + 568,26,28,1303,25,23,50,1304,106,76, + 77,108,3209,1311,1346,1339,1415,1382,1477,1425, + 353,1502,1811,1484,56,1510,1520,164,960,529, + 369,1355,671,2459,35,651,32,4569,2518,27, + 30,31,584,568,26,28,1303,25,23,50, + 1304,106,76,77,108,929,1311,1346,1339,1415, + 1382,1477,1425,4138,1502,1236,1484,2053,1510,1519, + 143,4318,325,367,142,144,2237,2788,35,651, + 32,1514,2518,27,30,31,584,568,26,28, + 1303,25,23,50,1304,106,76,77,108,419, + 1311,1346,1339,1415,1382,1477,1425,3887,1502,135, + 1484,93,1510,1519,143,1010,1713,1244,155,144, + 2788,35,651,32,400,2518,27,30,31,584, + 568,26,28,1303,25,23,50,1304,106,76, + 77,108,1328,1311,1346,1339,1415,1382,1477,1425, + 1352,1502,159,1484,1010,1510,1519,143,1940,1380, + 49,154,144,2788,35,651,32,1476,2518,27, + 30,31,584,568,26,28,1303,25,23,50, + 1304,106,76,77,108,1442,1311,1346,1339,1415, + 1382,1477,1425,1375,1502,160,1484,457,1510,1519, + 143,321,2163,590,153,144,2788,35,651,32, + 529,2518,27,30,31,584,568,26,28,1303, + 25,23,50,1304,106,76,77,108,1774,1311, + 1346,1339,1415,1382,1477,1425,324,1502,848,1484, + 56,1510,1519,143,3383,1174,1560,152,144,2788, + 35,651,32,1965,2518,27,30,31,584,568, + 26,28,1303,25,23,50,1304,106,76,77, + 108,2477,1311,1346,1339,1415,1382,1477,1425,56, + 1502,1991,1484,4480,1510,1519,143,1010,2146,2310, + 151,144,2788,35,651,32,3297,2518,27,30, + 31,584,568,26,28,1303,25,23,50,1304, + 106,76,77,108,378,1311,1346,1339,1415,1382, + 1477,1425,3223,1502,408,1484,671,1510,1519,143, + 1010,4622,580,150,144,2788,35,651,32,1144, + 2518,27,30,31,584,568,26,28,1303,25, + 23,50,1304,106,76,77,108,1613,1311,1346, + 1339,1415,1382,1477,1425,1700,1502,932,1484,4160, + 1510,1519,143,1378,1527,1790,149,144,2788,35, + 651,32,1610,2518,27,30,31,584,568,26, + 28,1303,25,23,50,1304,106,76,77,108, + 2246,1311,1346,1339,1415,1382,1477,1425,1954,1502, + 3217,1484,51,1510,1519,143,3219,1508,1778,148, + 144,2788,35,651,32,1949,2518,27,30,31, + 584,568,26,28,1303,25,23,50,1304,106, + 76,77,108,1629,1311,1346,1339,1415,1382,1477, + 1425,56,1502,1498,1484,3137,1510,1519,143,1815, + 2345,2346,147,144,2788,35,651,32,2385,2518, + 27,30,31,584,568,26,28,1303,25,23, + 50,1304,106,76,77,108,2414,1311,1346,1339, + 1415,1382,1477,1425,56,1502,1900,1484,2638,1510, + 1519,143,2642,2439,2415,146,144,2788,35,651, + 32,2421,2518,27,30,31,584,568,26,28, + 1303,25,23,50,1304,106,76,77,108,1887, + 1311,1346,1339,1415,1382,1477,1425,56,1502,2350, + 1484,2366,1510,1519,143,2447,2284,2664,145,144, + 2788,35,651,32,2450,2518,27,30,31,584, + 568,26,28,1303,25,23,50,1304,106,76, + 77,108,2387,1311,1346,1339,1415,1382,1477,1425, + 56,1502,2413,1484,4254,1510,1519,143,838,2130, + 2514,159,144,2788,35,651,32,2419,2518,27, + 30,31,584,568,26,28,1303,25,23,50, + 1304,106,76,77,108,2449,1311,1346,1339,1415, + 1382,1477,1425,2486,1502,2665,1484,402,1510,1519, + 143,2481,2516,1329,140,144,2906,35,651,32, + 2550,2518,27,30,31,584,568,26,28,1303, + 25,23,50,1304,106,76,77,108,1338,1311, + 1346,1339,1415,1382,1477,1425,56,1502,2552,1484, + 2987,1510,1519,143,2521,2517,2557,189,144,3023, + 35,651,32,1599,2518,27,30,31,584,568, + 26,28,1303,25,23,50,1304,106,76,77, + 108,1908,1311,1346,1339,1415,1382,1477,1425,56, + 1502,1618,1484,1142,1510,1520,164,3023,35,651, + 32,2583,2518,27,30,31,584,568,26,28, + 1303,25,23,50,1304,106,76,77,108,958, + 1311,1346,1339,1415,1382,1477,1425,2202,1502,822, + 1484,1384,1510,1520,164,2152,35,651,32,445, + 2551,41,30,31,584,568,3023,35,651,32, + 292,2518,27,30,31,584,568,26,28,1303, + 25,23,50,1304,106,76,77,108,2667,1311, + 1346,1339,1415,1382,1477,1425,56,1502,1618,1484, + 1142,1510,1520,164,3023,35,651,32,2904,2518, + 27,30,31,584,568,26,28,1303,25,23, + 50,1304,106,76,77,108,2898,1311,1346,1339, + 1415,1382,1477,1425,2592,1502,521,1484,1639,1510, + 1520,164,2160,35,651,32,2582,322,40,30, + 31,584,568,3078,35,651,32,420,2518,27, + 30,31,584,568,26,28,1303,25,23,50, + 1304,106,76,77,108,520,1311,1346,1339,1415, + 1382,1477,1425,56,1502,1618,1484,3286,1510,1520, + 164,3023,35,651,32,423,2518,27,30,31, + 584,568,26,28,1303,25,23,50,1304,106, + 76,77,108,380,1311,1346,1339,1415,1382,1477, + 1425,3285,1502,241,1484,2659,1813,1956,35,651, + 32,2687,4815,27,30,31,584,568,58,28, + 3023,35,651,32,2808,2518,27,30,31,584, + 568,26,28,1303,25,23,50,1304,106,76, + 77,108,1355,1311,1346,1339,1415,1382,1477,1425, + 2374,1777,3023,35,651,32,2484,2518,27,30, + 31,584,568,26,28,1303,25,23,50,1304, + 106,76,77,108,24,1311,1346,1339,1415,1382, + 1477,1778,3023,35,651,32,2383,2518,27,30, + 31,584,568,26,28,1303,25,23,50,1304, + 106,76,77,108,2558,1311,1346,1339,1415,1770, + 3023,35,651,32,2202,2518,27,30,31,584, + 568,26,28,1303,25,23,50,1304,106,76, + 77,108,1232,1311,1346,1339,1415,1776,1983,35, + 651,32,734,3236,27,30,31,584,568,337, + 28,3023,35,651,32,1686,2518,27,30,31, + 584,568,26,28,1303,25,23,50,1304,106, + 76,77,108,71,1311,1346,1339,1727,502,35, + 801,276,2160,35,651,32,1041,722,3029,30, + 31,584,568,232,1355,856,319,671,330,1355, + 313,540,4629,502,35,1085,386,2160,35,651, + 32,1686,312,3884,30,31,584,568,244,230, + 231,2224,35,277,2043,2707,69,4454,1983,2513, + 2690,68,2670,502,35,1085,386,429,1216,35, + 1085,386,306,535,670,3023,35,651,32,2589, + 2518,27,30,31,584,568,26,28,1303,25, + 23,50,1304,106,76,77,108,49,1311,1346, + 1339,1733,49,722,2602,2202,1025,679,2383,1010, + 87,1025,2043,4224,2504,2823,502,35,801,1864, + 3023,35,651,32,2291,2518,27,30,31,584, + 568,26,28,1303,25,23,50,1304,106,76, + 77,108,2514,1311,1346,1339,1734,3023,35,651, + 32,314,2518,27,30,31,584,568,26,28, + 1303,25,23,50,1304,106,76,77,108,2677, + 1311,1346,1339,1735,1453,35,651,32,3123,3016, + 27,30,31,584,568,337,28,1618,1374,56, + 2559,97,2815,2815,2815,96,1726,35,1993,32, + 734,3236,27,30,31,584,568,337,28,56, + 2624,341,341,3168,1802,35,651,32,3121,3016, + 27,30,31,584,568,337,28,737,1355,1901, + 1355,856,319,2744,2970,4490,313,540,2688,502, + 35,1085,386,523,1606,722,349,2807,1975,350, + 1983,3335,436,856,319,1355,330,2454,313,540, + 53,349,87,2692,239,2693,342,2791,1140,347, + 1268,856,319,49,1957,1616,313,540,358,1142, + 259,2069,1025,2945,536,4454,56,52,788,350, + 3757,2224,35,280,1812,3372,1889,1899,2815,2513, + 1618,2750,228,1474,350,160,342,2791,1140,347, + 156,445,232,2305,2836,1599,2624,2699,180,4243, + 737,342,2791,1140,347,322,203,215,4582,2836, + 202,212,213,214,216,173,169,240,230,231, + 737,2210,1,722,3775,168,536,183,167,170, + 171,172,173,174,330,3588,374,2454,2683,364, + 2314,415,417,1992,228,3133,35,1085,386,558, + 3416,2678,156,502,35,801,278,3117,237,2462, + 180,4243,737,4444,358,3020,1355,4443,203,215, + 4582,387,202,212,213,214,216,88,169,273, + 102,2946,1889,1899,1618,2694,2756,168,181,184, + 167,170,171,172,173,174,352,1246,348,2758, + 1376,1618,3023,35,651,32,232,2518,27,30, + 31,584,568,26,28,1303,25,23,50,1304, + 106,76,77,108,3660,1311,1346,1760,1355,44, + 1605,235,230,231,1010,1101,35,1819,1096,2792, + 3890,737,274,2698,1223,35,651,32,2646,3016, + 27,30,31,584,568,337,28,522,232,345, + 90,232,2810,536,242,245,248,251,1037,49, + 1483,35,801,276,2158,2080,1355,89,1025,926, + 102,228,401,247,230,231,250,230,231,156, + 1609,2701,2412,2867,2870,2960,4445,180,4243,737, + 2148,1914,319,1355,870,203,215,4582,3231,202, + 212,213,214,216,431,169,98,2150,536,502, + 1985,801,74,2707,168,5368,2810,167,170,171, + 172,173,174,2423,1247,3579,228,536,1950,2566, + 502,35,1085,386,156,809,587,35,1085,386, + 1792,232,180,4243,737,4334,2207,35,293,2359, + 203,215,4582,156,202,212,213,214,216,517, + 169,180,4243,536,450,350,253,230,231,168, + 49,178,167,170,171,172,173,174,400,1025, + 1077,228,342,2791,1140,347,2736,404,195,156, + 340,3004,315,1355,5368,3190,5368,180,4243,737, + 1089,757,35,1085,386,203,215,4582,5368,202, + 212,213,214,216,603,169,5368,56,536,388, + 425,1142,5368,5368,168,67,176,167,170,171, + 172,173,174,5368,322,273,228,502,35,1085, + 386,1812,5368,1347,156,2815,2513,156,2513,2854, + 5368,5368,180,4243,737,2235,1690,1249,1932,2815, + 203,215,4582,2624,202,212,213,214,216,689, + 169,49,1616,536,56,5368,1142,2624,3480,168, + 46,177,167,170,171,172,173,174,1249,1932, + 722,228,722,502,35,1085,386,5368,1905,156, + 284,330,160,330,3223,196,5368,180,4243,737, + 502,35,1085,386,5368,203,215,4582,72,202, + 212,213,214,216,775,169,5368,432,536,56, + 3538,358,3538,3621,168,1355,187,167,170,171, + 172,173,174,2482,273,503,228,536,2946,1889, + 1899,56,1355,1355,156,4329,587,35,1085,386, + 5368,1608,180,4243,737,341,4683,66,2705,5368, + 203,215,4582,156,202,212,213,214,216,861, + 169,287,188,536,65,64,500,502,4543,168, + 49,2993,167,170,171,172,173,174,1374,1025, + 943,228,2815,5368,2343,2700,2150,338,1142,156, + 3114,1942,287,5368,5368,3190,2136,180,4243,737, + 2624,4634,1101,35,394,203,215,4582,2061,202, + 212,213,214,216,156,169,502,35,1085,386, + 5368,3376,1942,162,168,190,192,167,170,171, + 172,173,174,2071,35,651,32,3123,3016,27, + 30,31,584,568,337,28,3023,35,651,32, + 273,2518,27,30,31,584,568,26,28,1303, + 25,23,50,1304,106,76,77,108,358,1311, + 1684,2423,1355,1355,5368,1142,322,502,35,1085, + 386,5368,5368,737,947,3597,1889,1899,536,5368, + 856,319,1101,35,394,313,540,3241,389,425, + 521,156,5368,4467,3802,55,228,524,350,200, + 4339,49,2384,275,156,5368,587,35,1085,386, + 1025,2501,180,4243,737,342,2791,1140,347,5368, + 203,215,4582,525,202,212,213,214,216,1033, + 169,5368,285,536,3765,1483,35,801,1991,168, + 49,186,167,170,171,172,173,174,671,1025, + 1588,228,4481,4704,427,502,35,1085,386,156, + 5368,502,35,1085,386,3316,322,180,4243,737, + 2150,326,333,5368,5368,203,215,4582,2034,202, + 212,213,214,216,5368,169,327,35,451,431, + 5368,4657,2510,1355,168,430,194,167,170,171, + 172,173,174,3023,35,651,32,5368,2518,27, + 30,31,584,568,26,28,1303,25,23,50, + 1304,106,76,77,108,54,1311,1692,1364,35, + 651,32,297,3236,27,30,31,584,568,337, + 28,5368,1499,35,651,32,734,3016,27,30, + 31,584,568,337,28,1715,35,651,32,734, + 3016,27,30,31,584,568,337,28,56,56, + 2616,56,1142,2558,2815,1142,1355,722,502,35, + 801,281,391,425,5368,856,319,1355,331,322, + 314,540,341,502,35,801,2000,5368,156,856, + 319,156,2491,350,313,540,2815,1803,101,671, + 3073,2150,856,319,4709,738,312,313,540,4210, + 344,2791,1140,347,2624,2968,35,651,32,312, + 2518,27,30,31,584,568,26,28,1303,25, + 23,50,1304,86,76,77,306,535,670,5368, + 56,2207,2036,293,3767,296,444,2194,2206,533, + 535,670,3023,35,651,32,5368,2518,27,30, + 31,584,568,26,28,1303,25,23,50,1304, + 106,76,77,108,1355,1699,1355,4482,843,35, + 451,2736,359,4657,3023,35,651,32,2291,2518, + 27,30,31,584,568,26,28,1303,25,23, + 50,1304,106,76,77,108,4233,1717,449,2276, + 35,1085,386,390,425,3023,35,651,32,566, + 2518,27,30,31,584,568,26,28,1303,25, + 23,50,1304,106,76,77,108,1563,1725,5368, + 5368,2815,56,49,2854,737,1142,1824,502,35, + 293,2815,1025,2330,440,671,454,1911,5368,228, + 4721,2815,1616,502,35,293,1142,56,3316,228, + 671,3135,156,56,56,4728,56,2592,2815,228, + 3278,3215,56,205,215,4582,4615,204,212,213, + 214,216,160,205,215,4582,341,204,212,213, + 214,216,5368,205,215,4582,3765,204,212,213, + 214,216,5368,206,208,210,294,295,1863,2970, + 217,207,209,206,208,210,294,295,1863,1613, + 217,207,209,206,208,210,294,295,1863,5368, + 217,207,209,332,333,5368,5368,5368,448,2194, + 2206,4319,56,3476,5368,4308,1126,56,3373,5368, + 5368,1255,5368,3599,2359,4308,4345,56,56,5368, + 56,3777,4698,3900,918,4308,3023,35,651,32, + 322,2518,27,30,31,584,568,26,28,1303, + 25,23,50,1304,106,76,77,85,3023,934, + 651,1545,299,2518,27,30,31,584,568,26, + 28,1303,25,23,50,1304,106,76,77,84, + 3023,35,651,32,5368,2518,27,30,31,584, + 568,26,28,1303,25,23,50,1304,106,76, + 77,83,3023,35,651,32,304,2518,27,30, + 31,584,568,26,28,1303,25,23,50,1304, + 106,76,77,82,3023,35,651,32,5368,2518, + 27,30,31,584,568,26,28,1303,25,23, + 50,1304,106,76,77,81,3023,35,651,32, + 5368,2518,27,30,31,584,568,26,28,1303, + 25,23,50,1304,106,76,77,80,3023,35, + 651,32,5368,2518,27,30,31,584,568,26, + 28,1303,25,23,50,1304,106,76,77,79, + 3023,35,651,32,5368,2518,27,30,31,584, + 568,26,28,1303,25,23,50,1304,106,76, + 77,78,2851,35,651,32,5368,2518,27,30, + 31,584,568,26,28,1303,25,23,50,1304, + 106,76,77,104,3023,35,651,32,5368,2518, + 27,30,31,584,568,26,28,1303,25,23, + 50,1304,106,76,77,110,3023,35,651,32, + 5368,2518,27,30,31,584,568,26,28,1303, + 25,23,50,1304,106,76,77,109,3023,35, + 651,32,5368,2518,27,30,31,584,568,26, + 28,1303,25,23,50,1304,106,76,77,107, + 3023,35,651,32,5368,2518,27,30,31,584, + 568,26,28,1303,25,23,50,1304,106,76, + 77,105,2063,35,1993,32,734,3016,27,30, + 31,584,568,337,28,1468,35,651,32,734, + 3016,27,30,31,584,568,337,28,56,5368, + 56,56,1142,1998,4735,1142,56,2815,56,56, + 1142,1616,2120,1436,2359,1142,1650,1101,35,394, + 2815,5368,2136,2359,5368,228,1703,4634,156,856, + 319,156,5368,2359,313,540,156,3232,228,2359, + 3233,160,856,319,737,2559,1268,313,540,205, + 215,4582,221,204,212,213,214,216,527,312, + 5368,303,205,215,4582,2359,204,212,213,214, + 216,179,1104,35,1085,386,5368,198,5368,206, + 208,210,294,295,1863,1355,518,207,209,307, + 535,670,206,208,210,294,295,1863,1737,517, + 207,209,2815,197,1355,3765,49,3503,2085,2359, + 2235,5368,2815,5368,2815,1025,2491,3149,2172,737, + 228,1355,2815,3241,56,2359,5368,2932,3552,2359, + 228,3081,2624,5368,5368,2359,3204,416,417,1992, + 228,5368,328,333,205,215,4582,302,204,212, + 213,214,216,3259,205,215,4582,5368,204,212, + 213,214,216,201,205,215,4582,199,204,212, + 213,214,216,298,206,208,210,294,295,1863, + 3765,218,207,209,206,208,210,294,295,1863, + 428,305,207,209,206,208,210,294,295,1863, + 503,497,207,209,1468,35,651,32,734,3016, + 27,30,31,584,568,337,28,3872,333,1692, + 35,651,32,5368,3236,27,30,31,584,568, + 337,28,1355,1355,1890,3182,35,1085,386,2513, + 3416,501,502,5368,1692,35,651,32,238,3236, + 27,30,31,584,568,337,28,2359,1355,56, + 5368,856,319,1142,2637,2871,313,540,722,273, + 1181,1355,2359,2359,2815,4819,856,319,788,331, + 2309,314,540,722,3333,5368,5368,5368,5368,156, + 4483,5368,228,722,331,3284,232,5368,4468,5368, + 5368,856,319,3439,331,5368,316,540,5368,350, + 222,193,5368,5368,5368,5368,1949,405,2914,5368, + 5368,236,230,231,5368,5368,344,2791,1140,347, + 5368,5368,274,1468,35,651,32,734,3016,27, + 30,31,584,568,337,28,406,407,408,294, + 295,1863,5368,5368,243,246,249,252,1037,1104, + 35,1085,386,1286,2158,5368,5368,2815,4819,5368, + 5368,1856,1779,35,651,32,2418,3016,27,30, + 31,584,568,337,28,228,5368,5368,5368,5368, + 856,319,5368,49,5368,313,540,5368,5368,5368, + 5368,5368,1025,47,5368,737,5368,2913,5368,1949, + 405,2914,587,35,1085,386,5368,5368,2741,1104, + 35,1085,386,5368,587,35,1085,386,5368,1914, + 319,5368,56,409,411,5368,2815,5368,5368,406, + 407,408,294,295,1863,5368,49,587,35,1085, + 386,5368,5368,49,341,1025,47,2775,49,5368, + 4573,5368,1025,47,1856,5368,3765,1025,47,5368, + 5368,1135,5368,587,35,1085,386,2970,2487,5368, + 5368,49,5368,2483,5368,5368,5368,1641,2618,5368, + 1025,47,2815,5368,1979,35,1085,386,5368,587, + 35,1085,386,3877,333,5368,3010,49,5368,5368, + 2624,587,35,1085,386,5368,1025,47,2168,35, + 1085,386,5368,5368,5368,737,409,412,49,3004, + 315,5368,3173,49,5368,56,1616,1025,47,536, + 1142,5368,1025,47,5368,49,56,5368,5368,5368, + 536,5368,49,3768,1025,47,5368,341,3465,56, + 5368,1025,47,536,5368,156,160,5368,341,5368, + 3471,5368,5368,5368,2322,5368,156,3783,503,5368, + 2970,341,5368,1616,5368,2479,3765,1142,5368,156, + 1391,2970,502,35,1085,386,1889,5368,2322,56, + 2815,2474,5368,536,2970,502,35,1085,386,502, + 35,1085,386,160,2680,5368,5368,5368,341,500, + 502,341,5368,4219,333,5368,49,5368,528,156, + 5368,5368,3586,56,5368,1025,662,536,188,49, + 5368,2970,5368,49,4543,5368,56,5368,1025,2043, + 536,531,1025,2765,5368,341,5368,5368,56,5368, + 56,2731,2815,156,2815,56,56,56,341,2815, + 2815,2815,188,5368,5368,5368,156,5368,4543,3696, + 341,5368,341,5368,5368,188,5368,341,341,341, + 5368,4543,5368,5368,5368,5368,5368,5368,5368,5368, + 5368,4295,5368,2970,5368,2970,5368,5368,5368,5368, + 2970,2970,2970,1648,5368,2973,5368,5368,5368,5368, + 507,505,532,5368,5368,5368,5368,5368,5368,5368, + 5368,5368,5368,5368,5368,4314,5368,5368,5368,5368, + 5368,5368,5368,5368,5368,5368,5368,5368,4331,5368, + 5368,5368,5368,5368,5368,5368,5368,5368,5368,5368, + 5368,5368,5368,5368,5368,5368,5368,5368,5368,5368, + 5368,5368,5368,5368,5368,5368,5368,5368,5368,5368, + 5368,5368,5368,5368,5368,5368,5368,5368,5368,5368, + 5368,5368,5368,5368,4236,5368,0,2115,1,0, + 39,5383,1,0,39,5382,1,0,38,625, + 0,38,5383,0,38,5382,0,452,774,0, + 438,867,0,1172,29,0,5383,48,0,5382, + 48,0,5380,381,0,5379,381,0,39,5383, + 0,39,5382,0,1,442,0,456,953,0, + 455,1475,0,35,33,0,1172,385,0,47, + 37,0,2570,126,0,1,1046,0,1,5640, + 0,1,5639,0,1,5638,0,1,5637,0, + 1,5636,0,1,5635,0,1,5634,0,1, + 5633,0,1,5632,0,1,5631,0,1,5630, + 0,283,392,0,283,286,0,5602,241,0, + 5601,241,0,5704,241,0,5703,241,0,5629, + 241,0,5628,241,0,5627,241,0,5626,241, + 0,5625,241,0,5624,241,0,5623,241,0, + 5622,241,0,5640,241,0,5639,241,0,5638, + 241,0,5637,241,0,5636,241,0,5635,241, + 0,5634,241,0,5633,241,0,5632,241,0, + 5631,241,0,5630,241,0,39,5383,241,0, + 39,5382,241,0,5406,241,0,43,5404,0, + 43,37,0,2156,91,0,32,34,0,39, + 625,0,329,443,0,5374,1,0,5373,1, + 0,237,2725,0,32,386,0,29,385,0, + 2570,128,0,2570,127,0,499,1862,0,5406, + 1,229,0,39,1,229,0,229,414,0, + 5383,37,0,5382,37,0,5404,45,0,37, + 45,0,5406,1,0,39,1,0,1,92, + 0,5378,403,0,5377,403,0,4414,1,0, + 3580,1,0,625,1,0,229,413,0,1948, + 381,0,5383,2,37,0,5382,2,37,0, + 5383,36,0,5382,36,0,1,329,0,8, + 12,0,329,95,0,35,73,0,499,4226, + 0,1,229,0,229,220,0,278,3782,0, + 229,219,0,1,3302,0,1,3392,0,5380, + 1,0,5376,1,0,1,229,2554,0,5377, + 229,0,2560,229,0,2785,229,0,10,12, + 0,8,10,12,0,185,3384,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1449,345 +1446,345 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface TermAction { public final static char termAction[] = {0, - 5383,5360,5336,5336,5336,5336,5336,5336,5370,5336, + 5368,5345,5321,5321,5321,5321,5321,5321,5355,5321, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5364,1,1,1,1, + 1,1,1,1,1,5349,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,139,1, - 1,1,1,1,1,1,1,1,1,1519, - 5558,1,1182,115,1993,1,1,5394,5383,3743, - 5383,5390,731,4798,1124,2435,4216,2213,3782,2206, - 2929,2384,1302,2366,3453,2336,10,5373,5373,5373, - 5373,5373,5373,5373,5373,5373,5373,5373,5373,5373, - 5373,5373,5373,5373,5373,5373,5373,5373,5373,5373, - 5373,5373,5373,5373,5373,5373,5373,5373,5373,5373, - 5373,5373,5373,5373,5373,5373,5373,5373,5373,5373, - 5373,5373,5373,5373,329,5373,5373,5373,5373,5373, - 5373,393,5373,5373,5373,5373,5373,5373,5373,2251, - 5373,5373,5373,5373,3586,3712,3680,5373,382,5383, - 5373,5373,5373,5373,5373,5373,5373,5373,5373,5373, - 5373,5373,8,5376,5376,5376,5376,5376,5376,5376, - 5376,5376,5376,5376,5376,5376,5376,5376,5376,5376, - 5376,5376,5376,5376,5376,5376,5376,5376,5376,5376, - 5376,5376,5376,5376,5376,5376,5376,5376,5376,5376, - 5376,5376,5376,5376,5376,5376,5376,5376,5376,5376, - 5383,5376,5376,5376,5376,5376,5376,5836,5376,5376, - 5376,5376,5376,5376,5376,301,5376,5376,5376,5376, - 286,5129,5129,5376,283,5683,5376,5376,5376,5376, - 5376,5376,5376,5376,5376,5376,5376,5376,5383,5360, - 5336,5336,5336,5336,5336,5336,5367,5336,1,1, + 1,1,1,1,1,1,1,1,1,936, + 5543,1,1476,115,2028,1,1,5379,5368,3735, + 5368,5375,736,4756,1124,2715,4275,2213,4249,2529, + 2929,2713,660,2688,3371,2619,10,5358,5358,5358, + 5358,5358,5358,5358,5358,5358,5358,5358,5358,5358, + 5358,5358,5358,5358,5358,5358,5358,5358,5358,5358, + 5358,5358,5358,5358,5358,5358,5358,5358,5358,5358, + 5358,5358,5358,5358,5358,5358,5358,5358,5358,5358, + 5358,5358,5358,5358,329,5358,5358,5358,5358,5358, + 5358,393,5358,5358,5358,5358,5358,5358,5358,2251, + 5358,5358,5358,5358,3578,3704,3672,5358,382,5368, + 5358,5358,5358,5358,5358,5358,5358,5358,5358,5358, + 5358,5358,8,5361,5361,5361,5361,5361,5361,5361, + 5361,5361,5361,5361,5361,5361,5361,5361,5361,5361, + 5361,5361,5361,5361,5361,5361,5361,5361,5361,5361, + 5361,5361,5361,5361,5361,5361,5361,5361,5361,5361, + 5361,5361,5361,5361,5361,5361,5361,5361,5361,5361, + 5368,5361,5361,5361,5361,5361,5361,5821,5361,5361, + 5361,5361,5361,5361,5361,301,5361,5361,5361,5361, + 286,5114,5114,5361,283,5668,5361,5361,5361,5361, + 5361,5361,5361,5361,5361,5361,5361,5361,5368,5345, + 5321,5321,5321,5321,5321,5321,5352,5321,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5364,1,1,1,1,1,1, + 1,1,1,5349,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5383,1,1,1, - 1,1,1,437,1,1,1,1519,5558,1, - 1182,5383,1993,1,1,5394,5383,5066,5063,5391, - 5421,5383,1124,2435,4216,2213,3782,2206,2929,2384, - 1302,2366,3453,2336,5383,5360,5336,5336,5336,5336, - 5336,5336,5367,5336,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5364, + 1,1,1,1,1,1,5368,1,1,1, + 1,1,1,437,1,1,1,936,5543,1, + 1476,5368,2028,1,1,5379,5368,5051,5048,5376, + 5406,5368,1124,2715,4275,2213,4249,2529,2929,2713, + 660,2688,3371,2619,5368,5345,5321,5321,5321,5321, + 5321,5321,5352,5321,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5349, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5390,1,1,1,1,1,1,135, - 1,1,1,1519,5558,1,1182,117,1993,1, - 1,5394,5383,3743,5383,5816,5817,5818,1124,2435, - 4216,2213,3782,2206,2929,2384,1302,2366,3453,2336, - 5383,5360,5336,5336,5336,5336,5336,5336,5367,5336, + 1,1,5375,1,1,1,1,1,1,135, + 1,1,1,936,5543,1,1476,117,2028,1, + 1,5379,5368,3735,5368,5801,5802,5803,1124,2715, + 4275,2213,4249,2529,2929,2713,660,2688,3371,2619, + 5368,5345,5321,5321,5321,5321,5321,5321,5352,5321, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5364,1,1,1,1, + 1,1,1,1,1,5349,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5383,1, - 1,1,1,1,1,5383,1,1,1,1519, - 5558,1,1182,5383,1993,1,1,5394,2300,3712, - 3680,5383,5397,5398,1124,2435,4216,2213,3782,2206, - 2929,2384,1302,2366,3453,2336,5383,5360,5336,5336, - 5336,5336,5336,5336,5367,5336,1,1,1,1, + 1,1,1,1,1,1,1,1,5368,1, + 1,1,1,1,1,5368,1,1,1,936, + 5543,1,1476,5368,2028,1,1,5379,2300,3704, + 3672,5368,5382,5383,1124,2715,4275,2213,4249,2529, + 2929,2713,660,2688,3371,2619,5368,5345,5321,5321, + 5321,5321,5321,5321,5352,5321,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5364,1,1,1,1,1,1,1,1, + 1,5349,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5383,1,1,1,1,1, - 1,5383,1,1,1,1519,5558,1,1182,116, - 1993,1,1,5394,111,3743,5383,5054,5051,5383, - 1124,2435,4216,2213,3782,2206,2929,2384,1302,2366, - 3453,2336,5383,5360,5336,5336,5336,5336,5336,5336, - 5367,5336,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5364,1,1, + 1,1,1,1,5368,1,1,1,1,1, + 1,5368,1,1,1,936,5543,1,1476,116, + 2028,1,1,5379,111,3735,5368,5039,5036,5368, + 1124,2715,4275,2213,4249,2529,2929,2713,660,2688, + 3371,2619,5368,5345,5321,5321,5321,5321,5321,5321, + 5352,5321,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5349,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5383,1,1,1,1,1,1,5822,1,1, - 1,1519,5558,1,1182,5383,1993,1,1,5394, - 39,3712,3680,4102,5421,4124,1124,2435,4216,2213, - 3782,2206,2929,2384,1302,2366,3453,2336,5383,5360, - 5336,5336,5336,5336,5336,5336,5367,5336,1,1, + 5368,1,1,1,1,1,1,5807,1,1, + 1,936,5543,1,1476,5368,2028,1,1,5379, + 39,3704,3672,4094,5406,4116,1124,2715,4275,2213, + 4249,2529,2929,2713,660,2688,3371,2619,5368,5345, + 5321,5321,5321,5321,5321,5321,5352,5321,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5364,1,1,1,1,1,1, + 1,1,1,5349,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,334,1,1,1, - 1,1,1,5383,1,1,1,1519,5558,1, - 1182,5383,1993,1,1,5394,5383,5397,5398,5718, - 5719,3504,1124,2435,4216,2213,3782,2206,2929,2384, - 1302,2366,3453,2336,5383,5360,5336,5336,5336,5336, - 5336,5336,5367,5336,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5364, + 1,1,1,5368,1,1,1,936,5543,1, + 1476,5368,2028,1,1,5379,5368,5382,5383,5703, + 5704,2989,1124,2715,4275,2213,4249,2529,2929,2713, + 660,2688,3371,2619,5368,5345,5321,5321,5321,5321, + 5321,5321,5352,5321,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5349, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5383,1,1,1,1,1,1,5383, - 1,1,1,1519,5558,1,1182,8,1993,1, - 1,5394,5383,5066,5063,5324,5421,5383,1124,2435, - 4216,2213,3782,2206,2929,2384,1302,2366,3453,2336, - 5383,5360,5336,5336,5336,5336,5336,5336,5367,5336, + 1,1,5368,1,1,1,1,1,1,5368, + 1,1,1,936,5543,1,1476,8,2028,1, + 1,5379,5368,5051,5048,5309,5406,5368,1124,2715, + 4275,2213,4249,2529,2929,2713,660,2688,3371,2619, + 5368,5345,5321,5321,5321,5321,5321,5321,5352,5321, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5364,1,1,1,1, + 1,1,1,1,1,5349,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5324,1, - 1,1,1,1,1,5893,1,1,1,1519, - 5558,1,1182,5383,1993,1,1,5394,121,1384, - 5383,125,5710,2804,1124,2435,4216,2213,3782,2206, - 2929,2384,1302,2366,3453,2336,5383,5360,5336,5336, - 5336,5336,5336,5336,5367,5336,1,1,1,1, + 1,1,1,1,1,1,1,1,5309,1, + 1,1,1,1,1,5878,1,1,1,936, + 5543,1,1476,5368,2028,1,1,5379,121,1296, + 5368,125,1253,2725,1124,2715,4275,2213,4249,2529, + 2929,2713,660,2688,3371,2619,5368,5345,5321,5321, + 5321,5321,5321,5321,5352,5321,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5364,1,1,1,1,1,1,1,1, + 1,5349,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5383,1,1,1,1,1, - 1,5383,1,1,1,1519,5558,1,1182,5383, - 1993,1,1,5394,5383,629,2872,5387,629,2872, - 1124,2435,4216,2213,3782,2206,2929,2384,1302,2366, - 3453,2336,5383,2283,1,1,1,1,1,1, - 2291,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5392,1,1, + 1,1,1,1,5368,1,1,1,1,1, + 1,5368,1,1,1,936,5543,1,1476,5368, + 2028,1,1,5379,5368,629,2872,5372,629,2872, + 1124,2715,4275,2213,4249,2529,2929,2713,660,2688, + 3371,2619,5368,2554,1,1,1,1,1,1, + 2560,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5377,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5383,1,1,1,1,1,1,5383,1,1, - 1,1519,5558,1,1182,5383,1993,1,1,5394, - 395,5397,5398,48,5054,5051,1124,2435,4216,2213, - 3782,2206,2929,2384,1302,2366,3453,2336,39,5066, - 5063,4786,2115,3926,3992,2749,5386,4014,871,5647, - 5645,5654,5653,5649,5650,5648,5651,5652,5655,5646, - 5643,5718,5719,114,5637,5644,5640,5616,5642,5641, - 5638,5639,5617,3970,3948,4058,4036,5402,5779,3904, - 1085,1261,5404,1139,3643,1217,452,5405,5403,1051, - 5399,5400,5401,5383,2322,5780,5781,800,318,1393, - 5383,5258,5258,229,5254,229,229,229,5262,229, + 5368,1,1,1,1,1,1,5368,1,1, + 1,936,5543,1,1476,5368,2028,1,1,5379, + 395,5382,5383,48,5039,5036,1124,2715,4275,2213, + 4249,2529,2929,2713,660,2688,3371,2619,39,5051, + 5048,4745,2115,3918,3984,3580,5371,4006,791,5632, + 5630,5639,5638,5634,5635,5633,5636,5637,5640,5631, + 5628,5703,5704,114,5622,5629,5625,5601,5627,5626, + 5623,5624,5602,3962,3940,4050,4028,5387,5764,3896, + 1181,1259,5389,1182,3635,1217,452,5390,5388,1114, + 5384,5385,5386,5368,2283,5765,5766,2763,318,1393, + 5368,5243,5243,229,5239,229,229,229,5247,229, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,229,1,1,1,1, - 1,1,1,1,1,5383,5397,5398,5383,5383, - 1,5042,1,5029,5025,5292,5022,5298,5251,5295, - 5393,224,4102,5383,4124,131,1,1,1,2637, - 5793,1350,1174,129,593,225,1,5392,290,5397, - 5398,414,229,5643,5718,5719,5383,5637,5644,5640, - 5616,5642,5641,5638,5639,5617,5881,5643,5718,5719, - 5383,5637,5644,5640,5616,5642,5641,5638,5639,5617, - 4080,681,5816,5817,5818,5383,5258,5258,229,5254, - 229,229,229,5301,229,1,1,1,1,1, + 1,1,1,1,1,5368,5382,5383,5368,5368, + 1,5027,1,5014,5010,5277,5007,5283,5236,5280, + 5378,224,4094,5368,4116,131,1,1,1,3026, + 5778,1350,1174,129,593,225,1,5377,290,5382, + 5383,414,229,5628,5703,5704,5368,5622,5629,5625, + 5601,5627,5626,5623,5624,5602,5866,5628,5703,5704, + 5368,5622,5629,5625,5601,5627,5626,5623,5624,5602, + 4072,964,5801,5802,5803,5368,5243,5243,229,5239, + 229,229,229,5286,229,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 229,1,1,1,1,1,1,1,1,1, - 3478,310,5383,33,2069,1,5078,133,29,5078, - 5383,5078,5078,5251,392,5126,5126,5383,283,2390, - 2362,1,1,1,2637,5793,39,1174,5078,118, - 5421,137,329,5021,5383,329,413,229,5078,5078, - 5078,5078,5389,343,5066,5063,2664,2115,625,329, - 2749,5881,329,1,5383,226,738,124,5078,139, - 1854,361,283,1077,3521,3340,5078,5816,5817,5818, - 1092,5078,5078,5078,5078,5078,5078,5643,5718,5719, - 422,5637,5644,5640,5616,5642,5641,5638,5639,5617, - 5078,5078,5078,5078,5078,5078,5078,5078,5078,5078, - 5078,5078,5078,5078,5078,2332,1350,5388,5078,5078, - 5078,5078,5078,5078,5078,5078,5078,5078,5078,5078, - 5078,5383,5078,5078,5221,317,361,5221,1867,5221, - 5221,1185,365,5029,5025,2664,5022,625,1,2749, - 5383,1,5383,361,629,2872,5221,1,5029,5025, - 4422,5022,625,5383,2749,157,5221,5221,5221,5221, - 2251,5391,36,5318,5315,3586,1824,1781,1738,1695, - 1652,1609,1566,1523,1480,1437,5221,138,1,5029, - 5025,4422,5022,625,5221,2749,309,134,1350,5221, - 5221,5221,5221,5221,5221,1350,442,1,1,5383, - 1,1221,5069,309,91,5069,123,5218,5221,5221, - 5221,5221,5221,5221,5221,5221,5221,5221,5221,5221, - 5221,5221,5221,1003,5390,1910,5221,5221,5221,5221, - 5221,5221,5221,5221,5221,5221,5221,5221,5221,5383, - 5221,5221,5383,5336,5336,229,5336,229,229,229, - 5339,229,1,1,1,1,1,1,1,1, + 3793,310,5368,33,2069,1,5063,133,29,5063, + 5368,5063,5063,5236,392,5111,5111,5368,283,2390, + 2362,1,1,1,3026,5778,39,1174,5063,118, + 5406,137,329,5006,5368,329,413,229,5063,5063, + 5063,5063,5374,343,5051,5048,2664,2115,625,329, + 3580,5866,329,1,5368,226,1427,124,5063,139, + 1469,361,283,1172,3513,3346,5063,5801,5802,5803, + 1092,5063,5063,5063,5063,5063,5063,5628,5703,5704, + 422,5622,5629,5625,5601,5627,5626,5623,5624,5602, + 5063,5063,5063,5063,5063,5063,5063,5063,5063,5063, + 5063,5063,5063,5063,5063,2332,1350,5373,5063,5063, + 5063,5063,5063,5063,5063,5063,5063,5063,5063,5063, + 5063,5368,5063,5063,5206,317,361,5206,1867,5206, + 5206,1185,365,5014,5010,2664,5007,625,1,3580, + 5368,1,5368,361,629,2872,5206,1,5014,5010, + 4414,5007,625,5368,3580,157,5206,5206,5206,5206, + 2251,5376,36,5303,5300,3578,1824,1781,1738,1695, + 1652,1609,1566,1523,1480,1437,5206,138,1,5014, + 5010,4414,5007,625,5206,3580,309,134,1350,5206, + 5206,5206,5206,5206,5206,1350,442,1,1,5368, + 1,1221,5054,309,91,5054,123,5203,5206,5206, + 5206,5206,5206,5206,5206,5206,5206,5206,5206,5206, + 5206,5206,5206,1003,5375,1910,5206,5206,5206,5206, + 5206,5206,5206,5206,5206,5206,5206,5206,5206,5368, + 5206,5206,5368,5321,5321,229,5321,229,229,229, + 5324,229,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,229,1,1, - 8691,1,1,1,1,1,1,1185,37,5383, - 5066,5063,1,2115,5224,2332,2749,39,227,120, - 5333,5421,113,629,2872,1,5383,5383,1,1, - 1,3187,5594,161,1182,5395,1993,1811,5383,3411, - 5643,5718,5719,220,5637,5644,5640,5616,5642,5641, - 5638,5639,5617,5383,3521,3340,5419,939,5881,5383, - 5336,5336,229,5336,229,229,229,229,229,1, + 8676,1,1,1,1,1,1,1185,37,5368, + 5051,5048,1,2115,5209,2332,3580,39,227,120, + 5318,5406,113,629,2872,1,5368,5368,1,1, + 1,3661,5579,161,1476,5380,2028,1820,5368,3619, + 5628,5703,5704,220,5622,5629,5625,5601,5627,5626, + 5623,5624,5602,5368,3513,3346,5404,939,5866,5368, + 5321,5321,229,5321,229,229,229,229,229,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,229,1,1,8691,1,1, - 1,1,1,1,5394,37,5084,5084,161,1, - 5084,329,5066,5063,4422,2115,625,5333,2749,112, - 1953,4102,5383,4124,1889,1,1,1,3187,5594, - 5389,1182,301,1993,5383,5029,5025,4422,5022,625, - 1,2749,5683,1,456,5383,5029,5025,4422,5022, - 625,5321,2749,3667,5321,5881,5383,5336,5336,229, - 5336,229,229,229,5345,229,1,1,1,1, + 1,1,1,1,229,1,1,8676,1,1, + 1,1,1,1,5379,37,5069,5069,161,1, + 5069,329,5051,5048,4414,2115,625,5318,3580,112, + 1953,4094,5368,4116,1906,1,1,1,3661,5579, + 5374,1476,301,2028,5368,5014,5010,4414,5007,625, + 1,3580,5668,1,456,5368,5014,5010,4414,5007, + 625,5306,3580,3445,5306,5866,5368,5321,5321,229, + 5321,229,229,229,5330,229,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,229,1,1,8691,1,1,1,1,1, - 1,3235,4869,47,5917,5388,1,132,1,5029, - 5025,5292,5022,5298,5333,5295,593,5072,4102,122, - 4124,5383,1,1,1,3187,5594,1047,1182,5393, - 1993,1,5029,5025,2664,5022,625,219,2749,5230, - 126,1,5280,5280,394,5277,5392,329,385,361, - 329,2501,5881,5383,5336,5336,229,5336,229,229, - 229,5339,229,1,1,1,1,1,1,1, + 1,229,1,1,8676,1,1,1,1,1, + 1,3458,4877,47,5902,5373,1,132,1,5014, + 5010,5277,5007,5283,5318,5280,593,5057,4094,122, + 4116,5368,1,1,1,3661,5579,1047,1476,5378, + 2028,1,5014,5010,2664,5007,625,219,3580,5215, + 126,1,5265,5265,394,5262,5377,329,385,361, + 329,2458,5866,5368,5321,5321,229,5321,229,229, + 229,5324,229,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,229,1, - 1,8691,1,1,1,1,1,1,37,5084, - 5084,4190,5383,1,1350,2597,443,39,39,1077, - 5421,5333,5227,5383,5233,5227,629,2872,5087,1, - 1,1,3187,5594,361,1182,356,1993,1,343, - 39,39,3312,5421,220,329,5389,5383,329,5383, - 1,361,455,3312,2525,2431,5419,5383,5230,5881, - 5383,5336,5336,229,5336,229,229,229,5339,229, + 1,8676,1,1,1,1,1,1,37,5069, + 5069,4182,5368,1,1350,2597,443,39,39,1172, + 5406,5318,5212,5368,5218,5212,629,2872,5072,1, + 1,1,3661,5579,361,1476,356,2028,1,343, + 39,39,2679,5406,220,329,5374,5368,329,5368, + 1,361,455,2679,2525,2431,5404,5368,5215,5866, + 5368,5321,5321,229,5321,229,229,229,5324,229, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,229,1,1,8691,1, + 1,1,1,1,1,229,1,1,8676,1, 1,1,1,1,1,92,1,1,136,1, - 1,5283,1350,130,5283,5383,5066,5063,5333,2115, - 625,5388,2749,1350,5383,5075,1,1,1,3187, - 5594,5782,1182,5233,1993,4336,5738,2988,5383,8538, - 8437,220,309,5029,5025,4422,5022,625,5321,2749, - 5383,5321,43,5215,5215,5383,5881,5383,5336,5336, - 229,5336,229,229,229,229,229,1,1,1, + 1,5268,1350,130,5268,5368,5051,5048,5318,2115, + 625,5373,3580,1350,5368,5060,1,1,1,3661, + 5579,5767,1476,5218,2028,4328,5723,4320,5368,8523, + 8422,220,309,5014,5010,4414,5007,625,5306,3580, + 5368,5306,43,5200,5200,5368,5866,5368,5321,5321, + 229,5321,229,229,229,229,229,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,229,1,1,8691,1,1,1,1, - 1,1,1813,5383,5383,5066,5063,1,2115,5224, - 5212,2749,95,39,39,5333,5421,2300,5327,2390, - 2362,5327,1,1,1,1,3187,5594,1819,1182, - 5354,1993,1,5029,5025,4422,5022,625,5383,2749, - 1,5029,5025,2664,5022,625,438,2749,5383,5383, - 8678,8678,2287,5881,5383,5336,5336,229,5336,229, + 1,1,229,1,1,8676,1,1,1,1, + 1,1,1821,5368,5368,5051,5048,1,2115,5209, + 5197,3580,95,39,39,5318,5406,2300,5312,2390, + 2362,5312,1,1,1,1,3661,5579,1828,1476, + 5339,2028,1,5014,5010,4414,5007,625,5368,3580, + 1,5014,5010,2664,5007,625,438,3580,5368,5368, + 8663,8663,2287,5866,5368,5321,5321,229,5321,229, 229,229,229,229,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,229, - 1,1,8691,1,1,1,1,1,1,5394, - 5383,5383,5066,5063,1,2115,625,5419,2749,403, - 5383,5045,5333,1350,1047,39,2569,5286,2988,5421, - 1,1,1,3187,5594,5383,1182,1,1993,426, - 3312,38,5039,5036,5289,339,5033,2767,2749,5383, - 5397,5398,513,29,625,5383,2749,5383,8538,8437, - 5881,5383,5336,5336,229,5336,229,229,229,229, + 1,1,8676,1,1,1,1,1,1,5379, + 5368,5368,5051,5048,1,2115,625,5404,3580,403, + 5368,5030,5318,1350,1047,39,2856,5271,4320,5406, + 1,1,1,3661,5579,5368,1476,1,2028,426, + 2679,38,5024,5021,5274,339,5018,2601,3580,5368, + 5382,5383,513,29,625,5368,3580,5368,8523,8422, + 5866,5368,5321,5321,229,5321,229,229,229,229, 229,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,229,1,1,8691, - 1,1,1,1,1,1,5383,5397,5398,345, - 1350,1,1940,1820,5395,339,346,339,5048,5333, - 339,3282,393,5383,5268,5265,386,1,1,1, - 3187,5594,880,1182,1,1993,530,5816,5817,5818, - 1,37,5084,5084,5348,119,5383,329,5357,1, - 5029,5025,4786,5022,3926,3992,2749,5881,4014,5090, - 5117,5123,5096,5099,5111,5108,5114,5105,5102,5093, - 5120,5419,1350,5394,5351,5383,5054,5051,5383,1350, - 3521,3340,2035,5383,3970,3948,4058,4036,5402,5419, - 3904,1085,1261,5404,1139,3643,1217,2196,5405,5403, - 1051,5399,5400,5401,45,5274,5274,5383,1,237, - 1393,5390,5236,5383,39,39,526,514,39,5066, - 5063,4786,2115,3926,3992,2749,5304,4014,1341,5647, - 5645,5654,5653,5649,5650,5648,5651,5652,5655,5646, - 4080,681,1,1,5383,5383,4233,3594,4219,360, - 163,4221,5271,3970,3948,4058,4036,5402,5383,3904, - 1085,1261,5404,1139,3643,1217,5393,5405,5403,1051, - 5399,5400,5401,37,5084,5084,5383,5311,5307,1393, - 5383,526,100,5392,5383,5060,291,4220,2619,5390, - 39,5066,5063,4786,2115,3926,3992,2749,5057,4014, - 1341,5647,5645,5654,5653,5649,5650,5648,5651,5652, - 5655,5646,289,5383,5383,163,4292,3284,368,3024, - 5383,3295,1,3388,5419,3970,3948,4058,4036,5402, - 5393,3904,1085,1261,5404,1139,3643,1217,5383,5405, - 5403,1051,5399,5400,5401,4341,5383,5392,366,5383, - 2354,1393,3592,103,5383,2039,3672,5060,141,5066, - 5063,4786,2115,3926,3992,2749,5383,4014,1341,5647, - 5645,5654,5653,5649,5650,5648,5651,5652,5655,5646, - 5383,1,1135,5383,2984,99,1899,1264,3504,191, - 1,5383,385,3970,3948,4058,4036,5402,5383,3904, - 1085,1261,5404,1139,3643,1217,191,5405,5403,1051, - 5399,5400,5401,446,418,5383,5383,1307,48,1393, - 424,1077,5398,39,39,39,5066,5063,4786,2115, - 3926,3992,2749,5057,4014,1341,5647,5645,5654,5653, - 5649,5650,5648,5651,5652,5655,5646,5081,2077,278, - 5383,5383,5342,3186,2018,3898,35,506,1,5383, - 3970,3948,4058,4036,5402,5383,3904,1085,1261,5404, - 1139,3643,1217,5398,5405,5403,1051,5399,5400,5401, - 5740,5383,373,2164,3878,2508,1393,2126,5383,5383, - 4222,447,5060,1,5029,5025,4786,5022,3926,3992, - 2749,5383,4014,5090,5117,5123,5096,5099,5111,5108, - 5114,5105,5102,5093,5120,1,5383,1,1391,48, - 5850,5844,5383,5397,5848,3602,4447,5348,3970,3948, - 4058,4036,5402,5383,3904,1085,1261,5404,1139,3643, - 1217,5383,5405,5403,1051,5399,5400,5401,4443,5383, - 5842,5843,5873,5874,1393,5383,5851,5351,39,39, - 2983,2683,393,5383,73,2035,5383,5383,2477,5383, - 5853,3426,4446,3037,5397,5383,5383,3434,740,4883, - 912,956,5383,5854,5852,5875,308,5383,3784,504, - 4893,5383,5383,5383,4460,4917,1889,5383,5383,519, - 2477,3391,5864,5863,5876,5383,185,5845,5846,5869, - 5870,5867,5868,5847,5849,5871,5872,1077,3455,5330, - 5877,3875,5857,5858,5859,5855,5856,5865,5866,5861, - 5860,5862,39,5066,5063,4786,2115,3926,3992,2749, - 5387,4014,1341,5647,5645,5654,5653,5649,5650,5648, - 5651,5652,5655,5646,3091,5383,4203,5383,4744,2, - 4550,5383,3602,5383,5383,5383,1996,3970,3948,4058, - 4036,5402,1,3904,1085,1261,5404,1139,3643,1217, - 5383,5405,5403,1051,5399,5400,5401,39,5066,5063, - 4786,2115,3926,3992,2749,4351,4014,1341,5647,5645, - 5654,5653,5649,5650,5648,5651,5652,5655,5646,508, - 5383,1992,5383,5383,37,5383,5383,2477,5383,5383, - 5383,5383,3970,3948,4058,4036,5402,5380,3904,1085, - 1261,5404,1139,3643,1217,5383,5405,5403,1051,5399, - 5400,5401,5383,5383,5383,5383,5383,5383,1393,5386, - 39,5066,5063,4786,2115,3926,3992,2749,5383,4014, - 1341,5647,5645,5654,5653,5649,5650,5648,5651,5652, - 5655,5646,5383,5383,5383,5383,5383,5383,805,5383, - 5383,5383,5383,5383,5383,3970,3948,4058,4036,5402, - 5383,3904,1085,1261,5404,1139,3643,1217,5383,5405, - 5403,1051,5399,5400,5401,39,5066,5063,4786,2115, - 3926,3992,2749,1690,4014,1341,5647,5645,5654,5653, - 5649,5650,5648,5651,5652,5655,5646,5383,5383,5383, - 5383,5383,5383,5383,5383,5383,5383,5383,5383,5383, - 3970,3948,4058,4036,5402,5383,3904,1085,1261,5404, - 1139,3643,1217,5383,5405,5403,1051,5399,5400,5401, - 5383,5383,5383,5383,5383,5383,1393,39,5066,5063, - 4829,2115,3926,3992,2749,5383,4014,1341,5647,5645, - 5654,5653,5649,5650,5648,5651,5652,5655,5646,5383, - 5383,5383,5383,5383,5383,5383,5383,5383,5383,5383, - 5383,5383,3970,3948,4058,4036,5402,5383,3904,1085, - 1261,5404,1139,3643,1217,5383,5405,5403,1051,5399, - 5400,5401,39,5066,5063,4786,2115,3926,3992,2749, - 5383,4014,1341,5647,5645,5654,5653,5649,5650,5648, - 5651,5652,5655,5646,5383,5383,5383,5383,5383,5383, - 5383,5383,5383,5383,5383,5383,5383,3970,3948,4058, - 4036,5402,5383,3904,1085,1261,5404,1139,3643,1217, - 5383,5405,5403,1051,5399,5400,5401,39,5066,5063, - 4786,2115,3926,3992,2749,5383,4014,1341,5647,5645, - 5654,5653,5649,5650,5648,5651,5652,5655,5646,5383, - 5383,5383,5383,5383,5383,5383,5383,5383,5383,5383, - 5383,5383,3970,3948,4058,4036,5402,5383,3904,1085, - 1261,5404,1139,3643,1217,5383,5405,5403,1051,5399, - 5400,5401,5383,5066,5063,5383,5421,5383,5383,5383, - 5383,5383,574,5647,5645,5654,5653,5649,5650,5648, - 5651,5652,5655,5646,5643,5718,5719,5383,5637,5644, - 5640,5616,5642,5641,5638,5639,5617,5383,5383,5383, - 5383,5383,5779,5383,5383,5383,5383,5383,5383,5383, - 5383,241,5205,5201,5383,5209,5383,5383,2322,5780, - 5781,574,5192,5198,5171,5174,5186,5183,5189,5180, - 5177,5168,5195,5147,5141,5138,5383,5165,5144,5156, - 5135,5150,5153,5162,5159,5132,128,5383,127,5383, - 5383,5779,29,385,385,5242,385,385,5242,385, - 5242,5242,5383,5383,5383,5383,5383,2322,5780,5781, - 5383,5383,5383,5383,385,385,385,5242,385,385, - 385,385,385,385,385,385,385,5383,5383,5383, - 5383,5383,5383,5383,5383,5383,5383,5383,5383,75, - 5383,2597,3069,2597,5383,5383,5383,5048,5383,5383, - 5383,5383,5383,5383,5245,5242,5248,5383,5383,5383, - 5383,5383,5383,5383,5383,5242,32,386,386,5239, - 386,386,5239,386,5239,5239,5445,5446,5383,5383, - 2525,2431,2525,2431,5383,5383,5383,5383,386,386, - 386,5239,386,386,386,386,386,386,386,386, - 386,5383,3472,5383,223,5383,5383,5383,5383,5383, - 5383,5383,5383,5383,5383,5647,5645,5654,5653,5649, - 5650,5648,5651,5652,5655,5646,5643,5718,5719,5239, - 5637,5644,5640,5616,5642,5641,5638,5639,5617,5239, - 5383,5383,5383,5383,580,5383,5383,5383,5383,5383, - 5383,5383,5383,5383,5383,5383,5383,5383,666 + 1,1,1,1,1,1,229,1,1,8676, + 1,1,1,1,1,1,5368,5382,5383,345, + 1350,1,1854,1846,5380,339,346,339,5033,5318, + 339,3296,393,5368,5253,5250,386,1,1,1, + 3661,5579,880,1476,1,2028,530,5801,5802,5803, + 1,37,5069,5069,5333,119,5368,329,5342,1, + 5014,5010,4745,5007,3918,3984,3580,5866,4006,5075, + 5102,5108,5081,5084,5096,5093,5099,5090,5087,5078, + 5105,5404,1350,5379,5336,5368,5039,5036,5368,1350, + 3513,3346,2148,5368,3962,3940,4050,4028,5387,5404, + 3896,1181,1259,5389,1182,3635,1217,2512,5390,5388, + 1114,5384,5385,5386,45,5259,5259,5368,1,237, + 1393,5375,5221,5368,39,39,526,514,39,5051, + 5048,4745,2115,3918,3984,3580,5289,4006,1046,5632, + 5630,5639,5638,5634,5635,5633,5636,5637,5640,5631, + 4072,964,1,1,5368,5368,4870,3581,3762,360, + 163,4213,5256,3962,3940,4050,4028,5387,5368,3896, + 1181,1259,5389,1182,3635,1217,5378,5390,5388,1114, + 5384,5385,5386,37,5069,5069,5368,5296,5292,1393, + 5368,526,100,5377,5368,5045,291,4208,2869,5375, + 39,5051,5048,4745,2115,3918,3984,3580,5042,4006, + 1046,5632,5630,5639,5638,5634,5635,5633,5636,5637, + 5640,5631,289,5368,5368,163,4211,3782,368,3612, + 5368,2940,1,4221,5404,3962,3940,4050,4028,5387, + 5378,3896,1181,1259,5389,1182,3635,1217,5368,5390, + 5388,1114,5384,5385,5386,4216,5368,5377,366,5368, + 681,1393,3796,103,5368,2039,4746,5045,141,5051, + 5048,4745,2115,3918,3984,3580,5368,4006,1046,5632, + 5630,5639,5638,5634,5635,5633,5636,5637,5640,5631, + 5368,1,998,5368,2336,99,1907,1264,2989,191, + 1,5368,385,3962,3940,4050,4028,5387,5368,3896, + 1181,1259,5389,1182,3635,1217,191,5390,5388,1114, + 5384,5385,5386,446,418,5368,5368,1307,48,1393, + 424,1172,5383,39,39,39,5051,5048,4745,2115, + 3918,3984,3580,5042,4006,1046,5632,5630,5639,5638, + 5634,5635,5633,5636,5637,5640,5631,5066,2077,278, + 5368,5368,5327,2639,2035,3694,35,506,1,5368, + 3962,3940,4050,4028,5387,5368,3896,1181,1259,5389, + 1182,3635,1217,5383,5390,5388,1114,5384,5385,5386, + 5725,5368,373,2164,4793,3496,1393,2126,5368,5368, + 4232,447,5045,1,5014,5010,4745,5007,3918,3984, + 3580,5368,4006,5075,5102,5108,5081,5084,5096,5093, + 5099,5090,5087,5078,5105,1,5368,1,924,48, + 5835,5829,5368,5382,5833,3790,4875,5333,3962,3940, + 4050,4028,5387,5368,3896,1181,1259,5389,1182,3635, + 1217,5368,5390,5388,1114,5384,5385,5386,4442,5368, + 5827,5828,5858,5859,1393,5368,5836,5336,39,39, + 2984,3698,393,5368,73,2148,5368,5368,2767,5368, + 5838,3794,4806,3039,5382,5368,5368,4642,782,4809, + 731,790,5368,5839,5837,5860,308,5368,4868,504, + 4843,5368,5368,5368,3003,4856,1906,5368,5368,519, + 2767,2640,5849,5848,5861,5368,185,5830,5831,5854, + 5855,5852,5853,5832,5834,5856,5857,1172,3787,5315, + 5862,3888,5842,5843,5844,5840,5841,5850,5851,5846, + 5845,5847,39,5051,5048,4745,2115,3918,3984,3580, + 5372,4006,1046,5632,5630,5639,5638,5634,5635,5633, + 5636,5637,5640,5631,3094,5368,4195,5368,4876,2, + 4469,5368,3790,5368,5368,5368,1996,3962,3940,4050, + 4028,5387,1,3896,1181,1259,5389,1182,3635,1217, + 5368,5390,5388,1114,5384,5385,5386,39,5051,5048, + 4745,2115,3918,3984,3580,4227,4006,1046,5632,5630, + 5639,5638,5634,5635,5633,5636,5637,5640,5631,508, + 5368,2018,5368,5368,37,5368,5368,2767,5368,5368, + 5368,5368,3962,3940,4050,4028,5387,5365,3896,1181, + 1259,5389,1182,3635,1217,5368,5390,5388,1114,5384, + 5385,5386,5368,5368,5368,5368,5368,5368,1393,5371, + 39,5051,5048,4745,2115,3918,3984,3580,5368,4006, + 1046,5632,5630,5639,5638,5634,5635,5633,5636,5637, + 5640,5631,5368,5368,5368,5368,5368,5368,805,5368, + 5368,5368,5368,5368,5368,3962,3940,4050,4028,5387, + 5368,3896,1181,1259,5389,1182,3635,1217,5368,5390, + 5388,1114,5384,5385,5386,39,5051,5048,4745,2115, + 3918,3984,3580,1647,4006,1046,5632,5630,5639,5638, + 5634,5635,5633,5636,5637,5640,5631,5368,5368,5368, + 5368,5368,5368,5368,5368,5368,5368,5368,5368,5368, + 3962,3940,4050,4028,5387,5368,3896,1181,1259,5389, + 1182,3635,1217,5368,5390,5388,1114,5384,5385,5386, + 5368,5368,5368,5368,5368,5368,1393,39,5051,5048, + 4769,2115,3918,3984,3580,5368,4006,1046,5632,5630, + 5639,5638,5634,5635,5633,5636,5637,5640,5631,5368, + 5368,5368,5368,5368,5368,5368,5368,5368,5368,5368, + 5368,5368,3962,3940,4050,4028,5387,5368,3896,1181, + 1259,5389,1182,3635,1217,5368,5390,5388,1114,5384, + 5385,5386,39,5051,5048,4745,2115,3918,3984,3580, + 5368,4006,1046,5632,5630,5639,5638,5634,5635,5633, + 5636,5637,5640,5631,5368,5368,5368,5368,5368,5368, + 5368,5368,5368,5368,5368,5368,5368,3962,3940,4050, + 4028,5387,5368,3896,1181,1259,5389,1182,3635,1217, + 5368,5390,5388,1114,5384,5385,5386,39,5051,5048, + 4745,2115,3918,3984,3580,5368,4006,1046,5632,5630, + 5639,5638,5634,5635,5633,5636,5637,5640,5631,5368, + 5368,5368,5368,5368,5368,5368,5368,5368,5368,5368, + 5368,5368,3962,3940,4050,4028,5387,5368,3896,1181, + 1259,5389,1182,3635,1217,5368,5390,5388,1114,5384, + 5385,5386,5368,5051,5048,5368,5406,5368,5368,5368, + 5368,5368,574,5632,5630,5639,5638,5634,5635,5633, + 5636,5637,5640,5631,5628,5703,5704,5368,5622,5629, + 5625,5601,5627,5626,5623,5624,5602,5368,5368,5368, + 5368,5368,5764,5368,5368,5368,5368,5368,5368,5368, + 5368,241,5190,5186,5368,5194,5368,5368,2283,5765, + 5766,574,5177,5183,5156,5159,5171,5168,5174,5165, + 5162,5153,5180,5132,5126,5123,5368,5150,5129,5141, + 5120,5135,5138,5147,5144,5117,128,5368,127,5368, + 5368,5764,29,385,385,5227,385,385,5227,385, + 5227,5227,5368,5368,5368,5368,5368,2283,5765,5766, + 5368,5368,5368,5368,385,385,385,5227,385,385, + 385,385,385,385,385,385,385,5368,5368,5368, + 5368,5368,5368,5368,5368,5368,5368,5368,5368,75, + 5368,2597,3152,2597,5368,5368,5368,5033,5368,5368, + 5368,5368,5368,5368,5230,5227,5233,5368,5368,5368, + 5368,5368,5368,5368,5368,5227,32,386,386,5224, + 386,386,5224,386,5224,5224,5430,5431,5368,5368, + 2525,2431,2525,2431,5368,5368,5368,5368,386,386, + 386,5224,386,386,386,386,386,386,386,386, + 386,5368,3097,5368,223,5368,5368,5368,5368,5368, + 5368,5368,5368,5368,5368,5632,5630,5639,5638,5634, + 5635,5633,5636,5637,5640,5631,5628,5703,5704,5224, + 5622,5629,5625,5601,5627,5626,5623,5624,5602,5224, + 5368,5368,5368,5368,580,5368,5368,5368,5368,5368, + 5368,5368,5368,5368,5368,5368,5368,5368,666 }; }; public final static char termAction[] = TermAction.termAction; @@ -1795,60 +1792,61 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface Asb { public final static char asb[] = {0, - 60,15,8,1074,211,258,843,843,610,217, - 843,217,1,1,178,221,211,217,412,317, - 70,70,840,650,360,317,843,843,535,843, - 70,217,1078,1013,722,320,317,178,418,906, - 68,535,535,535,535,1076,68,162,260,179, - 179,179,179,179,179,179,179,179,845,851, - 856,853,860,858,865,863,867,866,868,363, - 869,217,413,836,70,70,1074,1002,1013,906, - 1013,265,1013,545,1013,997,1076,217,360,360, - 70,17,215,360,884,421,418,221,162,650, - 650,650,650,217,728,317,317,308,162,909, - 649,722,162,845,721,721,728,178,179,179, - 179,179,179,179,179,179,179,179,179,179, - 179,179,179,179,179,179,179,178,178,178, - 178,178,178,178,178,178,178,178,178,179, - 17,413,836,833,832,833,840,464,267,508, - 268,1076,217,217,509,833,1078,217,178,221, - 317,317,833,833,833,833,509,317,179,1074, - 571,561,560,428,1020,1020,1076,260,360,649, - 178,317,214,216,214,317,360,853,853,851, - 851,851,858,858,858,858,856,856,863,860, - 860,866,865,867,782,868,836,835,162,464, - 217,905,129,513,509,906,519,217,509,217, - 17,417,68,68,68,68,217,217,308,317, - 573,575,217,722,179,650,849,273,317,217, - 216,722,178,836,418,217,464,782,268,535, - 511,122,772,464,905,514,905,905,509,519, - 519,217,217,415,220,178,178,178,178,68, - 68,317,565,553,564,575,509,215,317,849, - 1074,1078,217,215,722,682,906,833,535,214, - 904,774,68,905,905,905,905,217,519,418, - 524,417,415,415,317,317,317,317,728,728, - 825,178,562,562,569,1074,784,317,217,849, - 850,849,178,273,127,845,1078,215,682,682, - 25,480,215,905,905,211,889,179,782,10, - 529,575,905,905,817,418,179,217,317,317, - 825,178,178,573,553,825,1055,849,728,179, - 360,127,890,418,770,951,404,68,268,989, - 682,682,480,215,905,906,1076,774,179,179, - 575,537,677,818,217,827,825,850,317,360, - 24,404,770,541,1076,418,832,535,893,893, - 890,906,142,537,217,68,317,817,217,1076, - 1076,217,827,827,25,682,890,889,317,1076, - 217,480,25,480,831,831,899,143,1076,217, - 728,901,217,217,217,68,827,682,211,890, - 217,217,480,650,650,899,142,782,179,782, - 890,141,68,68,68,143,68,217,371,890, - 890,217,906,317,901,217,217,576,418,217, - 890,832,134,68,134,143,782,143,162,162, - 160,551,162,890,890,13,899,903,316,890, - 608,784,143,317,211,317,160,404,68,317, - 899,903,650,893,317,317,1068,143,13,143, - 890,404,178,143,140,831,906,906,1070,178, - 141,728,890,317,214,143,317,890,143 + 325,21,8,1074,536,127,849,849,736,542, + 849,542,1,1,503,90,536,542,286,191, + 30,30,846,776,234,191,849,849,449,849, + 30,542,1078,1013,692,194,191,503,18,948, + 333,449,449,449,449,1076,333,487,129,504, + 504,504,504,504,504,504,504,504,851,857, + 862,859,866,864,871,869,873,872,874,237, + 875,542,287,844,842,30,30,1074,1002,1013, + 948,1013,134,1013,545,1013,997,1076,542,234, + 234,30,23,540,234,890,335,18,90,487, + 776,776,776,776,542,608,191,191,182,487, + 901,775,692,487,851,691,691,608,503,504, + 504,504,504,504,504,504,504,504,504,504, + 504,504,504,504,504,504,504,504,503,503, + 503,503,503,503,503,503,503,503,503,503, + 504,23,287,842,720,719,720,846,342,136, + 386,137,1076,542,542,387,720,1078,542,503, + 90,191,191,720,720,720,720,387,191,504, + 1074,569,559,558,391,1020,1020,1076,129,234, + 775,503,191,539,541,539,191,234,859,859, + 857,857,857,864,864,864,864,862,862,869, + 866,866,872,871,873,710,874,842,842,487, + 342,542,947,142,432,387,948,427,542,387, + 542,23,17,333,333,333,333,542,542,182, + 191,571,573,542,692,504,776,855,147,191, + 542,541,692,503,842,841,18,542,342,710, + 137,449,389,82,700,342,947,433,947,947, + 387,427,427,542,542,15,89,503,503,503, + 503,333,333,191,563,551,562,573,387,540, + 191,855,1074,1078,542,540,842,692,652,948, + 720,449,539,946,702,333,947,947,947,947, + 542,427,18,438,17,15,15,191,191,191, + 191,608,608,712,503,560,560,567,1074,808, + 191,542,855,856,855,503,147,87,851,1078, + 540,652,652,290,358,540,947,947,536,895, + 504,710,10,443,573,947,947,722,18,504, + 542,191,191,712,503,503,571,551,712,1055, + 855,608,504,234,87,896,18,650,951,278, + 333,137,989,652,652,358,540,947,948,1076, + 702,504,504,573,451,803,723,542,714,712, + 856,191,234,289,278,650,455,1076,18,719, + 449,730,730,896,948,467,451,542,333,191, + 722,542,1076,1076,542,714,714,290,652,896, + 895,191,1076,542,358,290,358,718,718,899, + 468,1076,542,608,943,542,542,542,333,714, + 652,536,896,542,542,358,776,776,899,467, + 710,504,710,896,466,333,333,333,468,333, + 542,245,896,896,542,948,191,943,542,542, + 574,18,542,896,719,459,333,459,468,710, + 468,487,487,485,698,487,896,896,13,899, + 945,190,896,606,808,468,191,536,191,485, + 278,333,191,899,945,776,730,191,191,1068, + 468,13,468,896,278,503,468,465,718,948, + 948,1070,503,466,608,896,191,539,468,191, + 896,468 }; }; public final static char asb[] = Asb.asb; @@ -1857,100 +1855,100 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface Asr { public final static byte asr[] = {0, 74,68,72,90,73,67,63,120,3,8, - 70,25,69,0,120,0,7,6,5,1, - 2,48,0,67,40,23,13,56,27,14, - 29,30,15,16,31,32,17,18,33,57, - 34,10,58,19,22,20,24,21,12,11, - 26,8,25,62,59,64,86,28,48,9, - 6,5,7,60,1,2,4,3,0,26, + 70,25,69,0,25,120,70,8,71,0, + 120,0,7,6,5,1,2,48,0,26, 11,12,40,23,42,65,13,43,56,27, 28,44,14,29,30,15,16,31,66,32, 45,17,18,46,33,47,57,49,61,50, 34,51,58,19,22,20,24,21,52,53, 54,39,3,37,38,9,6,35,36,41, - 68,7,1,2,4,10,5,0,4,8, - 72,67,0,86,102,103,104,48,72,118, - 121,71,60,74,62,59,64,76,78,84, - 82,75,80,81,83,85,67,77,79,25, - 8,26,40,23,56,27,28,29,30,31, - 32,33,57,34,58,22,24,61,65,66, - 10,43,47,45,42,51,12,21,11,17, - 15,16,18,19,14,13,20,52,53,54, - 39,50,44,49,37,38,35,36,41,46, - 9,6,3,4,7,5,1,2,0,71, - 61,37,38,9,6,35,36,41,46,3, - 4,52,53,54,39,50,44,49,12,21, - 11,17,15,16,18,19,14,13,20,10, - 43,47,45,42,51,67,8,7,5,1, - 2,66,65,0,48,4,72,1,2,67, - 8,0,91,89,35,36,92,93,87,88, - 55,94,95,96,97,98,99,100,101,106, - 72,90,69,107,108,109,110,111,112,113, - 114,115,116,117,71,25,120,68,1,2, - 9,6,4,3,63,70,73,8,0,65, - 66,3,10,43,47,45,42,51,12,21, - 11,17,15,16,18,19,14,13,20,52, - 53,54,39,50,44,49,5,7,4,37, - 38,9,6,35,36,41,46,1,2,117, - 8,0,68,72,90,70,117,73,71,120, - 11,12,42,65,13,43,44,14,15,16, - 66,45,17,18,46,47,49,61,50,51, - 10,19,20,21,52,53,54,39,37,38, - 35,36,41,8,25,5,7,1,2,4, - 3,9,6,0,25,120,70,8,71,0, - 8,72,117,73,25,70,0,26,11,12, - 23,13,27,28,14,29,30,15,16,31, - 7,32,17,18,33,34,19,22,20,24, - 21,1,2,8,63,9,6,5,4,73, - 25,3,0,86,59,7,102,103,104,62, - 8,3,9,6,5,72,71,25,60,26, - 11,12,40,23,13,56,27,28,14,29, - 30,15,16,31,32,17,18,33,57,34, - 10,58,19,22,20,24,21,4,1,2, - 48,0,4,8,72,67,55,0,1,2, - 8,71,0,8,70,71,69,0,72,8, - 63,69,70,25,55,0,8,67,70,0, - 8,67,69,0,4,8,67,1,2,0, - 75,0,9,6,7,5,4,1,2,3, - 63,68,69,70,8,73,90,0,5,7, - 3,63,6,9,90,26,11,12,23,13, - 56,27,28,14,29,30,15,16,31,32, - 17,18,33,57,34,10,58,19,22,20, - 24,21,1,2,4,73,8,40,0,66, - 65,35,36,6,92,93,98,9,99,5, - 41,69,55,68,110,111,107,108,109,115, - 114,116,88,87,112,113,96,97,94,95, - 100,101,37,38,70,89,105,63,3,10, - 56,40,57,58,12,21,11,17,15,16, - 18,19,14,13,20,26,32,33,28,31, - 30,27,23,24,29,34,1,2,4,22, - 0,64,26,11,12,40,23,13,56,27, - 86,28,14,29,30,15,16,31,59,32, - 17,18,33,57,34,10,58,19,62,22, - 20,24,21,8,3,9,6,71,25,60, - 4,7,5,48,1,2,0,8,73,11, + 68,7,1,2,4,10,5,0,71,61, + 37,38,9,6,35,36,41,46,3,4, + 52,53,54,39,50,44,49,12,21,11, + 17,15,16,18,19,14,13,20,10,43, + 47,45,42,51,67,8,7,5,1,2, + 66,65,0,48,4,72,1,2,67,8, + 0,4,8,72,67,0,91,89,35,36, + 92,93,87,88,55,94,95,96,97,98, + 99,100,101,106,72,90,69,107,108,109, + 110,111,112,113,114,115,116,117,71,25, + 120,68,1,2,9,6,4,3,63,70, + 73,8,0,65,66,3,10,43,47,45, + 42,51,12,21,11,17,15,16,18,19, + 14,13,20,52,53,54,39,50,44,49, + 5,7,4,37,38,9,6,35,36,41, + 46,1,2,117,8,0,68,72,90,70, + 117,73,71,120,11,12,42,65,13,43, + 44,14,15,16,66,45,17,18,46,47, + 49,61,50,51,10,19,20,21,52,53, + 54,39,37,38,35,36,41,8,25,5, + 7,1,2,4,3,9,6,0,67,40, + 23,13,56,27,14,29,30,15,16,31, + 32,17,18,33,57,34,10,58,19,22, + 20,24,21,12,11,26,8,25,62,59, + 64,86,28,48,9,6,5,7,60,1, + 2,4,3,0,8,72,117,73,25,70, + 0,86,59,7,102,103,104,62,8,3, + 9,6,5,72,71,25,60,26,11,12, + 40,23,13,56,27,28,14,29,30,15, + 16,31,32,17,18,33,57,34,10,58, + 19,22,20,24,21,4,1,2,48,0, + 26,11,12,23,13,27,28,14,29,30, + 15,16,31,7,32,17,18,33,34,19, + 22,20,24,21,1,2,8,63,9,6, + 5,4,73,25,3,0,1,2,8,71, + 0,4,8,72,67,55,0,8,70,71, + 69,0,72,8,63,69,70,25,55,0, + 8,67,70,0,8,67,69,0,86,102, + 103,104,48,72,118,121,71,60,74,62, + 59,64,76,78,84,82,75,80,81,83, + 85,67,77,79,25,8,26,40,23,56, + 27,28,29,30,31,32,33,57,34,58, + 22,24,61,65,66,10,43,47,45,42, + 51,12,21,11,17,15,16,18,19,14, + 13,20,52,53,54,39,50,44,49,37, + 38,35,36,41,46,9,6,3,4,7, + 5,1,2,0,4,8,67,1,2,0, + 9,6,7,5,4,1,2,3,63,68, + 69,70,8,73,90,0,5,7,3,63, + 6,9,90,26,11,12,23,13,56,27, + 28,14,29,30,15,16,31,32,17,18, + 33,57,34,10,58,19,22,20,24,21, + 1,2,4,73,8,40,0,8,73,11, 12,42,65,13,43,44,14,15,16,66, 7,45,17,18,46,47,49,61,50,51, 10,19,20,21,52,53,54,1,2,3, 37,38,9,6,35,36,5,41,4,39, - 0,25,8,3,7,5,9,6,4,1, - 2,72,0,26,11,12,40,23,13,56, - 27,28,14,29,30,15,16,31,32,17, - 18,33,57,34,10,58,19,22,20,24, - 21,1,2,4,90,0,22,1,2,4, - 102,103,104,0,23,24,61,8,90,73, - 69,70,68,0,61,23,7,24,5,1, - 2,4,74,67,119,105,37,38,63,3, - 91,89,6,92,93,35,36,88,87,55, - 94,95,96,97,9,98,99,100,68,90, - 73,120,69,107,108,109,110,111,112,113, - 114,115,116,72,117,71,101,106,70,25, - 8,0,68,69,70,1,2,0,118,0, - 23,24,61,74,72,67,8,0,65,66, - 37,38,9,6,35,36,5,41,46,3, - 4,7,52,53,54,39,50,44,49,12, - 21,11,17,15,16,18,19,14,13,20, - 10,43,47,45,42,51,63,1,2,0, + 0,64,26,11,12,40,23,13,56,27, + 86,28,14,29,30,15,16,31,59,32, + 17,18,33,57,34,10,58,19,62,22, + 20,24,21,8,3,9,6,71,25,60, + 4,7,5,48,1,2,0,75,0,25, + 8,3,7,5,9,6,4,1,2,72, + 0,23,24,61,8,90,73,69,70,68, + 0,22,1,2,4,102,103,104,0,68, + 69,70,1,2,0,66,65,35,36,6, + 92,93,98,9,99,5,41,69,55,68, + 110,111,107,108,109,115,114,116,88,87, + 112,113,96,97,94,95,100,101,37,38, + 70,89,105,63,3,10,56,40,57,58, + 12,21,11,17,15,16,18,19,14,13, + 20,26,32,33,28,31,30,27,23,24, + 29,34,1,2,4,22,0,26,11,12, + 40,23,13,56,27,28,14,29,30,15, + 16,31,32,17,18,33,57,34,10,58, + 19,22,20,24,21,1,2,4,90,0, + 61,23,24,7,5,1,2,4,74,67, + 119,105,37,38,63,3,91,89,6,92, + 93,35,36,88,87,55,94,95,96,97, + 9,98,99,100,68,90,73,120,69,107, + 108,109,110,111,112,113,114,115,116,72, + 117,71,101,106,70,25,8,0,118,0, + 65,66,37,38,9,6,35,36,5,41, + 46,3,4,7,52,53,54,39,50,44, + 49,12,21,11,17,15,16,18,19,14, + 13,20,10,43,47,45,42,51,63,1, + 2,0,23,24,61,74,72,67,8,0, 40,23,13,56,27,14,29,30,15,16, 31,32,17,18,33,57,34,58,19,22, 20,24,21,12,11,26,8,3,9,6, @@ -1971,60 +1969,61 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface Nasb { public final static char nasb[] = {0, - 123,12,27,116,123,203,12,12,149,223, - 12,130,13,13,94,62,199,130,12,259, - 128,128,42,5,88,259,12,12,12,12, - 128,205,12,12,25,83,259,64,128,160, - 12,12,12,12,12,11,12,273,130,64, - 64,219,64,64,64,64,64,64,12,12, - 12,12,12,12,12,12,12,12,12,64, - 12,130,118,128,31,31,116,247,248,160, - 248,70,248,99,248,241,10,130,88,88, - 31,45,203,88,12,12,174,128,273,36, - 36,36,36,130,162,259,259,189,1,64, - 29,25,273,12,17,17,162,140,64,64, - 64,64,64,64,64,64,64,64,64,64, - 64,64,64,64,64,64,64,64,64,64, - 64,64,64,64,64,64,64,64,140,64, - 39,12,210,12,12,12,145,128,133,11, - 54,11,130,205,12,12,12,205,64,62, - 259,259,12,12,12,12,49,259,64,116, - 188,13,13,12,12,12,10,130,88,36, - 94,259,202,130,202,259,88,12,12,12, + 119,12,27,112,119,215,12,12,219,232, + 12,177,13,13,95,60,211,177,12,275, + 124,124,44,5,91,275,12,12,12,12, + 124,217,12,12,25,86,275,62,124,153, + 12,12,12,12,12,11,12,269,177,62, + 62,228,62,62,62,62,62,62,12,12, + 12,12,12,12,12,12,12,12,12,62, + 12,177,114,114,114,29,29,112,256,257, + 153,257,68,257,100,257,250,10,177,91, + 91,29,37,215,91,12,12,42,124,269, + 34,34,34,34,177,133,275,275,127,1, + 62,57,25,269,12,17,17,133,139,62, + 62,62,62,62,62,62,62,62,62,62, + 62,62,62,62,62,62,62,62,62,62, + 62,62,62,62,62,62,62,62,62,139, + 62,54,12,124,12,12,12,246,124,155, + 11,71,11,177,217,12,12,12,217,62, + 60,275,275,12,12,12,12,167,275,62, + 112,126,13,13,12,12,12,10,177,91, + 34,95,275,214,177,214,275,91,12,12, 12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,128,210,31,250, - 134,15,15,12,266,160,128,266,24,134, - 45,174,12,12,12,12,134,205,143,259, - 235,128,130,25,64,36,128,78,259,130, - 176,25,64,210,174,130,195,12,108,12, - 12,76,165,250,15,15,128,128,24,128, - 224,205,134,90,61,140,140,140,140,12, - 12,259,12,121,12,238,23,134,259,57, - 145,12,223,134,25,128,160,12,12,11, - 128,111,12,128,128,179,179,134,224,174, - 12,12,90,12,259,259,259,259,162,162, - 128,64,12,12,120,116,238,259,134,128, - 106,12,140,145,177,12,12,203,212,128, - 226,128,266,128,92,199,195,64,12,81, - 12,128,179,179,184,174,64,224,259,259, - 210,64,64,235,197,128,12,57,162,64, - 88,177,195,174,12,226,166,12,54,76, - 226,212,238,203,92,181,102,123,64,64, - 238,12,11,153,266,128,210,106,259,88, - 159,111,12,12,11,174,12,12,217,217, - 195,181,173,12,266,12,259,231,266,11, - 11,205,52,128,226,128,195,12,259,11, - 266,238,226,128,12,12,128,137,102,205, - 162,128,205,266,266,12,52,212,123,195, - 266,109,238,36,36,97,155,12,64,12, - 195,12,12,12,12,156,12,224,193,195, - 195,224,73,259,210,205,205,257,174,109, - 195,12,59,12,12,156,12,156,277,277, - 261,12,277,195,195,12,128,128,259,195, - 12,36,156,259,123,259,269,128,12,259, - 97,52,36,217,259,259,128,156,12,156, - 195,123,140,156,59,12,73,73,121,64, - 12,207,195,259,202,156,259,195,156 + 12,12,12,12,12,12,12,114,203,29, + 259,156,47,47,12,266,153,124,266,24, + 156,37,42,12,12,12,12,156,217,244, + 275,142,124,177,25,62,34,124,83,275, + 177,183,25,62,124,203,42,177,201,12, + 180,12,12,79,159,259,47,47,124,124, + 24,124,233,217,156,15,59,139,139,139, + 139,12,12,275,12,117,12,145,23,156, + 275,103,246,12,232,156,203,25,124,153, + 12,12,11,124,107,12,124,124,170,170, + 156,233,42,12,12,15,12,275,275,275, + 275,133,133,124,62,12,12,116,112,145, + 275,156,124,131,12,139,246,184,12,12, + 215,223,124,235,124,266,124,93,211,201, + 62,12,81,12,124,170,170,193,42,62, + 233,275,275,203,62,62,142,209,124,12, + 103,133,62,91,184,201,42,12,235,160, + 12,71,79,235,223,145,215,93,49,205, + 119,62,62,145,12,11,105,266,124,203, + 131,275,91,152,107,12,12,11,42,12, + 12,197,197,201,49,41,12,266,12,275, + 240,266,11,11,217,77,124,235,124,201, + 12,275,11,266,145,235,124,12,12,124, + 136,205,217,133,124,217,266,266,12,77, + 223,119,201,266,181,145,34,34,52,148, + 12,62,12,201,12,12,12,12,149,12, + 233,199,201,201,233,74,275,203,217,217, + 273,42,181,201,12,98,12,12,149,12, + 149,277,277,172,12,277,201,201,12,124, + 124,275,201,12,34,149,275,119,275,186, + 124,12,275,52,77,34,197,275,275,124, + 149,12,149,201,119,139,149,98,12,74, + 74,117,62,12,190,201,275,214,149,275, + 201,149 }; }; public final static char nasb[] = Nasb.nasb; @@ -2033,33 +2032,33 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface Nasr { public final static char nasr[] = {0, 3,13,10,9,151,149,123,148,147,2, - 5,0,75,0,111,0,5,2,9,10, - 138,0,135,2,64,0,184,0,175,0, - 5,10,9,2,13,4,45,0,64,54, - 0,4,195,0,64,137,136,0,135,64, - 0,125,0,40,1,0,142,0,115,0, - 66,128,40,5,10,9,2,13,0,152, - 188,0,40,56,0,155,0,4,177,0, - 191,0,13,2,9,10,5,82,0,162, - 0,159,0,4,30,0,161,0,152,183, - 0,172,5,171,0,140,0,40,103,0, - 4,10,9,2,63,5,89,54,0,32, - 94,93,63,5,2,9,10,4,0,44, - 2,0,44,2,3,0,48,40,179,4, - 39,0,94,93,54,5,60,0,4,45, - 196,0,193,0,66,39,48,67,4,40, - 0,4,96,0,38,5,2,9,10,4, - 157,0,4,66,0,2,117,0,112,0, - 40,160,0,5,101,192,0,32,93,94, - 4,0,4,39,38,0,94,93,54,63, - 60,5,10,9,2,0,4,178,0,61, - 0,118,4,48,81,0,110,0,5,10, - 9,13,3,1,0,4,48,81,83,0, - 5,101,168,0,54,5,89,22,4,0, - 2,5,123,119,120,121,13,86,0,4, - 48,81,101,46,5,0,45,4,32,0, - 39,4,22,181,0,2,59,0,45,4, - 180,0,4,45,39,0,4,45,102,0 + 5,0,75,0,162,0,5,2,9,10, + 138,0,135,2,64,0,184,0,5,10, + 9,2,13,4,45,0,64,137,136,0, + 4,66,0,4,195,0,111,0,40,160, + 0,161,0,64,49,0,175,0,66,128, + 40,5,10,9,2,13,0,152,188,0, + 40,1,0,40,56,0,125,0,155,0, + 191,0,4,177,0,13,2,9,10,5, + 82,0,159,0,4,30,0,115,0,152, + 183,0,142,0,193,0,4,10,9,2, + 63,5,89,49,0,32,94,93,63,5, + 2,9,10,4,0,32,93,94,4,0, + 140,0,4,96,0,48,40,179,4,39, + 0,49,5,89,22,4,0,66,39,48, + 67,4,40,0,44,2,3,0,38,5, + 2,9,10,4,157,0,135,64,0,112, + 0,39,4,22,181,0,44,2,0,40, + 103,0,2,117,0,45,4,180,0,4, + 178,0,5,101,192,0,110,0,4,39, + 38,0,61,0,172,5,171,0,94,93, + 49,63,60,5,10,9,2,0,4,45, + 196,0,118,4,48,81,0,5,10,9, + 13,3,1,0,4,48,81,83,0,5, + 101,168,0,94,93,49,5,60,0,2, + 5,123,119,120,121,13,86,0,4,48, + 81,101,46,5,0,2,59,0,4,45, + 39,0,45,4,32,0,4,45,102,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -2115,18 +2114,18 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopePrefix { public final static char scopePrefix[] = { - 159,584,603,308,535,551,562,573,367,266, - 280,302,315,328,42,291,387,425,167,592, - 478,20,51,71,80,85,90,130,195,297, - 321,336,341,144,272,286,506,27,144,377, - 341,611,27,217,245,1,14,61,76,106, - 346,356,360,443,471,500,527,531,621,625, - 629,97,7,97,405,421,434,455,519,232, - 116,116,434,542,558,569,580,207,489,56, - 56,156,222,225,56,240,261,225,225,56, - 364,468,475,156,56,644,110,350,409,449, - 462,56,350,396,177,104,447,633,640,633, - 640,65,415,137,104,104,250 + 159,585,604,309,536,552,563,574,368,267, + 281,303,316,329,42,292,388,426,167,593, + 479,20,51,71,80,85,90,130,195,298, + 322,337,342,144,273,287,507,27,144,378, + 342,612,27,217,246,1,14,61,76,106, + 347,357,361,444,472,501,528,532,622,626, + 630,97,7,97,406,422,435,456,520,116, + 116,232,435,543,559,570,581,207,490,56, + 56,156,222,225,56,241,262,225,225,56, + 365,469,476,156,56,645,110,351,410,450, + 463,56,351,397,177,104,448,634,641,634, + 641,65,416,137,104,104,251 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2134,18 +2133,18 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeSuffix { public final static char scopeSuffix[] = { - 18,5,5,135,5,5,5,5,374,135, - 95,135,135,334,48,277,393,431,173,67, - 484,25,25,25,59,59,95,135,200,135, - 326,326,334,149,277,101,511,38,152,382, - 598,616,32,211,211,5,18,5,59,95, - 326,95,95,135,243,5,5,5,5,5, - 243,642,11,101,374,374,374,459,511,236, - 120,125,438,546,546,546,546,211,493,59, - 59,5,5,228,230,243,5,264,264,230, - 95,5,243,5,504,5,113,353,412,452, - 465,523,514,399,180,95,95,635,635,637, - 637,67,417,139,202,187,252 + 18,5,5,135,5,5,5,5,375,135, + 95,135,135,335,48,278,394,432,173,67, + 485,25,25,25,59,59,95,135,200,135, + 327,327,335,149,278,101,512,38,152,383, + 599,617,32,211,211,5,18,5,59,95, + 327,95,95,135,244,5,5,5,5,5, + 244,643,11,101,375,375,375,460,512,120, + 125,236,439,547,547,547,547,211,494,59, + 59,5,5,228,230,244,5,265,265,230, + 95,5,244,5,505,5,113,354,413,453, + 466,524,515,400,180,95,95,636,636,638, + 638,67,418,139,202,187,253 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2154,13 +2153,13 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeLhs { public final static char scopeLhs[] = { 46,17,17,121,17,17,17,17,70,85, - 47,79,121,120,76,52,70,69,46,17, + 47,79,121,120,76,53,70,69,46,17, 19,3,7,8,168,168,164,119,46,80, - 120,120,122,127,53,47,138,132,127,70, + 120,120,122,127,54,47,138,132,127,70, 17,17,132,95,158,134,73,171,168,164, - 122,182,50,56,142,18,17,17,17,17, - 17,12,115,164,70,69,69,37,138,60, - 129,129,69,17,17,17,17,95,19,172, + 122,182,51,56,142,18,17,17,17,17, + 17,12,115,164,70,69,69,37,138,129, + 129,60,69,17,17,17,17,95,19,172, 168,184,93,100,58,75,57,157,74,122, 71,143,142,175,138,16,164,122,102,68, 21,138,138,70,46,164,65,136,44,136, @@ -2178,8 +2177,8 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 1,1,1,71,1,1,4,68,70,25, 1,1,68,73,73,73,118,73,1,25, 1,25,25,71,117,73,73,73,73,73, - 117,1,73,1,73,73,73,72,4,6, - 1,1,73,68,68,68,68,73,3,1, + 117,1,73,1,73,73,73,72,4,1, + 1,6,73,68,68,68,68,73,3,1, 1,73,73,3,1,117,73,1,1,1, 25,73,117,73,5,73,1,48,69,72, 73,1,48,75,74,25,25,4,4,4, @@ -2197,8 +2196,8 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 108,108,108,315,80,78,100,48,315,88, 252,252,48,116,61,24,88,28,52,64, 108,22,80,31,58,252,252,252,252,252, - 252,231,6,64,88,88,88,284,100,148, - 108,108,88,252,252,252,252,116,252,28, + 252,231,6,64,88,88,88,284,100,108, + 108,148,88,252,252,252,252,116,252,28, 52,164,116,118,166,112,166,61,171,108, 88,55,58,103,100,252,64,108,1,88, 253,100,100,88,78,64,11,105,124,105, @@ -2233,48 +2232,48 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 0,203,0,0,215,0,229,126,3,0, 126,0,0,0,0,0,229,126,3,215, 0,222,3,0,211,126,0,208,0,146, - 0,176,166,127,0,10,0,0,0,213, - 63,0,125,0,229,126,3,179,0,179, - 0,2,0,0,126,0,0,0,0,0, - 196,3,0,201,0,238,126,162,39,28, - 0,181,127,59,62,0,196,128,0,128, - 181,127,277,62,0,181,127,277,62,0, - 181,127,69,123,59,0,238,126,162,59, - 0,238,126,162,225,59,0,275,126,162, - 123,305,56,0,275,126,162,305,56,0, - 181,127,274,56,0,135,0,186,181,127, - 274,245,0,136,0,181,127,274,245,0, - 186,166,127,10,0,166,127,10,0,166, - 127,0,93,136,0,267,126,144,0,267, - 126,170,0,161,84,0,300,160,302,303, - 3,81,0,126,171,0,302,303,3,81, - 0,128,0,126,171,0,161,3,75,189, - 80,0,126,128,0,189,80,0,108,2, - 131,126,128,0,224,3,75,0,196,167, - 0,33,169,0,167,0,175,33,169,0, - 224,3,85,0,189,154,224,3,83,0, - 62,171,0,224,3,83,0,126,171,62, - 171,0,301,126,162,0,161,0,213,77, - 0,30,171,0,161,106,158,0,30,169, - 0,177,3,0,126,149,0,218,3,0, - 213,63,264,0,161,63,0,177,3,297, - 66,127,0,126,0,0,0,0,297,66, - 127,0,2,145,126,0,0,0,0,177, - 3,46,0,147,0,125,48,166,127,0, - 31,147,0,93,136,31,147,0,219,181, - 127,0,146,31,147,0,177,3,51,0, - 161,3,51,0,161,3,68,177,55,42, - 0,177,55,42,0,20,2,131,126,0, - 161,3,68,177,55,45,0,177,55,45, - 0,161,3,68,177,55,47,0,177,55, - 47,0,161,3,68,177,55,43,0,177, - 55,43,0,218,3,125,186,166,127,10, - 0,125,186,166,127,10,0,136,2,0, - 126,0,218,3,124,257,166,127,10,0, - 257,166,127,10,0,135,2,0,126,0, - 218,3,135,0,218,3,139,0,161,63, - 139,0,259,0,31,0,31,139,0,165, - 0,134,0,161,3,0 + 0,171,166,127,0,10,0,0,0,0, + 213,63,0,125,0,229,126,3,179,0, + 179,0,2,0,0,126,0,0,0,0, + 0,196,3,0,201,0,238,126,162,39, + 28,0,181,127,59,62,0,196,128,0, + 128,181,127,277,62,0,181,127,277,62, + 0,181,127,69,123,59,0,238,126,162, + 59,0,238,126,162,225,59,0,275,126, + 162,123,305,56,0,275,126,162,305,56, + 0,181,127,274,56,0,135,0,186,181, + 127,274,245,0,136,0,181,127,274,245, + 0,186,166,127,10,0,166,127,10,0, + 166,127,0,93,136,0,267,126,144,0, + 267,126,170,0,161,84,0,300,160,302, + 303,3,81,0,126,171,0,302,303,3, + 81,0,128,0,126,171,0,161,3,75, + 189,80,0,126,128,0,189,80,0,108, + 2,131,126,128,0,224,3,75,0,196, + 167,0,33,169,0,167,0,175,33,169, + 0,224,3,85,0,189,154,224,3,83, + 0,62,171,0,224,3,83,0,126,171, + 62,171,0,301,126,162,0,161,0,213, + 77,0,30,171,0,161,106,158,0,30, + 169,0,177,3,0,126,149,0,218,3, + 0,213,63,264,0,161,63,0,177,3, + 297,66,127,0,126,0,0,0,0,297, + 66,127,0,2,145,126,0,0,0,0, + 177,3,46,0,147,0,125,48,166,127, + 0,31,147,0,93,136,31,147,0,219, + 181,127,0,146,31,147,0,177,3,51, + 0,161,3,51,0,161,3,68,177,55, + 42,0,177,55,42,0,20,2,131,126, + 0,161,3,68,177,55,45,0,177,55, + 45,0,161,3,68,177,55,47,0,177, + 55,47,0,161,3,68,177,55,43,0, + 177,55,43,0,218,3,125,186,166,127, + 10,0,125,186,166,127,10,0,136,2, + 0,126,0,218,3,124,257,166,127,10, + 0,257,166,127,10,0,135,2,0,126, + 0,218,3,135,0,218,3,139,0,161, + 63,139,0,259,0,31,0,31,139,0, + 165,0,134,0,161,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2282,35 +2281,35 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeState { public final static char scopeState[] = {0, - 4708,4917,4893,4883,0,1007,2695,999,2120,0, - 3447,3393,3253,3199,3145,3091,3037,2983,2929,2792, - 2730,4460,0,1255,1126,809,0,2683,2508,0, - 3447,3393,3414,2871,3253,3199,3145,3091,3037,2983, - 1124,2929,2792,2730,4293,3126,0,3112,2988,3038, - 0,4222,3282,0,2644,2601,0,2568,998,0, - 4503,2914,0,4588,4440,0,4588,4440,3785,4336, - 4326,3775,4316,4234,4221,3765,0,4588,4440,3785, - 4336,4326,3775,4316,4234,4221,3765,3447,3393,3253, - 3199,3145,3091,3037,2983,2929,2792,2730,0,666, - 580,0,681,0,800,731,0,536,4436,2815, - 0,2036,803,660,540,3546,2731,3327,2664,2624, - 3312,2970,0,4779,4775,4762,4726,4715,4702,4697, - 4680,4899,4875,4864,4676,4650,4615,4611,4860,2711, - 4846,3737,3365,4792,2905,2689,0,2418,3546,4530, - 4537,3014,3176,2646,722,4235,2731,3117,736,870, - 2458,734,0,670,0,4503,3546,4537,2914,2458, - 3327,3560,4566,4203,2418,4190,2664,2646,2624,4422, - 3573,0,3376,3369,4779,4775,4762,3260,2659,4726, - 2483,4715,4702,4697,4680,3798,3790,3667,3504,3295, - 2772,4899,3006,4875,4864,2564,2501,4676,4650,926, - 4615,4611,3015,3276,4860,2711,4846,3737,4436,3365, - 4792,3222,2815,2905,2689,625,2552,2487,2202,2115, - 805,3327,3560,4566,4203,2418,4190,4503,3546,4537, - 2664,2646,2624,2914,2287,939,666,580,2458,4422, - 3573,3643,4168,4146,2251,1185,2332,2300,2390,2362, - 593,2872,629,2597,2570,2525,2431,3743,3712,3680, - 3521,3340,4124,4102,4080,4058,4036,4014,3992,3970, - 3948,3926,3904,1996,2213,2164,2126,2077,1307,1264, + 3223,4856,4843,4809,0,3285,2120,2081,918,0, + 3439,3384,3259,3204,3149,3094,3039,2984,2929,2792, + 2730,3003,0,1436,1255,1126,0,3698,3496,0, + 3439,3384,2871,2637,3259,3204,3149,3094,3039,2984, + 1124,2929,2792,2730,2750,822,0,4698,4320,3135, + 0,4232,3296,0,2807,2707,0,2558,2366,0, + 4582,2914,0,4573,4480,0,4573,4480,3777,4328, + 4318,3767,4308,4226,4213,3757,0,4573,4480,3777, + 4328,4318,3767,4308,4226,4213,3757,3439,3384,3259, + 3204,3149,3094,3039,2984,2929,2792,2730,0,666, + 580,0,964,0,2763,736,0,536,4445,2815, + 0,2791,1140,856,540,3538,4444,3333,2664,2624, + 2679,2970,0,4728,4721,4709,4704,4683,4657,4634, + 4629,4819,4815,4802,4622,4569,4282,3729,3377,2905, + 2689,3416,3236,2518,2513,3016,0,2418,3538,3121, + 4454,2504,3123,2646,735,2744,4444,870,727,863, + 4429,734,0,670,0,4582,3538,4454,2914,4429, + 3333,3552,4543,4195,2418,4182,2664,2646,2624,4414, + 3565,0,3471,3465,4728,4721,4709,3173,3010,4704, + 2483,4683,4657,4634,4629,3603,3588,3445,2989,2940, + 2823,4819,3081,4815,4802,2566,2458,4622,4569,926, + 4282,3729,3117,3316,3377,2905,2689,3416,4445,3236, + 2518,3190,2815,2513,3016,625,2487,2462,2202,2115, + 805,3333,3552,4543,4195,2418,4182,4582,3538,4454, + 2664,2646,2624,2914,2287,939,666,580,4429,4414, + 3565,3635,4160,4138,2251,1185,2332,2300,2390,2362, + 593,2872,629,2597,2570,2525,2431,3735,3704,3672, + 3513,3346,4116,4094,4072,4050,4028,4006,3984,3962, + 3940,3918,3896,1996,2213,2164,2126,2077,1307,1264, 2039,1047,1221,1953,880,1910,1867,1824,1781,1738, 1695,1652,1609,1566,1523,1480,1437,536,824,744, 688,1393,1142,1350,1003,960,1092,0 @@ -2322,59 +2321,60 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface InSymb { public final static char inSymb[] = {0, 0,296,228,126,3,4,132,131,7,5, - 124,127,185,179,3,69,211,127,176,196, + 124,127,185,179,3,69,211,127,171,196, 55,55,167,126,63,3,65,66,124,123, 55,181,165,124,166,63,152,126,162,250, 51,42,45,47,43,10,135,3,127,46, 41,5,36,35,6,9,38,37,139,145, 147,146,149,148,151,150,155,153,157,61, - 158,127,166,6,126,126,126,268,269,251, - 270,245,271,56,272,273,10,127,63,63, - 126,4,186,213,158,266,126,162,3,55, - 55,55,55,127,3,177,161,167,126,65, - 66,166,3,125,105,119,3,63,89,91, - 36,35,93,92,6,95,94,68,55,87, - 88,9,97,96,99,98,100,116,115,114, - 113,112,111,110,109,108,107,69,106,101, - 166,176,126,252,255,252,211,162,310,274, - 305,274,127,181,166,252,259,186,70,126, - 177,161,177,177,177,177,166,218,154,126, - 3,216,215,135,125,124,10,127,63,297, - 3,177,48,127,48,218,161,146,146,145, - 145,145,148,148,148,148,147,147,150,149, - 149,153,151,155,161,157,6,183,70,126, - 166,232,125,124,127,123,162,127,166,48, - 4,308,68,68,68,68,186,257,211,222, - 126,3,127,166,204,3,298,167,152,127, - 181,166,72,126,309,127,168,223,59,48, - 203,62,170,312,125,124,233,233,181,162, - 126,181,186,188,70,3,3,3,3,125, - 124,229,230,144,231,126,166,48,177,126, - 126,219,5,48,166,162,225,55,48,277, - 279,126,179,233,233,126,126,186,126,275, - 123,276,188,8,161,161,161,161,3,3, - 154,69,222,196,3,126,70,229,186,154, - 261,264,63,182,4,123,125,186,126,162, - 68,55,127,74,126,211,311,72,289,196, - 124,3,126,126,72,275,69,70,218,218, - 126,69,69,126,211,154,125,126,3,63, - 161,4,128,238,28,48,170,64,59,62, - 240,126,126,181,126,281,72,70,72,69, - 126,314,223,22,127,220,126,261,218,213, - 39,126,3,123,59,238,295,48,10,40, - 128,281,162,293,127,294,229,70,127,22, - 315,181,126,220,126,162,267,278,39,69, - 127,70,68,55,232,232,282,126,70,181, - 3,154,181,127,127,61,126,126,70,154, - 127,181,126,69,69,126,301,79,77,1, - 161,8,85,83,81,80,75,82,84,78, - 76,59,74,218,126,181,181,3,238,181, - 225,295,283,118,8,72,213,72,3,3, - 3,189,3,123,161,123,178,220,320,225, - 68,3,72,224,167,224,303,144,75,224, - 126,126,70,40,90,319,167,154,196,154, - 302,126,3,154,283,232,154,154,126,69, - 189,160,267,161,69,121,300,154,154 + 158,127,166,9,6,126,126,126,268,269, + 251,270,245,271,56,272,273,10,127,63, + 63,126,4,186,213,158,266,126,162,3, + 55,55,55,55,127,3,177,161,167,126, + 65,66,166,3,125,105,119,3,63,89, + 91,36,35,93,92,6,95,94,68,55, + 87,88,9,97,96,99,98,100,116,115, + 114,113,112,111,110,109,108,107,69,106, + 101,166,171,171,252,255,252,211,162,310, + 274,305,274,127,181,166,252,259,186,70, + 126,177,161,177,177,177,177,166,218,154, + 126,3,216,215,135,125,124,10,127,63, + 297,3,177,48,127,48,218,161,146,146, + 145,145,145,148,148,148,148,147,147,150, + 149,149,153,151,155,161,157,6,126,70, + 126,166,232,125,124,127,123,162,127,166, + 48,4,308,68,68,68,68,186,257,211, + 222,126,3,127,166,204,3,298,167,152, + 127,181,166,72,171,183,309,127,168,223, + 59,48,203,62,170,312,125,124,233,233, + 181,162,126,181,186,188,70,3,3,3, + 3,125,124,229,230,144,231,126,166,48, + 177,126,126,219,5,48,126,166,162,225, + 55,48,277,279,126,179,233,233,126,126, + 186,126,275,123,276,188,8,161,161,161, + 161,3,3,154,69,222,196,3,126,70, + 229,186,154,261,264,63,182,4,123,125, + 186,126,162,68,55,127,74,126,211,311, + 72,289,196,124,3,126,126,72,275,69, + 70,218,218,126,69,69,126,211,154,125, + 126,3,63,161,4,128,238,28,48,170, + 64,59,62,240,126,126,181,126,281,72, + 70,72,69,126,314,223,22,127,220,126, + 261,218,213,39,126,3,123,59,238,295, + 48,10,40,128,281,162,293,127,294,229, + 70,127,22,315,181,126,220,126,162,267, + 278,39,69,127,70,68,55,232,232,282, + 126,70,181,3,154,181,127,127,61,126, + 126,70,154,127,181,126,69,69,126,301, + 79,77,1,161,8,85,83,81,80,75, + 82,84,78,76,59,74,218,126,181,181, + 3,238,181,225,295,283,118,8,72,213, + 72,3,3,3,189,3,123,161,123,178, + 220,320,225,68,3,72,224,167,224,303, + 144,75,224,126,126,70,40,90,319,167, + 154,196,154,302,126,3,154,283,232,154, + 154,126,69,189,160,267,161,69,121,300, + 154,154 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2649,20 +2649,20 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 539, + NUM_STATES = 542, NT_OFFSET = 122, - LA_STATE_OFFSET = 5918, + LA_STATE_OFFSET = 5903, MAX_LA = 2147483647, NUM_RULES = 535, NUM_NONTERMINALS = 202, NUM_SYMBOLS = 324, SEGMENT_SIZE = 8192, - START_STATE = 3573, + START_STATE = 3565, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 120, EOLT_SYMBOL = 120, - ACCEPT_ACTION = 5021, - ERROR_ACTION = 5383; + ACCEPT_ACTION = 5006, + ERROR_ACTION = 5368; 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.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java index de990bb1873..d9663cdb963 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 @@ -17,20 +17,25 @@ import lpg.lpgjavaruntime.*; import java.util.*; import org.eclipse.cdt.core.dom.ast.*; +import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter; +import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap; import org.eclipse.cdt.core.dom.lrparser.IParser; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.ITokenCollector; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack; - -import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; -import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; +import org.eclipse.cdt.core.parser.IScanner; +import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider; +import org.eclipse.cdt.core.index.IIndex; import org.eclipse.cdt.core.dom.ast.cpp.*; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPNodeFactory; import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPBuildASTParserAction; import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPSecondaryParserFactory; -public class CPPParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser< IASTTranslationUnit > +public class CPPParser extends PrsStream implements RuleAction, ITokenStream, + ITokenCollector, IParser< IASTTranslationUnit > + { private static ParseTable prs = new CPPParserprs(); private FixedBacktrackingParser btParser; @@ -168,7 +173,11 @@ public class CPPParser extends PrsStream implements RuleAction , IParserActionTo private CPPBuildASTParserAction action; private IASTCompletionNode compNode; -public CPPParser() { // constructor + +public CPPParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Set options) { + initActions(options); + action.initializeTranslationUnit(scanner, builtinBindingsProvider, index); + CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap); } private void initActions(Set options) { @@ -187,17 +196,16 @@ public void addToken(IToken token) { } -public IASTTranslationUnit parse(Set options) { +public IASTTranslationUnit parse() { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(options); final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse super.resetTokenStream(); // allow tokens to be garbage collected compNode = action.getASTCompletionNode(); // the completion node may be null - return ( IASTTranslationUnit ) action.getParseResult(); + return ( IASTTranslationUnit ) action.getParseResult(); } @@ -220,25 +228,6 @@ public String getName() { } - -private ITokenMap tokenMap = null; - -public void setTokens(List tokens) { - resetTokenStream(); - addToken(new Token(null, 0, 0, 0)); // dummy token - for(IToken token : tokens) { - token.setKind(tokenMap.mapKind(token.getKind())); - addToken(token); - } - addToken(new Token(null, 0, 0, CPPParsersym.TK_EOF_TOKEN)); -} - -public CPPParser(IParserActionTokenProvider parser) { // constructor - tokenMap = new TokenMap(CPPParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols()); -} - - - public void ruleAction(int ruleNumber) { switch (ruleNumber) @@ -1421,19 +1410,19 @@ public CPPParser(IParserActionTokenProvider parser) { // constructor } // - // Rule 328: ptr_operator ::= pointer_hook * cv_qualifier_seq_opt + // Rule 328: ptr_operator ::= pointer_hook * pointer_hook cv_qualifier_seq_opt // case 328: { action. consumePointer(); break; } // - // Rule 329: ptr_operator ::= pointer_hook & + // Rule 329: ptr_operator ::= pointer_hook & pointer_hook // case 329: { action. consumeReferenceOperator(); break; } // - // Rule 330: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * cv_qualifier_seq_opt + // Rule 330: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook cv_qualifier_seq_opt // case 330: { action. consumePointerToMember(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserprs.java index c065f48663a..031dc4e4ee7 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 @@ -69,7 +69,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 1,3,1,1,1,6,5,7,6,1, 0,6,5,6,4,1,3,1,0,1, 1,2,1,1,3,1,3,1,1,1, - 1,3,9,2,2,3,2,4,2,6, + 1,3,9,2,2,3,2,5,3,7, 0,1,2,2,1,0,1,1,1,3, 1,2,1,1,2,3,1,1,1,3, 2,1,2,2,9,8,2,1,3,1, @@ -90,443 +90,443 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 0,1,3,1,1,2,4,2,4,7, 9,5,1,3,1,0,1,1,2,4, 4,1,2,5,5,3,3,1,4,3, - 1,0,1,3,-235,0,0,0,-2,0, + 1,0,1,3,-236,0,0,0,-2,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,-4,0,0,0, - 0,0,0,0,-7,0,-124,0,0,0, - 0,0,-145,0,0,0,0,-519,0,0, + 0,0,0,0,-7,0,-125,0,0,0, + 0,0,-146,0,0,0,0,-522,0,0, 0,0,0,0,0,0,0,0,0,0, - -9,-324,-258,0,0,0,0,0,0,0, + -9,-325,-259,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,-58,0,0,0,0,0, 0,0,0,0,-48,0,0,0,-54,0, - 0,0,0,0,-50,0,0,0,0,-295, - 0,0,-72,0,-12,-106,0,0,-118,0, + 0,0,0,0,-50,0,0,0,0,-296, + 0,0,-72,0,-12,-106,0,0,-119,0, 0,0,0,0,0,0,0,0,0,0, - -14,0,0,-24,0,-144,0,0,0,-31, + -14,0,0,-24,0,-145,0,0,0,-31, 0,0,0,0,0,-25,0,0,0,0, 0,0,0,0,0,0,0,-100,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,-3,0,-32, 0,-113,0,0,0,0,0,0,0,0, - 0,0,0,-63,0,-448,0,0,-34,0, - 0,0,0,-115,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-333,0,0, - 0,0,-135,0,0,0,0,0,0,-92, - 0,0,0,-102,0,0,0,-35,0,0, - 0,0,-241,0,0,0,-215,0,0,0, - 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-63,0,-451,0,0,-34,0, 0,0,0,-116,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-396,0,-60,0,0,0,0, - 0,-101,0,0,0,0,-184,-13,0,-37, - 0,0,0,0,0,-313,0,0,0,-277, + 0,0,0,0,0,0,0,-334,0,0, + 0,0,-136,0,0,0,0,0,0,-92, + 0,0,0,-102,0,0,0,-35,0,0, + 0,0,-242,0,0,0,-216,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-117,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-232, + 0,0,0,-398,0,-60,0,0,0,0, + 0,-101,0,0,0,0,-185,-13,0,-37, + 0,0,0,0,0,-314,0,0,0,-278, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-233, 0,-38,0,0,0,0,0,0,0,0, - 0,0,-310,-49,0,-417,0,0,0,-282, - 0,0,0,0,0,0,-227,0,0,0, - 0,0,-30,0,0,0,-372,0,0,0, - 0,0,0,0,0,0,-39,0,0,-380, + 0,0,-311,-49,0,-419,0,0,0,-283, + 0,0,0,0,0,0,-228,0,0,0, + 0,0,-30,0,0,0,-373,0,0,0, + 0,0,0,0,0,0,-39,0,0,-381, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,-43, 0,0,0,0,0,0,0,0,-55,0, - 0,0,-467,0,0,0,0,0,0,0, + 0,0,-470,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,-27,0,-56,0,0,0,0,0, - 0,-40,0,0,0,0,0,-304,0,0, - 0,-237,0,0,0,0,0,0,0,0, + 0,-40,0,0,0,0,0,-305,0,0, + 0,-238,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,-64,0,-67, - 0,0,0,0,0,-41,-435,0,0,0, - 0,0,-111,0,0,0,-129,0,0,0, + 0,0,0,0,0,-41,-438,0,0,0, + 0,0,-111,0,0,0,-130,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,-47,0,-74,0,0,0,0,0, - 0,0,0,0,0,-180,0,0,0,0, - -306,-192,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-181,0,0,0,0, + -307,-193,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-52,0,-19,0,0,0,0,0,-142, - 0,0,0,0,-276,0,0,0,0,0, + 0,-52,0,-19,0,0,0,0,0,-143, + 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,-75,0,0,0, 0,0,0,0,-57,0,-17,0,0,0, - 0,0,-290,0,0,0,0,0,0,0, + 0,0,-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,0,0, - 0,0,-500,0,0,0,0,0,0,0, - -88,0,0,0,0,-242,0,0,0,-76, + 0,0,-503,0,0,0,0,0,0,0, + -88,0,0,0,0,-243,0,0,0,-76, 0,0,0,0,0,0,0,0,-53,0, - 0,0,-383,0,0,0,0,0,0,0, + 0,0,-385,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,-77,0,0,0,0,0, - 0,0,0,0,-95,0,-132,0,0,0, - -61,0,0,0,0,-42,0,-384,0,0, + 0,0,0,0,-95,0,-133,0,0,0, + -61,0,0,0,0,-42,0,-386,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-134,0,-146, + 0,0,0,0,0,0,0,-135,0,-147, 0,0,0,0,0,0,0,0,0,0, -107,0,0,0,-97,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-377,0,0,0,0,0,0,0, - 0,0,-148,0,0,0,0,0,-224,0, - -177,0,0,0,0,0,0,0,0,0, + 0,0,-378,0,0,0,0,0,0,0, + 0,0,-149,0,0,0,0,0,-225,0, + -178,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -411,0,-59,0,0,0,0,0,0,-149, - -104,0,0,0,0,-405,0,0,-264,0, + -413,0,-59,0,0,0,0,0,0,-150, + -104,0,0,0,0,-407,0,0,-265,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -150,0,-51,0,0,0,-225,0,-151,0, - 0,-265,0,0,0,-152,0,0,0,0, + -151,0,-51,0,0,0,-226,0,-152,0, + 0,-266,0,0,0,-153,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,-93,0,0,0,0,0,0, - 0,-69,0,-154,0,0,0,0,0,-376, - 0,-94,0,0,-266,0,0,0,-166,0, + 0,-69,0,-155,0,0,0,0,0,-377, + 0,-94,0,0,-267,0,0,0,-167,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-138,0,0,0, + 0,0,0,0,0,0,-139,0,0,0, 0,0,0,0,-70,0,0,0,0,0, - 0,0,-167,-168,-139,0,0,-267,0,0, - 0,-169,0,0,0,0,0,0,0,0, + 0,0,-168,-169,-140,0,0,-268,0,0, + 0,-170,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-80,0,0,0,0,-170,-466,0,0, - -268,0,0,0,0,0,0,0,0,0, + 0,-80,0,0,0,0,-171,-469,0,0, + -269,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -81,0,-501,0,0,0,0,0,-171,-172, - -173,0,0,-269,0,0,0,0,0,0, + -81,0,-504,0,0,0,0,0,-172,-173, + -174,0,0,-270,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-84,0,-174,0,0,0,0, - 0,-175,-176,-178,0,0,-270,0,0,0, - -179,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-181,0, - 0,0,0,0,0,0,-86,0,-185,0, - 0,0,0,0,-187,-189,-195,0,0,-271, - 0,0,0,-197,0,0,0,0,0,0, + 0,0,0,-84,0,-175,0,0,0,0, + 0,-176,-177,-179,0,0,-271,0,0,0, + -180,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-182,0, + 0,0,0,0,0,0,-86,0,-186,0, + 0,0,0,0,-188,-190,-196,0,0,-272, + 0,0,0,-198,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-198,0,0,0,0,0,0,0,0, - 0,-201,0,-87,0,0,0,-203,0,-204, - 0,0,-272,0,0,0,-205,0,0,0, + 0,-199,0,0,0,0,0,0,0,0, + 0,-202,0,-87,0,0,0,-204,0,-205, + 0,0,-273,0,0,0,-206,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-98,0,-220,0,0,0,0,0, - -221,-90,-240,0,0,-273,0,0,0,-284, + 0,0,-98,0,-221,0,0,0,0,0, + -222,-90,-241,0,0,-274,0,0,0,-285, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-291,0,0, - 0,0,0,0,0,-292,0,-299,0,0, - 0,0,0,-300,-305,-307,0,0,-274,0, - 0,0,-320,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-292,0,0, + 0,0,0,0,0,-293,0,-300,0,0, + 0,0,0,-301,-128,-306,0,0,-275,0, + 0,0,-308,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -321,0,0,0,0,0,0,0,-114,0, - -322,0,0,0,0,0,-323,-127,-327,0, - 0,-379,0,0,0,-328,0,0,0,0, + -321,0,0,0,0,0,0,0,-322,0, + -323,0,0,0,0,0,-324,-129,-328,0, + 0,-380,0,0,0,-329,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-329,0,0,0,0,0,0, - 0,-341,0,-342,0,0,0,0,0,-343, - -128,-344,0,0,-416,0,0,0,-345,0, + 0,0,0,-330,0,0,0,0,0,0, + 0,-342,0,-343,0,0,0,0,0,-344, + -132,-345,0,0,-418,0,0,0,-346,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-346,0,0,0, - 0,0,0,0,-347,0,-348,0,0,0, - 0,0,-349,-131,-350,0,0,-520,0,0, - 0,-351,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-352, - 0,0,0,0,0,0,0,-119,0,-353, - 0,0,0,0,0,-360,-354,-188,0,0, - -312,0,0,0,-301,0,0,0,0,0, + 0,0,0,0,0,0,-347,0,0,0, + 0,0,0,0,-348,0,-349,0,0,0, + 0,0,-350,-351,-352,0,0,-523,0,0, + 0,-353,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,-120,0,-355, + 0,-154,0,0,0,-361,0,-189,0,0, + -313,0,0,0,-302,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,-79,0,0,0,0,0,0,0, - -110,0,-355,0,0,0,0,0,-363,0, + -110,0,-356,0,0,0,0,0,-364,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,-71,0, 0,0,0,0,0,0,-89,0,0,0, - 0,-356,0,0,0,0,0,0,-392,0, + 0,-357,0,0,0,0,0,0,-394,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-334,0, - -194,0,0,0,0,0,-393,0,0,0, + 0,0,0,0,0,0,0,0,-335,0, + -195,0,0,0,0,0,-395,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-357,0, - 0,0,0,0,-120,0,0,0,-358,-208, - 0,0,0,0,0,-359,-514,0,0,0, + 0,0,0,0,0,0,0,0,-358,0, + 0,0,0,0,-121,0,0,0,-359,-209, + 0,0,0,0,0,-360,-517,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-190,0, - 0,0,0,0,0,0,-140,0,-303,0, - 0,0,0,0,-263,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-114,0, + 0,0,0,0,0,0,-141,0,-363,0, + 0,0,0,0,-264,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-362,0,0,0,-536,0, + 0,0,0,0,-365,0,-115,0,-539,0, 0,0,0,0,0,0,0,0,0,0, - 0,-364,0,0,-261,0,0,0,0,0, + 0,-367,0,0,-262,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-451,0,0,0, - 0,0,0,0,-366,0,-262,0,0,0, - -367,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-216,0, + 0,0,0,0,0,0,-454,0,0,0, + 0,0,0,0,-368,0,-263,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-217,0, 0,0,0,0,0,0,-28,0,0,0, - 0,0,0,0,0,0,0,0,0,-202, + 0,0,0,0,0,0,0,0,0,-203, 0,0,0,0,0,0,0,0,0,0, - 0,0,-302,0,0,0,-218,0,0,0, - 0,0,0,-368,-212,0,0,0,0,0, - 0,0,0,0,0,0,0,-141,-369,-365, - 0,0,-15,-452,0,0,0,0,0,0, - 0,-217,0,0,0,0,-308,-143,0,0, - 0,0,0,0,-109,0,0,0,0,-130, - 0,0,0,-206,0,0,0,0,0,0, - -371,0,0,0,0,0,0,0,0,0, + 0,0,-303,0,0,0,-219,0,0,0, + 0,0,0,-191,-213,0,0,0,0,0, + 0,0,0,0,0,0,0,-142,-369,-370, + 0,0,-15,-455,0,0,0,0,0,0, + 0,-218,0,0,0,0,-309,-144,0,0, + 0,0,0,0,-109,0,0,0,0,-131, + 0,0,0,-207,0,0,0,0,0,0, + -372,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,-46,0,0,-16, - 0,0,-394,0,0,-68,0,0,0,0, + 0,0,-396,0,0,-68,0,0,0,0, 0,0,0,0,0,-29,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-78,0,0,0,0,0,-259, + 0,0,0,-78,0,0,0,0,0,-260, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-400,-401,0,0,0,-468,0,0, - -527,-402,-403,0,0,0,0,0,0,0, - 0,0,-537,-336,0,0,0,0,0,0, - 0,0,0,0,0,0,-207,0,0,-260, + 0,0,-402,-403,0,0,0,-471,0,0, + -530,-404,-405,0,0,0,0,0,0,0, + 0,0,-540,-337,0,0,0,0,0,0, + 0,0,0,0,0,0,-208,0,0,-261, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-293,0,0, + 0,0,0,0,0,0,0,-294,0,0, 0,0,0,0,0,0,0,0,0,0, - -65,0,0,0,-209,0,0,0,0,0, - 0,0,0,-21,-211,-252,0,0,0,0, + -65,0,0,0,-210,0,0,0,0,0, + 0,0,0,-21,-212,-253,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-418,0,0, - 0,0,-439,0,0,0,0,0,0,-419, - 0,0,-153,0,0,-421,0,0,0,0, + 0,0,0,0,0,0,0,-420,0,0, + 0,0,-442,0,0,0,0,0,0,-421, + 0,0,-288,0,0,-423,0,-428,0,0, 0,0,0,0,0,0,0,0,0,0, - -487,0,-426,-281,0,0,0,0,0,0, - 0,0,0,0,-253,0,0,0,0,0, + -490,0,-432,-282,0,0,0,0,0,0, + 0,0,0,0,-254,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-430,0,0,0, - 0,-254,0,0,0,-309,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-434,0,0,0,0,-255,0, + 0,-255,0,0,0,-310,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-437,0,0,0,0,-256,0, 0,0,-73,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -446,0,0,0,0,-280,0,-196,-447,0, - -338,0,0,0,0,0,0,0,0,0, - 0,0,0,-10,0,0,0,0,-414,0, - 0,0,-330,0,0,0,0,0,-404,0, - 0,0,-361,0,0,0,0,-449,0,0, + -449,0,0,0,0,-281,0,-289,-450,0, + -339,0,0,0,0,0,0,0,0,0, + 0,0,0,-10,0,0,0,0,-416,0, + 0,0,-331,0,0,0,0,0,-406,0, + 0,0,-362,0,0,0,0,-452,0,0, 0,0,0,0,0,0,0,0,0,-103, - -238,0,0,0,0,-191,-373,0,0,0, + -239,0,0,0,0,-192,-374,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-332,-453,0,0, - 0,0,0,0,0,0,0,0,0,-454, - 0,0,0,-200,0,0,0,0,0,0, + 0,0,0,0,0,0,-333,-456,0,0, + 0,0,0,0,0,0,0,0,0,-457, + 0,0,0,-201,0,0,0,0,0,0, 0,0,0,0,0,0,0,-5,0,0, - 0,-18,0,-316,0,0,0,0,0,0, - 0,-386,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-340,-256,0,0, + 0,-18,0,-317,0,0,0,0,0,0, + 0,-388,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-341,-257,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-182,0,0,0,0,-33,0, - -463,0,0,0,0,0,-469,-233,-234,0, - 0,0,0,-465,0,0,0,0,-484,-488, - 0,-133,0,0,0,0,0,0,0,0, - 0,0,-512,0,0,0,0,-147,-121,0, - 0,0,0,0,0,0,0,0,-489,0, - 0,0,0,-278,0,0,0,0,0,-494, - 0,0,-315,-157,0,0,0,0,0,0, + 0,0,0,-183,0,0,0,0,-33,0, + -466,0,0,0,0,0,-472,-234,-235,0, + 0,0,0,-468,0,0,0,0,-487,-491, + 0,-134,0,0,0,0,0,0,0,0, + 0,0,-515,0,0,0,0,-148,-122,0, + 0,0,0,0,0,0,0,0,-492,0, + 0,0,0,-279,0,0,0,0,0,-497, + 0,0,-316,-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, - -257,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,-370,0,0,0,0,0,0,-385, - -502,-456,-399,0,0,0,0,0,0,0, - 0,0,0,0,0,-193,-213,-219,0,0, - 0,0,0,0,0,0,0,0,-503,-420, - 0,0,0,0,-210,0,0,-285,0,0, - 0,0,0,0,0,0,0,-407,0,-511, - -521,0,0,0,0,0,-20,0,0,0, + 0,0,-371,0,0,0,0,0,0,-387, + -505,-459,-401,0,0,0,0,0,0,0, + 0,0,0,0,0,-194,-197,-220,0,0, + 0,0,0,0,0,0,0,0,-506,-422, + 0,0,0,0,-211,0,0,-286,0,0, + 0,0,0,0,0,0,0,-409,0,-514, + -524,0,0,0,0,0,-20,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-415,0,0,0,0,0,0, - 0,0,0,-422,0,0,-395,0,-483,0, - 0,0,-214,0,-526,0,0,0,0,0, + 0,0,0,-417,0,0,0,0,0,0, + 0,0,0,-424,0,0,-397,0,-486,0, + 0,0,-214,0,-529,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-470,0,0,0,0,0, - -457,0,0,0,0,-455,0,0,0,0, + 0,0,0,0,-473,0,0,0,0,0, + -460,0,0,0,0,-458,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,-62,0,0,0,0,0,-22,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-228,-105,0,0,0,0,0,0,0, - 0,0,0,0,-493,-223,0,-279,0,0, - -244,0,0,0,0,-318,0,-529,0,0, - 0,0,0,0,0,0,0,-183,0,0, - -374,-286,0,-288,0,0,0,0,0,0, - 0,-495,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-375,0, + 0,-229,-105,0,0,0,0,0,0,0, + 0,0,0,0,-496,-224,0,-215,0,0, + -245,0,0,0,0,-319,0,-532,0,0, + 0,0,0,0,0,0,0,-184,0,0, + -304,-280,0,-383,0,0,0,0,0,0, + 0,-498,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-366,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-287,0,-311,0,0,0,0,0, + 0,0,-287,0,-312,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,-26,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-497,0,0,0, - 0,0,0,0,0,0,0,0,0,-437, - -314,0,0,0,0,0,0,-505,0,0, - 0,0,-516,-499,-438,0,0,0,-117,0, - 0,0,0,0,-481,0,0,0,0,0, - 0,0,-289,-296,-199,0,0,0,-298,0, - -317,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-500,0,0,0, + 0,0,0,0,0,0,0,0,0,-440, + -315,0,0,0,0,0,0,-508,0,0, + 0,0,-519,-502,-441,0,0,0,-118,0, + 0,0,0,0,-484,0,0,0,0,0, + 0,0,-290,-297,-200,0,0,0,-299,0, + -318,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-532,0,0, - 0,0,0,-222,-390,-432,0,0,0,0, + 0,0,0,0,0,0,0,-535,0,0, + 0,0,0,-223,-375,-434,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -517,0,0,0,0,0,0,0,0,-294, - -506,0,0,0,0,0,0,0,0,0, + -520,0,0,0,0,0,0,0,0,-295, + -509,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-381,-538,0,0,-275,0,0,0,0, + 0,-384,-541,0,0,-276,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-410,0,-243,0,0, - -382,0,0,0,-1,0,0,0,0,0, - 0,0,0,0,0,0,0,-319,0,0, + 0,0,0,0,0,-382,0,-244,0,0, + -435,0,0,0,-1,0,0,0,0,0, + 0,0,0,0,0,0,0,-320,0,0, 0,0,0,0,0,0,0,0,0,-36, 0,0,0,0,-44,0,0,0,0,0, - 0,0,0,0,0,0,0,-518,0,0, - 0,0,0,0,0,0,0,0,-156,0, - 0,0,0,0,-325,-442,-335,-428,0,0, - 0,0,0,0,-504,0,0,0,0,0, + 0,0,0,0,0,0,0,-521,0,0, + 0,0,0,0,0,0,0,0,-157,0, + 0,0,0,0,-326,-445,-336,-376,0,0, + 0,0,0,0,-507,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-431,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, - -247,0,0,0,0,0,0,0,0,0, + -248,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-515,0,0,-248,0,0,0,-429, + 0,0,0,0,0,-249,0,0,0,-392, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,-85,0,0, 0,0,-112,0,0,0,0,0,0,0, - 0,0,0,0,0,-531,0,0,0,0, - -158,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-496,0,0,0,0,0,0,0, - 0,-45,0,0,0,0,-433,0,0,-339, - 0,0,0,0,-123,0,0,-443,0,-378, - 0,0,0,0,0,0,0,-398,0,0, - 0,0,0,0,0,0,0,-66,0,0, - 0,0,-283,0,0,0,0,0,0,-444, - 0,0,0,0,-412,-441,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-440, - 0,0,0,0,-125,0,0,0,0,0, - 0,0,0,-450,-458,0,0,0,0,0, - 0,0,0,0,0,0,0,-460,0,0, - 0,0,-391,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-523,0, - 0,0,0,0,0,0,0,0,0,0, - -231,0,0,0,-462,0,-464,-445,0,0, - -474,0,0,-475,0,0,-476,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -477,0,0,0,0,0,0,0,0,0, - -249,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-250,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-478,0,-251,0, - 0,0,-490,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -482,0,-492,-507,0,-528,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-518,0,0,0,0, -159,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-160,0,0,0,0,0,0,0, + 0,0,-430,0,0,0,0,0,0,0, + 0,-45,0,0,0,-431,-433,0,0,-340, + 0,0,0,0,-124,0,0,-446,0,-379, + 0,0,0,0,0,0,0,-400,0,0, + 0,0,0,0,0,0,0,-66,0,0, + 0,0,-284,0,0,0,0,0,0,-447, + 0,0,0,0,-414,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-436, + 0,0,0,0,-126,0,0,0,0,0, + 0,0,0,-443,-444,0,0,0,0,0, + 0,0,0,0,0,0,0,-453,0,0, + 0,0,-393,0,0,0,0,0,0,0, + 0,0,0,0,0,-461,0,0,-499,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,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,-163,0, + -232,0,0,0,-465,0,-463,-448,0,0, + -467,0,-477,-478,-485,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -164,0,0,0,0,0,0,0,0,0, + -479,0,0,0,0,0,0,0,-534,0, + -250,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-165,0,0,0,0,0,0,0, + 0,0,0,0,-251,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-236,0,0,0,0,0, + 0,0,0,0,0,0,-480,0,-252,0, + 0,0,-481,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-245,0,0,0, + -495,0,-510,-531,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-246,0, + -160,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-161,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-162,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-163,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-164,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, + -165,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-408,0,0,0,-491,0,0,0, + 0,0,-166,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-8,-425,0,-509,0,0, - -473,0,0,0,-510,-122,-11,-479,0,0, - 0,0,0,0,0,0,0,0,-524,-530, - 0,0,-534,0,0,0,0,0,0,0, - 0,0,0,0,0,-522,0,0,0,0, + 0,0,0,0,-237,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-246,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-247,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-480,-82,0,-508,0,0,0, - 0,0,0,0,0,0,-533,0,0,0, - 0,0,0,0,0,0,0,0,-535,0, - 0,0,0,0,-485,0,0,0,0,0, - 0,0,0,-387,0,-83,0,0,0,0, + -327,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-297,0,0,0,0,0,0,0, + 0,0,-410,0,0,0,-493,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-8,-427,0,-494,0,0, + -476,0,0,0,-512,-123,-11,-482,0,0, + 0,0,0,-526,0,0,0,0,-513,0, + 0,0,-537,0,0,0,0,0,0,0, + 0,0,0,0,0,-525,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-483,-82,0,-511,0,0,0, + 0,0,0,0,0,0,-527,0,0,0, + 0,0,0,0,0,0,0,0,-533,-536, + 0,0,0,0,-488,0,0,-538,0,0, + 0,0,0,-389,0,-83,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-298,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-406,0,0,0,0,0,0,0,0, + 0,-408,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-486,0,0, + 0,0,0,0,0,0,0,-489,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,-108, 0,0,0,0,0,0,0,0,0,0, - 0,0,-459,0,0,0,0,0,0,0, + 0,0,-462,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,-23,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-229,0,0,0,0,-413,0,0, + 0,0,-230,0,0,0,0,-415,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,-91,0,0,0,0,0, 0,0,0,-96,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-136, + 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,0,0,0,0, - 0,0,-230,0,-137,0,0,0,0,0, + 0,0,-231,0,-138,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,-6,0,0,0,0,0,0,0,0, - 0,0,0,0,-388,0,0,0,0,0, - 0,0,0,-99,0,0,0,0,0,-126, - 0,0,0,0,-513,-498,0,0,0,0, - 0,-186,0,0,0,-331,0,0,0,0, + 0,0,0,0,-390,0,0,0,0,0, + 0,0,0,-99,0,0,0,0,0,-127, + 0,0,0,0,-516,-501,0,0,0,0, + 0,-187,0,0,0,-332,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -337,0,0,0,0,0,-461,0,0,0, - 0,0,0,0,0,-397,0,0,0,-436, + -338,0,0,0,0,0,-464,0,0,0, + 0,0,0,0,0,-399,0,0,0,-439, 0,0,0,0,0,0,0,0,0,0, - -471,0,0,0,0,0,0,-472,0,0, + -474,0,0,0,0,0,0,-475,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-155,0,0,0, - 0,-226,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-239,0,0,0,0, + 0,0,0,0,0,0,-156,0,0,0, + 0,-227,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-240,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-423, - 0,0,0,0,-424,0,0,0,0,-427, - 0,0,0,0,0,-525,0,0,-389,0, - 0,0,0,-409,-539,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-425, + 0,0,0,0,-426,0,0,0,0,-429, + 0,0,0,0,0,-528,0,0,-391,0, + 0,0,0,-411,-542,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -617,7 +617,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 28,1180,2262,3167,35,798,32,232,3619,27, 30,31,720,670,26,28,1534,25,23,50, 1549,106,76,77,108,675,1583,1592,1584,1669, - 1627,2040,235,230,231,1018,35,1315,1542,588, + 1627,2022,235,230,231,1018,35,1315,1542,588, 35,664,388,274,297,1428,1375,319,1321,321, 2311,314,856,1349,2928,667,155,35,453,1349, 3595,4722,242,245,248,251,1174,2849,352,49, @@ -649,12 +649,12 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 2122,1712,2136,1706,1142,1713,1714,143,312,390, 427,517,144,1914,667,3028,988,1136,4786,4604, 588,35,664,388,182,518,324,214,513,868, - 160,2928,61,1721,35,798,32,588,3628,41, - 30,31,720,670,3556,1782,438,1492,1721,343, + 160,2928,61,1721,35,798,32,588,3763,41, + 30,31,720,670,3654,1782,438,1492,1721,343, 2720,35,798,32,452,3619,27,30,31,720, 670,26,28,1534,25,23,50,1549,106,76, 77,108,3028,1583,1592,1584,1669,1627,1671,1670, - 59,1712,1893,1706,514,1713,1714,143,288,1613, + 59,1712,1911,1706,514,1713,1714,143,288,1613, 3126,379,144,2446,35,798,32,3625,3619,27, 30,31,720,670,26,28,1534,25,23,50, 1549,106,76,77,108,3197,1583,1592,1584,1669, @@ -691,7 +691,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 798,32,421,3619,27,30,31,720,670,26, 28,1534,25,23,50,1549,106,76,77,108, 372,1583,1592,1584,1669,1627,1671,1670,2299,1712, - 1787,1706,625,1713,1714,143,1747,1928,523,373, + 1787,1706,625,1713,1714,143,1747,1885,523,373, 144,2860,35,798,32,1866,3619,27,30,31, 720,670,26,28,1534,25,23,50,1549,106, 76,77,108,1866,1583,1592,1584,1669,1627,1671, @@ -699,7 +699,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 371,2586,35,798,32,2458,3619,27,30,31, 720,670,26,28,1534,25,23,50,1549,106, 76,77,108,867,1583,1592,1584,1669,1627,1671, - 1670,1603,1712,1231,1706,2444,1713,1714,143,3654, + 1670,1603,1712,1231,1706,2444,1713,1714,143,3777, 2350,675,142,144,327,369,588,35,2819,2918, 35,798,32,2058,3619,27,30,31,720,670, 26,28,1534,25,23,50,1549,106,76,77, @@ -709,7 +709,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 31,720,670,26,28,1534,25,23,50,1549, 106,76,77,108,300,1583,1592,1584,1669,1627, 1671,1670,214,1712,2009,1706,744,1713,1714,143, - 588,2757,1097,154,144,2918,35,798,32,2512, + 588,2723,1097,154,144,2918,35,798,32,2512, 3619,27,30,31,720,670,26,28,1534,25, 23,50,1549,106,76,77,108,300,1583,1592, 1584,1669,1627,1671,1670,214,1712,354,1706,824, @@ -722,9 +722,9 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 720,670,26,28,1534,25,23,50,1549,106, 76,77,108,2438,1583,1592,1584,1669,1627,1671, 1670,214,1712,403,1706,4316,1713,1714,143,1252, - 65,231,151,144,2918,35,798,32,3127,3619, + 65,231,151,144,2918,35,798,32,3203,3619, 27,30,31,720,670,26,28,1534,25,23, - 50,1549,106,76,77,108,3203,1583,1592,1584, + 50,1549,106,76,77,108,3288,1583,1592,1584, 1669,1627,1671,1670,214,1712,833,1706,3785,1713, 1714,143,1745,317,1255,150,144,2918,35,798, 32,1952,3619,27,30,31,720,670,26,28, @@ -743,24 +743,24 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 2295,3619,27,30,31,720,670,26,28,1534, 25,23,50,1549,106,76,77,108,1942,1583, 1592,1584,1669,1627,1671,1670,2306,1712,2371,1706, - 303,1713,1714,143,2416,1534,1955,146,144,2918, - 35,798,32,2441,3619,27,30,31,720,670, + 303,1713,1714,143,2416,1231,1534,146,144,2918, + 35,798,32,1955,3619,27,30,31,720,670, 26,28,1534,25,23,50,1549,106,76,77, - 108,2491,1583,1592,1584,1669,1627,1671,1670,214, - 1712,2504,1706,2818,1713,1714,143,2510,1231,2511, + 108,2441,1583,1592,1584,1669,1627,1671,1670,2491, + 1712,2504,1706,302,1713,1714,143,2510,1231,2511, 145,144,2918,35,798,32,3459,3619,27,30, 31,720,670,26,28,1534,25,23,50,1549, 106,76,77,108,3385,1583,1592,1584,1669,1627, - 1671,1670,581,1712,753,1706,302,1713,1714,143, - 1234,1231,1653,159,144,2918,35,798,32,1755, + 1671,1670,581,1712,753,1706,299,1713,1714,143, + 1234,2183,1653,159,144,2918,35,798,32,1755, 3619,27,30,31,720,670,26,28,1534,25, 23,50,1549,106,76,77,108,1377,1583,1592, - 1584,1669,1627,1671,1670,1828,1712,1958,1706,299, - 1713,1714,143,2020,2183,2175,140,144,3046,35, - 798,32,2179,3619,27,30,31,720,670,26, + 1584,1669,1627,1671,1670,1828,1712,1958,1706,404, + 1713,1714,143,2020,2175,2179,140,144,3046,35, + 798,32,489,3619,27,30,31,720,670,26, 28,1534,25,23,50,1549,106,76,77,108, - 489,1583,1592,1584,1669,1627,1671,1670,1349,1712, - 2118,1706,404,1713,1714,143,42,2124,1349,189, + 2118,1583,1592,1584,1669,1627,1671,1670,1349,1712, + 2124,1706,667,1713,1714,143,42,3901,1349,189, 144,3167,35,798,32,1231,3619,27,30,31, 720,670,26,28,1534,25,23,50,1549,106, 76,77,108,1103,1583,1592,1584,1669,1627,1671, @@ -769,7 +769,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 26,28,1534,25,23,50,1549,106,76,77, 108,2876,1583,1592,1584,1669,1627,1671,1670,1224, 1712,459,1706,3429,1713,1756,164,1924,35,798, - 32,326,2435,1971,30,31,720,670,2225,3167, + 32,326,2435,1928,30,31,720,670,2225,3167, 35,798,32,292,3619,27,30,31,720,670, 26,28,1534,25,23,50,1549,106,76,77, 108,522,1583,1592,1584,1669,1627,1671,1670,214, @@ -777,60 +777,60 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 32,2706,3619,27,30,31,720,670,26,28, 1534,25,23,50,1549,106,76,77,108,3825, 1583,1592,1584,1669,1627,1671,1670,926,1712,2516, - 1706,3312,1713,1756,164,1924,35,798,32,2468, + 1706,3363,1713,1756,164,1924,35,798,32,2468, 1943,40,30,31,720,670,1272,3225,35,798, 32,422,3619,27,30,31,720,670,26,28, 1534,25,23,50,1549,106,76,77,108,386, - 1583,1592,1584,1669,1627,1671,1670,214,1712,2283, + 1583,1592,1584,1669,1627,1671,1670,214,1712,2470, 1706,807,1713,1756,164,3167,35,798,32,425, 3619,27,30,31,720,670,26,28,1534,25, 23,50,1549,106,76,77,108,304,1583,1592, - 1584,1669,1627,1671,1670,2470,1712,402,2219,1443, - 35,798,32,1757,4568,27,30,31,720,670, - 26,28,2507,511,443,3167,35,798,32,3736, + 1584,1669,1627,1671,1670,2507,1712,386,2219,1443, + 35,798,32,329,4568,27,30,31,720,670, + 26,28,87,511,443,3167,35,798,32,3949, 3619,27,30,31,720,670,26,28,1534,25, 23,50,1549,106,76,77,108,2650,1583,1592, - 1584,1669,1627,1671,1670,87,2093,3167,35,798, - 32,2581,3619,27,30,31,720,670,26,28, + 1584,1669,1627,1671,1670,2581,2093,3167,35,798, + 32,3127,3619,27,30,31,720,670,26,28, 1534,25,23,50,1549,106,76,77,108,933, 1583,1592,1584,1669,1627,1671,2142,1734,35,798, 32,3252,3808,27,30,31,720,670,339,28, 1258,35,798,32,3510,3590,27,30,31,720, - 670,339,28,1924,35,798,32,1353,1835,3485, - 30,31,720,670,2608,1480,35,1886,32,3252, - 3808,27,30,31,720,670,339,28,214,2609, - 1231,1080,2379,1746,237,332,319,1321,321,2465, + 670,339,28,1924,35,798,32,1353,1835,3700, + 30,31,720,670,386,1480,35,1893,32,3252, + 3808,27,30,31,720,670,339,28,214,2608, + 2609,1080,2379,1746,237,332,319,1321,321,2465, 314,856,588,35,1270,281,239,933,214,319, 1321,321,2417,314,856,588,35,664,388,313, - 588,35,664,388,1018,35,396,2651,179,1080, + 588,35,664,388,1018,35,396,2651,1757,1080, 352,2610,1876,332,319,1321,321,3199,314,856, 3009,391,427,344,1497,1409,349,2101,1080,49, - 1247,1868,4498,2546,49,232,2101,1141,1035,2259, + 1247,1868,4498,2546,49,232,2101,1141,1035,2424, 306,310,734,1035,2665,2651,1747,35,798,32, 3252,3590,27,30,31,720,670,339,28,1842, 240,230,231,1443,588,35,664,388,322,287, 3167,35,798,32,1078,3619,27,30,31,720, 670,26,28,1534,25,23,50,1549,106,76, - 77,108,232,1583,1592,1584,1669,2050,273,393, + 77,108,232,1583,1592,1584,1669,2040,273,393, 427,3365,1841,2644,2646,319,1321,321,2048,314, 856,2048,2675,2676,1878,366,94,244,230,231, - 417,419,1885,2048,1244,35,798,32,2506,4568, + 417,419,1886,2048,1244,35,798,32,2506,4568, 27,30,31,720,670,59,28,1018,35,396, - 3167,35,798,32,2269,3619,27,30,31,720, + 3167,35,798,32,3311,3619,27,30,31,720, 670,26,28,1534,25,23,50,1549,106,76, - 77,108,340,1583,1592,1584,1669,2057,1506,35, + 77,108,340,1583,1592,1584,1669,2050,1506,35, 798,32,3110,3590,27,30,31,720,670,339, 28,2030,35,798,32,1943,3808,27,30,31, 720,670,339,28,69,1922,3167,35,798,32, 351,3619,27,30,31,720,670,26,28,1534, 25,23,50,1549,106,76,77,108,2677,1583, 1592,1584,1997,588,35,664,388,319,1321,321, - 173,314,856,667,323,1080,2547,356,3901,333, + 173,314,856,386,323,1080,2547,356,2552,333, 319,1321,321,531,317,856,531,1884,352,355, - 2506,1345,296,2552,155,35,453,431,531,4722, + 2506,1345,296,2614,155,35,453,431,531,4722, 2413,344,1497,1409,349,3167,35,798,32,3053, 3619,27,30,31,720,670,26,28,1534,25, - 23,50,1549,106,76,77,108,2614,1583,1592, + 23,50,1549,106,76,77,108,3556,1583,1592, 1584,2005,3167,35,798,32,933,3619,27,30, 31,720,670,26,28,1534,25,23,50,1549, 106,76,77,108,2137,1583,1592,1584,2007,3167, @@ -840,20 +840,20 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 535,1244,35,798,32,497,4568,27,30,31, 720,670,58,28,1428,990,293,70,228,929, 35,664,388,499,35,279,156,635,4472,588, - 35,1270,2811,1,180,2440,867,535,1571,35, + 35,1270,2811,1,180,3339,867,535,1571,35, 1270,276,203,215,4682,202,212,213,214,216, 2094,1922,169,273,1086,228,2101,2273,392,427, 3314,1142,168,156,183,167,170,171,172,173, - 174,180,2440,867,450,1749,1755,1349,2636,203, + 174,180,3339,867,450,1749,1755,1349,2636,203, 215,4682,202,212,213,214,216,156,378,169, - 588,3010,1270,74,2101,200,3700,328,335,168, + 588,3010,1270,74,2101,200,3776,328,335,168, 181,184,167,170,171,172,173,174,3283,35, 664,388,1352,3383,1867,2984,2225,2898,2928,2465, 1326,237,1856,35,798,32,3443,3808,27,30, 31,720,670,339,28,72,2400,1349,3167,35, 798,32,273,3619,27,30,31,720,670,26, 28,1534,25,23,50,1549,106,76,77,108, - 4283,1583,1592,2015,588,35,664,388,1080,2743, + 4283,1583,1592,2014,588,35,664,388,1080,2743, 232,2713,332,2928,232,2853,1080,1388,2101,2101, 333,319,1321,321,42,315,856,42,1739,2686, 2645,343,1428,35,293,235,230,231,49,247, @@ -865,101 +865,101 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 50,1549,86,76,77,2443,2500,2932,3167,3258, 4548,3167,35,798,32,350,3619,27,30,31, 720,670,26,28,1534,25,23,50,1549,106, - 76,77,108,345,1583,1592,2022,535,352,2984, + 76,77,108,345,1583,1592,2015,535,352,2984, 1867,2293,2661,1840,2928,2465,2928,2928,1326,522, 360,344,1497,1409,349,228,214,214,1943,342, - 3148,2457,2400,156,343,2400,2914,1792,1798,2744, - 431,180,2440,867,535,588,35,293,1943,203, - 215,4682,202,212,213,214,216,4023,2359,169, + 3148,2818,2400,156,343,2400,2914,1792,1798,2744, + 431,180,3339,867,535,588,35,293,1943,203, + 215,4682,202,212,213,214,216,4021,2359,169, 2783,2005,228,3298,1080,1253,3009,1567,332,168, - 156,2723,167,170,171,172,173,174,180,2440, + 156,2708,167,170,171,172,173,174,180,3339, 867,44,1739,442,2087,456,203,215,4682,202, 212,213,214,216,517,284,169,2270,535,2742, - 2942,360,4790,214,360,2692,168,2766,178,167, + 2942,360,4790,214,360,2692,168,2457,178,167, 170,171,172,173,174,382,228,3798,1792,1798, - 3826,1792,1798,2225,156,588,35,664,388,232, - 5451,603,180,2440,867,535,1571,35,1270,3039, + 3855,1792,1798,2225,156,588,35,664,388,232, + 5451,603,180,3339,867,535,1571,35,1270,3039, 203,215,4682,202,212,213,214,216,5451,2225, 169,2065,237,228,250,230,231,2465,1602,434, 168,156,176,167,170,171,172,173,174,180, - 2440,867,214,1866,5451,5451,2928,203,215,4682, + 3339,867,214,1866,5451,5451,2928,203,215,4682, 202,212,213,214,216,689,2041,169,214,535, - 2934,214,2056,5451,343,1142,2101,168,2742,177, - 167,170,171,172,173,174,1080,228,1866,4287, - 332,1231,214,867,1592,156,960,3028,351,5451, - 232,156,775,180,2440,867,535,1911,69,376, + 2934,214,2766,5451,343,1142,2101,168,2742,177, + 167,170,171,172,173,174,1080,228,1866,4308, + 332,2283,214,867,1592,156,2056,3028,351,5451, + 232,156,775,180,3339,867,535,1919,69,376, 2957,203,215,4682,202,212,213,214,216,1231, - 88,169,4520,102,228,253,230,231,867,198, + 88,169,4520,102,228,253,230,231,867,402, 5451,168,156,187,167,170,171,172,173,174, - 180,2440,867,214,376,1943,352,3532,203,215, - 4682,202,212,213,214,216,3314,197,169,344, + 180,3339,867,214,376,1943,352,960,203,215, + 4682,202,212,213,214,216,3314,179,169,344, 1497,1409,349,330,35,664,388,3053,168,5451, 3161,167,170,171,172,173,174,2471,35,798, 32,3252,3590,27,30,31,720,670,339,28, 667,1944,5451,334,335,4801,2465,49,588,35, 664,388,5451,1345,861,667,1035,999,535,237, 4808,5451,285,374,2465,588,35,1270,3160,89, - 629,5451,102,214,2090,1329,228,3561,2928,214, + 629,5451,102,214,2090,1329,228,3532,2928,214, 2465,214,433,4414,156,3113,319,1321,321,5451, - 314,856,180,2440,867,1080,2400,5451,3288,333, + 314,856,180,3339,867,1080,2400,5451,3312,333, 203,215,4682,202,212,213,214,216,947,313, 169,5451,535,1080,237,1231,1864,332,5451,2465, 168,352,192,167,170,171,172,173,174,1080, 228,1866,5451,333,346,1497,1409,349,156,5451, - 237,588,35,664,388,2465,180,2440,867,3445, - 306,310,734,406,203,215,4682,202,212,213, + 237,588,35,664,388,2465,180,3339,867,3445, + 306,310,734,198,203,215,4682,202,212,213, 214,216,1592,1033,169,505,214,535,1080,71, - 1142,867,332,3889,168,432,186,167,170,171, + 1142,867,332,4324,168,432,186,167,170,171, 172,173,174,1628,1078,228,214,525,2122,5451, - 2347,1592,1142,156,1080,1670,156,5451,332,2928, - 5451,180,2440,867,3411,2229,503,504,2101,203, + 3561,1592,1142,156,1080,1670,156,5451,332,2928, + 5451,180,3339,867,3411,2229,503,504,2101,203, 215,4682,202,212,213,214,216,228,160,169, 330,35,664,388,3314,760,35,664,388,168, 2942,194,167,170,171,172,173,174,1866,5451, 68,205,215,4682,204,212,213,214,216,1217, 35,664,388,3314,49,2101,214,2101,1231,49, - 1142,330,335,1035,2083,1018,35,396,1035,47, + 1142,3840,335,1035,2083,1018,35,396,1035,47, 206,208,210,294,295,5451,565,2534,867,217, - 207,209,1261,49,214,3780,156,53,3004,87, - 3777,335,1035,2871,524,3914,201,5451,13,5451, + 207,209,1261,49,214,3780,156,53,2347,87, + 330,335,1035,2871,524,3914,197,5451,13,5451, 4317,3167,35,798,32,5451,3619,27,30,31, 720,670,26,28,1534,25,23,50,1549,106, - 76,77,108,1349,1583,1962,3167,35,798,32, + 76,77,108,5451,1583,1962,3167,35,798,32, 1231,3619,27,30,31,720,670,26,28,1534, 25,23,50,1549,106,76,77,108,1878,1583, 1964,5451,2928,1747,35,798,32,3252,3590,27, - 30,31,720,670,339,28,1349,5451,199,539, + 30,31,720,670,339,28,1349,5451,406,539, 228,3167,35,798,32,3205,3619,27,30,31, 720,670,26,28,1534,25,23,50,1549,106, 76,77,85,1231,205,215,4682,204,212,213, - 214,216,1015,35,664,388,97,214,5451,5451, - 2101,2578,319,1321,321,1965,314,856,214,2928, + 214,216,1015,35,664,388,1231,214,5451,5451, + 2101,3004,319,1321,321,1965,314,856,214,2928, 2101,5451,1142,206,208,210,294,295,2101,565, - 5451,4346,217,207,209,313,49,228,330,35, - 664,388,52,2122,5451,1035,47,1142,156,98, - 214,567,451,4317,1142,2101,2101,3917,5451,2137, - 3840,205,215,4682,204,212,213,214,216,5451, - 214,5451,49,160,4311,2052,307,310,734,2928, - 156,1035,722,5451,2101,2101,5451,90,3911,3941, + 5451,201,217,207,209,313,49,228,330,35, + 664,388,52,2122,199,1035,47,1142,156,97, + 214,567,451,4317,1142,2101,5451,3941,5451,2137, + 3854,205,215,4682,204,212,213,214,216,5451, + 214,5451,49,160,2578,2052,307,310,734,2928, + 156,1035,722,5451,214,2101,5451,90,4311,3997, 206,208,210,294,295,2534,565,228,2101,217, - 207,209,5451,1781,35,1886,32,3252,3590,27, - 30,31,720,670,339,28,4021,3285,2230,1231, + 207,209,5451,1781,35,1893,32,3252,3590,27, + 30,31,720,670,339,28,2101,3913,2230,1231, 4317,205,215,4682,204,212,213,214,216,5451, - 3322,588,35,664,388,214,5451,2101,214,3397, - 3790,214,1142,5451,2101,4377,5451,2101,5451,5451, - 206,208,210,294,295,5451,565,222,5451,217, - 207,209,319,1321,321,49,314,856,156,3424, - 5451,2101,5451,5451,1035,592,67,3997,2655,66, + 3915,588,35,664,388,214,5451,2101,214,3397, + 3790,2101,1142,214,2101,214,5451,4377,3285,3023, + 206,208,210,294,295,5451,565,4346,5451,217, + 207,209,319,1321,321,49,314,856,156,3322, + 5451,2101,5451,3424,1035,592,67,4003,2655,1349, 4317,3167,35,798,32,1141,3619,27,30,31, 720,670,26,28,1534,25,23,50,1549,106, - 76,77,108,65,1970,3167,35,798,32,5451, + 76,77,108,66,1970,3167,35,798,32,5451, 3619,27,30,31,720,670,26,28,1534,25, 23,50,1549,106,76,77,108,2101,1972,3167, 35,798,32,2101,3619,27,30,31,720,670, 26,28,1534,25,23,50,1549,106,76,77, - 108,214,1979,2282,214,3023,214,578,2581,64, - 2593,5451,5451,5451,5451,3501,5451,5451,418,419, - 1885,3167,1305,798,1843,5451,3619,27,30,31, + 108,2282,1979,214,214,578,5451,2581,2593,65, + 5451,5451,98,5451,5451,64,5451,5451,418,419, + 1886,3167,1305,798,1843,5451,3619,27,30,31, 720,670,26,28,1534,25,23,50,1549,106, 76,77,84,3167,35,798,32,5451,3619,27, 30,31,720,670,26,28,1534,25,23,50, @@ -986,28 +986,28 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 76,77,107,3167,35,798,32,2101,3619,27, 30,31,720,670,26,28,1534,25,23,50, 1549,106,76,77,105,1791,2273,5451,2101,2928, - 535,1592,5451,5451,5451,2101,2090,1392,2122,3608, - 2928,2928,1142,5451,5451,5451,5451,228,3905,2101, - 2101,5451,5451,1231,5451,5451,156,5451,2400,228, - 55,5451,5451,5451,180,2440,2296,54,160,5451, + 535,1592,5451,5451,5451,2101,2090,1392,2122,3501, + 2928,2928,1142,5451,1231,5451,5451,228,3905,2101, + 5451,5451,5451,1231,5451,5451,156,5451,2400,228, + 3608,5451,5451,5451,180,3339,2296,55,160,5451, 1142,205,215,4682,204,212,213,214,216,5451, - 5451,4333,101,205,215,4682,204,212,213,214, + 5451,54,222,205,215,4682,204,212,213,214, 216,193,195,3314,2122,2139,156,1592,1142,2928, 206,208,210,294,295,162,565,2101,5451,519, - 207,209,206,208,210,294,295,228,565,2196, - 5451,218,207,209,160,214,5451,505,5451,1142, - 4024,335,5451,5451,2268,4308,2226,5451,2928,3533, + 207,209,206,208,210,294,295,228,565,2101, + 2101,218,207,209,160,214,5451,505,2196,1142, + 4023,335,5451,5451,2268,4315,2226,5451,2928,4333, 2928,205,215,4682,204,212,213,214,216,5451, - 5451,529,5451,2313,5451,156,2400,2928,228,3314, - 5451,5451,5451,5451,3693,5451,5451,5451,502,504, + 5451,101,3533,2313,5451,156,2400,2928,228,3314, + 529,5451,5451,5451,3736,5451,5451,5451,502,504, 206,208,210,294,295,228,565,5451,5451,520, 207,209,205,215,4682,204,212,213,214,216, - 5451,4315,588,35,664,388,4026,335,5451,205, + 5451,4329,588,35,664,388,4024,335,5451,205, 215,4682,204,212,213,214,216,4777,196,1800, 5451,206,208,210,294,295,5451,565,1833,5451, 305,207,209,2465,5451,505,49,5451,206,208, 210,294,295,5451,565,1035,736,499,207,209, - 2030,35,798,32,4387,3808,27,30,31,720, + 2030,35,798,32,4400,3808,27,30,31,720, 670,339,28,1747,35,798,32,3252,3590,27, 30,31,720,670,339,28,502,504,3330,35, 664,388,1080,3383,5451,5451,4498,5451,5451,5451, @@ -1019,24 +1019,24 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 232,1035,2871,5451,5451,3050,5451,228,1921,5451, 2402,35,798,32,2425,3590,27,30,31,720, 670,339,28,5451,5451,236,230,231,49,5451, - 96,2014,407,4620,5451,5451,274,1035,47,5451, + 96,1971,407,4620,5451,5451,274,1035,47,5451, 5451,5451,5451,214,5451,1287,5451,2928,403,2928, 2470,1180,5451,5451,5451,243,246,249,252,1174, 408,409,410,294,295,343,565,228,1217,316, 870,321,1561,35,798,32,2387,3590,27,30, 31,720,670,339,28,214,5451,1317,3028,2928, - 5451,2014,407,4620,330,35,664,388,1927,5451, + 5451,1971,407,4620,330,35,664,388,1927,5451, 1177,35,664,388,5451,2122,214,343,5451,1142, 1142,5451,330,35,664,388,2038,35,664,388, 408,409,410,294,295,5451,565,5451,49,5451, 3028,316,870,321,49,160,156,1035,47,5451, - 509,5451,5451,1035,47,4329,49,1317,411,413, + 509,5451,5451,1035,47,4387,49,1317,411,413, 49,573,5451,5451,5451,1035,47,3145,5451,1035, 3158,1015,35,664,388,5451,5451,2543,1033,930, 5451,535,1097,629,5451,4655,330,35,664,388, 330,35,664,388,5451,5451,5451,5451,5451,343, 5451,330,35,664,388,49,5451,156,330,35, - 664,388,4330,5451,1035,3184,188,5451,411,414, + 664,388,4399,5451,1035,3184,188,5451,411,414, 49,5451,4533,5451,49,5451,5451,214,2839,1035, 47,535,214,1035,47,49,535,5451,5451,5451, 1033,5451,49,2693,1035,47,214,3225,5451,343, @@ -1049,11 +1049,11 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 156,343,5451,5451,188,4533,343,343,530,188, 4533,5451,5451,5451,5451,4533,5451,5451,5451,5451, 5451,3028,5451,5451,3028,5451,5451,5451,5451,3028, - 3028,533,5451,5451,507,5451,5451,5451,5451,3854, - 534,5451,5451,5451,5451,5451,5451,3763,5451,5451, + 3028,533,5451,5451,507,5451,5451,5451,5451,3868, + 534,5451,5451,5451,5451,5451,5451,3889,5451,5451, 5451,5451,5451,5451,5451,5451,5451,5451,5451,5451, - 5451,5451,5451,5451,3855,5451,5451,5451,5451,3868, - 5451,5451,5451,5451,3907,5451,5451,5451,5451,5451, + 5451,5451,5451,5451,3886,5451,5451,5451,5451,3907, + 5451,5451,5451,5451,3911,5451,5451,5451,5451,5451, 5451,5451,5451,5451,5451,5451,5451,5451,5451,5451, 5451,5451,5451,5451,5451,5451,5451,5451,5451,5451, 5451,5451,5451,5451,5451,5451,5451,5451,5451,5451, @@ -1063,7 +1063,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 5451,5451,5451,5451,5451,5451,5451,5451,5451,5451, 5451,5451,5451,5451,5451,5451,5451,5451,5451,5451, 5451,5451,5451,5451,5451,5451,5451,5451,5451,5451, - 5451,5451,5451,5451,4399,5451,0,501,4305,0, + 5451,5451,5451,5451,4408,5451,0,501,4305,0, 1,229,0,39,5466,0,39,5465,0,1, 2516,0,943,1,0,39,1,5466,0,39, 1,5465,0,1,2989,0,1,739,0,229, @@ -1082,7 +1082,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 0,1622,318,0,1,444,0,458,649,0, 457,2048,0,35,33,0,47,37,0,229, 220,0,501,1358,0,5489,1,229,0,39, - 1,229,0,229,416,0,1,2703,0,1, + 1,229,0,229,416,0,1,2052,0,1, 5723,0,1,5722,0,1,5721,0,1,5720, 0,1,5719,0,1,5718,0,1,5717,0, 1,5716,0,1,5715,0,1,5714,0,1, @@ -1092,8 +1092,8 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 405,0,229,415,0,2762,126,0,5459,1, 0,331,445,0,5457,1,0,5456,1,0, 2179,91,0,32,34,0,39,739,0,5487, - 45,0,37,45,0,1,229,2322,0,5460, - 229,0,2355,229,0,5489,1,0,39,1, + 45,0,37,45,0,1,229,2305,0,5460, + 229,0,2322,229,0,5489,1,0,39,1, 0,237,910,0,388,32,0,387,29,0, 2762,128,0,2762,127,0,2700,229,0,10, 12,0,1,92,0,8,10,12,0,5466, @@ -1483,15 +1483,15 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 1,5451,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,35,1540, 718,5626,1,557,131,1,1,5462,286,5125, - 5125,5458,283,593,1393,2481,3339,2099,3311,2305, - 3103,2439,947,2424,2877,2361,10,5409,5409,5409, + 5125,5458,283,593,1393,2481,3628,2099,3485,2269, + 3103,2440,947,2439,2877,2355,10,5409,5409,5409, 5409,5409,5409,5409,5409,5409,5409,5409,5409,5409, 5409,5409,5409,5409,5409,5409,5409,5409,5409,5409, 5409,5409,5409,5409,5409,5409,5409,5409,5409,5409, 5409,5409,5409,5409,5409,5409,5409,1794,5409,5409, 5409,5409,5409,5409,5409,5409,5409,5409,5409,5409, 5409,5409,5409,5409,5451,5409,5409,5409,5409,5409, - 3363,5409,5409,5409,5451,5096,5093,5409,5489,2688, + 2703,5409,5409,5409,5451,5096,5093,5409,5489,2688, 5409,5409,5409,5409,5409,5409,5409,5409,5409,5409, 5409,5409,8,5415,5415,5415,5415,5415,5415,5415, 5415,5415,5415,5415,5415,5415,5415,5415,5415,5415, @@ -1509,8 +1509,8 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,137,1540,718,5626, 1,557,115,1,1,5462,2610,2540,3999,5451, - 5214,5211,1393,2481,3339,2099,3311,2305,3103,2439, - 947,2424,2877,2361,5451,5375,5090,5090,5090,5090, + 5214,5211,1393,2481,3628,2099,3485,2269,3103,2440, + 947,2439,2877,2355,5451,5375,5090,5090,5090,5090, 5090,5090,5382,5090,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,5379, 1,1,1,1,1,1,1,1,1,1, @@ -1518,7 +1518,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 1,1,1,1,1,1,1,1,1,1, 1,1,384,1540,718,5626,1,557,5451,1, 1,5462,111,396,3975,3951,2275,387,1393,2481, - 3339,2099,3311,2305,3103,2439,947,2424,2877,2361, + 3628,2099,3485,2269,3103,2440,947,2439,2877,2355, 5451,5375,5090,5090,5090,5090,5090,5090,5382,5090, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,5379,1,1,1,1, @@ -1526,8 +1526,8 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 1,1172,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,130,1540, 718,5626,1,557,5451,1,1,5462,5451,5096, - 5093,4217,5489,4239,1393,2481,3339,2099,3311,2305, - 3103,2439,947,2424,2877,2361,5451,5375,5090,5090, + 5093,4217,5489,4239,1393,2481,3628,2099,3485,2269, + 3103,2440,947,2439,2877,2355,5451,5375,5090,5090, 5090,5090,5090,5090,5382,5090,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,5379,1,1,1,1,1,1,1,1, @@ -1535,16 +1535,16 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,291,1540,718,5626,1,557, 117,1,1,5462,2610,2540,3999,5451,5465,5466, - 1393,2481,3339,2099,3311,2305,3103,2439,947,2424, - 2877,2361,5451,5375,5090,5090,5090,5090,5090,5090, + 1393,2481,3628,2099,3485,2269,3103,2440,947,2439, + 2877,2355,5451,5375,5090,5090,5090,5090,5090,5090, 5382,5090,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,5379,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,2061,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 5451,1540,718,5626,1,557,39,1,1,5462, - 5489,48,3975,3951,448,5466,1393,2481,3339,2099, - 3311,2305,3103,2439,947,2424,2877,2361,5451,5375, + 5489,48,3975,3951,448,5466,1393,2481,3628,2099, + 3485,2269,3103,2440,947,2439,2877,2355,5451,5375, 5090,5090,5090,5090,5090,5090,5382,5090,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,5379,1,1,1,1,1,1, @@ -1552,8 +1552,8 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,646,1540,718,5626, 1,557,116,1,1,5462,5451,387,3999,5451, - 6829,6657,1393,2481,3339,2099,3311,2305,3103,2439, - 947,2424,2877,2361,5451,5375,5090,5090,5090,5090, + 6829,6657,1393,2481,3628,2099,3485,2269,3103,2440, + 947,2439,2877,2355,5451,5375,5090,5090,5090,5090, 5090,5090,5382,5090,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,5379, 1,1,1,1,1,1,1,1,1,1, @@ -1561,7 +1561,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 1,1,1,1,1,1,1,1,1,1, 1,1,135,1540,718,5626,1,557,5451,1, 1,5462,2870,48,3975,3951,5451,5465,1393,2481, - 3339,2099,3311,2305,3103,2439,947,2424,2877,2361, + 3628,2099,3485,2269,3103,2440,947,2439,2877,2355, 5451,5375,5090,5090,5090,5090,5090,5090,5382,5090, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,5379,1,1,1,1, @@ -1569,8 +1569,8 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 1,5465,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,5852,1540, 718,5626,1,557,5451,1,1,5462,5451,5465, - 5466,2325,428,2910,1393,2481,3339,2099,3311,2305, - 3103,2439,947,2424,2877,2361,5451,5375,5090,5090, + 5466,2325,428,2910,1393,2481,3628,2099,3485,2269, + 3103,2440,947,2439,2877,2355,5451,5375,5090,5090, 5090,5090,5090,5090,5382,5090,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,5379,1,1,1,1,1,1,1,1, @@ -1578,16 +1578,16 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,923,1540,718,5626,1,557, 5451,1,1,5462,48,5214,5211,397,5465,5466, - 1393,2481,3339,2099,3311,2305,3103,2439,947,2424, - 2877,2361,5451,5375,5090,5090,5090,5090,5090,5090, + 1393,2481,3628,2099,3485,2269,3103,2440,947,2439, + 2877,2355,5451,5375,5090,5090,5090,5090,5090,5090, 5382,5090,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,5379,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,5451,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 5451,1540,718,5626,1,557,395,1,1,5462, - 388,5451,37,5256,5256,2688,1393,2481,3339,2099, - 3311,2305,3103,2439,947,2424,2877,2361,39,5096, + 388,5451,37,5256,5256,2688,1393,2481,3628,2099, + 3485,2269,3103,2440,947,2439,2877,2355,39,5096, 5093,4827,943,4041,4107,2989,5451,4129,2843,5715, 5713,5722,5721,5717,5718,5716,5719,5720,5723,5714, 5711,5788,5789,5487,5705,5712,5708,5684,5710,5709, @@ -1599,7 +1599,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 1,1,1,1,1,1,229,1,1,1, 1,1,1,1,1,1,5451,5465,5466,1042, 1,5086,5262,444,1,1,1,1,5451,5244, - 5451,1,5244,114,1919,1,5451,5780,5461,439, + 5451,1,5244,114,2307,1,5451,2259,5461,439, 3012,783,5863,5451,5096,5093,224,943,739,5808, 2989,121,416,229,139,5460,5451,367,5109,5105, 2638,5102,739,1,2989,5451,1,5951,5711,5788, @@ -1721,21 +1721,21 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 1506,5451,5472,1491,3054,1499,5460,5473,5471,1403, 420,5467,5468,5469,132,5451,5423,5419,1411,4695, 5451,39,39,593,516,39,5096,5093,4827,943, - 4041,4107,2989,5433,4129,2703,5715,5713,5722,5721, + 4041,4107,2989,5433,4129,2052,5715,5713,5722,5721, 5717,5718,5716,5719,5720,5723,5714,5451,3272,5451, 1,5109,5105,2516,5102,739,5487,2989,309,4563, 4085,4063,4173,4151,4889,5470,5451,3741,1450,1506, 5451,5472,1491,3054,1499,309,5473,5471,1403,2187, 5467,5468,5469,5451,5451,5451,5451,1411,2573,5451, 237,75,5327,5391,3558,136,5458,39,5096,5093, - 4827,943,4041,4107,2989,5324,4129,2703,5715,5713, + 4827,943,4041,4107,2989,5324,4129,2052,5715,5713, 5722,5721,5717,5718,5716,5719,5720,5723,5714,1975, 1,3140,1,4894,4653,426,5451,5451,5513,5514, 191,5451,4085,4063,4173,4151,5451,5470,2574,3741, 1450,1506,3449,5472,1491,3054,1499,191,5473,5471, 1403,2582,5467,5468,5469,3291,5451,2583,3194,1411, 5451,5451,5451,4870,5327,141,5096,5093,4827,943, - 4041,4107,2989,5451,4129,2703,5715,5713,5722,5721, + 4041,4107,2989,5451,4129,2052,5715,5713,5722,5721, 5717,5718,5716,5719,5720,5723,5714,5451,5451,5451, 4875,4306,4880,5451,2325,1087,803,5451,3231,5451, 4085,4063,4173,4151,5451,5470,2991,3741,1450,1506, @@ -1748,10 +1748,10 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 4151,510,5470,5451,3741,1450,1506,3423,5472,1491, 3054,1499,5439,5473,5471,1403,2,5467,5468,5469, 5451,5451,5451,4405,1411,4716,5451,39,39,39, - 5096,5093,4827,943,4041,4107,2989,5324,4129,2703, + 5096,5093,4827,943,4041,4107,2989,5324,4129,2052, 5715,5713,5722,5721,5717,5718,5716,5719,5720,5723, 5714,103,1,5451,4715,2793,4886,5920,5914,2237, - 4003,5918,1,5451,4085,4063,4173,4151,5451,5470, + 4287,5918,1,5451,4085,4063,4173,4151,5451,5470, 2309,3741,1450,1506,37,5472,1491,3054,1499,5451, 5473,5471,1403,5451,5467,5468,5469,5912,5913,5943, 5944,1411,278,5451,5921,5445,5327,5451,5451,5451, @@ -1762,44 +1762,44 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 5933,5946,5451,5451,5915,5916,5939,5940,5937,5938, 5917,5919,5941,5942,5451,5451,5451,5947,5451,5927, 5928,5929,5925,5926,5935,5936,5931,5930,5932,39, - 5096,5093,4827,943,4041,4107,2989,5455,4129,2703, + 5096,5093,4827,943,4041,4107,2989,5455,4129,2052, 5715,5713,5722,5721,5717,5718,5716,5719,5720,5723, 5714,5451,5451,5451,5451,5451,5451,5451,5451,5451, 5451,5451,5451,5451,4085,4063,4173,4151,5451,5470, 5451,3741,1450,1506,5451,5472,1491,3054,1499,5451, 5473,5471,1403,5451,5467,5468,5469,39,5096,5093, - 4827,943,4041,4107,2989,5451,4129,2703,5715,5713, + 4827,943,4041,4107,2989,5451,4129,2052,5715,5713, 5722,5721,5717,5718,5716,5719,5720,5723,5714,5451, 5451,5451,5451,5451,5451,5451,5451,5451,5451,5451, 5451,5451,4085,4063,4173,4151,5451,5470,5451,3741, 1450,1506,5451,5472,1491,3054,1499,5451,5473,5471, 1403,5451,5467,5468,5469,5451,5454,5451,5451,1411, 39,5096,5093,4827,943,4041,4107,2989,5451,4129, - 2703,5715,5713,5722,5721,5717,5718,5716,5719,5720, + 2052,5715,5713,5722,5721,5717,5718,5716,5719,5720, 5723,5714,5451,5451,5451,5451,5451,5451,5451,5451, 5451,5451,5451,5451,5451,4085,4063,4173,4151,5451, 5470,5451,3741,1450,1506,5451,5472,1491,3054,1499, 5451,5473,5471,1403,5451,5467,5468,5469,5451,5451, 5451,5451,5451,5451,2897,39,5096,5093,4827,943, - 4041,4107,2989,5451,4129,2703,5715,5713,5722,5721, + 4041,4107,2989,5451,4129,2052,5715,5713,5722,5721, 5717,5718,5716,5719,5720,5723,5714,5451,5451,5451, 5451,5451,5451,5451,5451,5451,5451,5451,5451,5451, 4085,4063,4173,4151,5451,5470,5451,3741,1450,1506, 5451,5472,1491,3054,1499,5451,5473,5471,1403,5451, 5467,5468,5469,5451,5451,5451,5451,1411,39,5096, - 5093,4846,943,4041,4107,2989,5451,4129,2703,5715, + 5093,4846,943,4041,4107,2989,5451,4129,2052,5715, 5713,5722,5721,5717,5718,5716,5719,5720,5723,5714, 5451,5451,5451,5451,5451,5451,5451,5451,5451,5451, 5451,5451,5451,4085,4063,4173,4151,5451,5470,5451, 3741,1450,1506,5451,5472,1491,3054,1499,5451,5473, 5471,1403,5451,5467,5468,5469,39,5096,5093,4827, - 943,4041,4107,2989,5451,4129,2703,5715,5713,5722, + 943,4041,4107,2989,5451,4129,2052,5715,5713,5722, 5721,5717,5718,5716,5719,5720,5723,5714,5451,5451, 5451,5451,5451,5451,5451,5451,5451,5451,5451,5451, 5451,4085,4063,4173,4151,5451,5470,5451,3741,1450, 1506,5451,5472,1491,3054,1499,5451,5473,5471,1403, 5451,5467,5468,5469,39,5096,5093,4827,943,4041, - 4107,2989,5451,4129,2703,5715,5713,5722,5721,5717, + 4107,2989,5451,4129,2052,5715,5713,5722,5721,5717, 5718,5716,5719,5720,5723,5714,5451,5451,5451,5451, 5451,5451,5451,5451,5451,5451,5451,5451,5451,4085, 4063,4173,4151,5451,5470,5451,3741,1450,1506,5451, @@ -1848,49 +1848,50 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 304,984,984,983,983,983,184,185,1106,881, 288,185,406,550,404,333,401,559,185,337, 333,185,975,406,401,184,410,179,185,146, - 193,179,975,767,337,337,182,450,450,1106, - 649,304,983,820,983,185,881,881,820,185, - 288,1121,399,583,389,1111,288,406,405,406, - 406,333,559,559,185,836,538,934,583,583, - 583,583,184,934,130,232,147,147,147,147, - 147,147,147,147,147,776,782,787,784,791, - 789,796,794,798,797,799,453,800,835,185, - 762,185,401,110,555,185,934,450,814,502, - 547,146,820,401,502,767,836,836,771,547, - 633,621,632,835,583,637,637,820,820,185, - 282,1113,406,406,406,406,185,559,820,564, - 819,182,645,629,628,130,732,732,732,732, - 185,49,547,547,130,894,731,282,130,776, - 281,281,49,146,147,147,147,147,147,147, + 193,179,975,769,767,337,337,182,450,450, + 1106,649,304,983,820,983,185,881,881,820, + 185,288,1121,399,583,389,1111,288,406,405, + 406,406,333,559,559,185,836,538,934,583, + 583,583,583,184,934,130,232,147,147,147, + 147,147,147,147,147,147,776,782,787,784, + 791,789,796,794,798,797,799,453,800,835, + 185,762,185,401,110,555,185,934,450,814, + 502,547,146,820,401,502,767,836,836,771, + 547,633,621,632,835,583,637,637,820,820, + 185,282,1113,406,406,406,406,185,559,820, + 564,819,182,645,629,628,130,732,732,732, + 732,185,49,547,547,130,894,731,282,130, + 776,281,281,49,146,147,147,147,147,147, 147,147,147,147,147,147,147,147,147,147, - 147,147,147,146,146,146,146,146,146,146, - 146,146,146,146,146,147,130,975,764,111, - 184,185,49,569,820,193,767,766,823,146, - 630,630,643,182,3,304,984,304,834,834, - 881,1106,45,147,1121,44,576,406,406,93, - 820,147,185,538,547,647,649,547,547,836, - 836,836,836,333,547,147,585,1051,1051,184, - 232,450,731,146,547,1105,1107,1105,547,450, - 784,784,782,782,782,789,789,789,789,787, - 787,794,791,791,797,796,798,1121,799,764, - 110,1121,147,1121,881,109,934,934,934,111, - 934,185,460,881,881,185,401,547,146,193, - 767,823,146,146,647,621,304,732,732,881, - 1113,147,147,555,759,94,185,547,649,934, - 934,934,934,185,185,185,282,147,732,780, - 504,547,185,1107,282,146,101,934,101,111, - 1121,111,130,130,128,690,130,881,881,892, - 764,819,825,835,93,185,184,184,185,884, - 547,146,146,146,146,934,934,333,1106,547, - 780,182,762,185,1106,3,111,547,179,547, - 128,493,934,547,764,818,192,825,682,185, - 185,185,884,884,547,547,547,547,49,49, - 185,780,781,780,146,504,1109,776,762,547, - 547,1099,111,892,111,881,493,146,111,108, - 818,818,934,637,185,185,830,884,547,547, - 1086,780,49,147,450,1109,401,401,1101,146, - 109,49,881,547,650,834,830,830,781,547, - 450,111,547,881,546,1105,830,111,732 + 147,147,147,147,146,146,146,146,146,146, + 146,146,146,146,146,146,147,130,975,764, + 111,184,185,49,569,820,193,767,767,823, + 146,630,630,643,182,3,304,984,304,834, + 834,881,1106,45,147,1121,44,576,406,406, + 93,820,147,185,538,547,647,649,547,547, + 836,836,836,836,333,547,147,585,1051,1051, + 184,232,450,731,146,547,1105,1107,1105,547, + 450,784,784,782,782,782,789,789,789,789, + 787,787,794,791,791,797,796,798,1121,799, + 764,110,1121,147,1121,881,109,934,934,934, + 111,934,185,460,881,881,185,401,547,146, + 193,767,766,823,146,146,647,621,304,732, + 732,881,1113,147,147,555,759,94,185,547, + 649,934,934,934,934,185,185,185,282,147, + 732,780,504,547,185,1107,282,146,101,934, + 101,111,1121,111,130,130,128,690,130,881, + 881,892,764,819,767,825,835,93,185,184, + 184,185,884,547,146,146,146,146,934,934, + 333,1106,547,780,182,762,185,1106,3,111, + 547,179,547,128,493,934,547,764,818,192, + 825,682,185,185,185,884,884,547,547,547, + 547,49,49,185,780,781,780,146,504,1109, + 776,762,547,547,1099,111,892,111,881,493, + 146,111,108,818,818,934,637,185,185,830, + 884,547,547,1086,780,49,147,450,1109,401, + 401,1101,146,109,49,881,547,650,834,830, + 830,781,547,450,111,547,881,546,1105,830, + 111,732 }; }; public final static char asb[] = Asb.asb; @@ -1974,7 +1975,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 3,10,45,39,50,54,12,21,11,17, 15,16,18,19,14,13,20,26,32,33, 28,31,30,27,23,24,29,34,1,2, - 22,4,0,118,0,62,23,7,24,5, + 22,4,0,118,0,62,23,24,7,5, 1,2,4,74,67,119,105,37,38,64, 3,91,89,6,92,93,35,36,88,87, 58,94,95,96,97,9,98,99,100,68, @@ -2029,49 +2030,50 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 137,228,228,137,213,137,76,192,183,169, 250,16,102,102,12,218,146,137,218,23, 54,16,163,13,196,19,89,179,204,108, - 70,132,33,137,23,23,121,94,94,183, - 174,174,213,58,213,218,169,169,58,204, - 169,12,191,12,31,257,250,102,102,137, - 137,54,137,226,11,12,200,12,12,12, - 12,12,76,12,269,204,72,72,221,72, - 72,72,72,72,72,12,12,12,12,12, - 12,12,12,12,12,12,72,12,12,16, - 12,11,196,57,12,218,12,94,12,123, - 279,72,137,146,12,148,12,12,209,279, - 12,130,12,12,12,125,125,58,58,192, - 40,116,137,137,48,48,16,226,58,12, - 12,121,199,52,52,269,28,28,28,28, - 204,60,279,279,1,72,78,40,269,12, - 42,42,60,160,72,72,72,72,72,72, + 70,132,33,123,123,23,23,121,94,94, + 183,174,174,213,58,213,218,169,169,58, + 204,169,12,191,12,31,257,250,102,102, + 137,137,54,137,226,11,12,200,12,12, + 12,12,12,76,12,269,204,72,72,221, + 72,72,72,72,72,72,12,12,12,12, + 12,12,12,12,12,12,12,72,12,12, + 16,12,11,196,57,12,218,12,94,12, + 123,279,72,137,146,12,137,12,12,209, + 279,12,130,12,12,12,125,125,58,58, + 192,40,116,137,137,48,48,16,226,58, + 12,12,121,199,52,52,269,28,28,28, + 28,204,60,279,279,1,72,78,40,269, + 12,42,42,60,160,72,72,72,72,72, 72,72,72,72,72,72,72,72,72,72, 72,72,72,72,72,72,72,72,72,72, - 72,72,72,72,160,72,23,163,137,142, - 19,11,60,12,58,137,137,148,137,72, - 12,12,129,121,174,174,228,137,12,12, - 169,183,169,72,12,84,12,48,48,63, - 58,72,226,207,279,171,137,279,279,12, - 12,12,12,39,279,72,12,12,12,10, - 204,94,28,108,279,182,204,182,279,94, + 72,72,72,72,72,160,72,23,163,137, + 142,19,11,60,12,58,137,123,148,137, + 72,12,12,129,121,174,174,228,137,12, + 12,169,183,169,72,12,84,12,48,48, + 63,58,72,226,207,279,171,137,279,279, + 12,12,12,12,39,279,72,12,12,12, + 10,204,94,28,108,279,182,204,182,279, + 94,12,12,12,12,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,106, - 156,12,72,12,169,12,12,12,12,157, - 12,226,167,169,169,226,96,279,72,70, - 148,148,72,72,171,177,174,28,28,169, - 132,72,72,12,76,50,218,279,174,12, - 12,12,12,16,11,204,40,72,28,137, - 99,279,204,153,40,72,67,12,12,157, - 12,157,273,273,233,12,273,169,169,12, - 137,58,137,12,80,218,76,76,11,137, - 279,160,160,160,160,12,12,38,16,279, - 114,209,12,225,16,28,157,279,132,279, - 265,137,12,279,106,104,69,127,12,11, - 218,218,148,137,279,279,279,279,60,60, - 16,137,194,12,160,209,154,12,12,279, - 279,137,157,12,157,169,132,160,157,67, - 104,12,12,125,11,11,137,148,279,279, - 12,114,60,72,94,154,96,96,130,72, - 12,238,169,279,277,12,127,137,194,279, - 94,157,279,169,279,182,127,157,28 + 106,156,12,72,12,169,12,12,12,12, + 157,12,226,167,169,169,226,96,279,72, + 70,137,148,148,72,72,171,177,174,28, + 28,169,132,72,72,12,76,50,218,279, + 174,12,12,12,12,16,11,204,40,72, + 28,137,99,279,204,153,40,72,67,12, + 12,157,12,157,273,273,233,12,273,169, + 169,12,137,58,148,137,12,80,218,76, + 76,11,137,279,160,160,160,160,12,12, + 38,16,279,114,209,12,225,16,28,157, + 279,132,279,265,137,12,279,106,104,69, + 127,12,11,218,218,148,137,279,279,279, + 279,60,60,16,137,194,12,160,209,154, + 12,12,279,279,137,157,12,157,169,132, + 160,157,67,104,12,12,125,11,11,137, + 148,279,279,12,114,60,72,94,154,96, + 96,130,72,12,238,169,279,277,12,127, + 137,194,279,94,157,279,169,279,182,127, + 157,28 }; }; public final static char nasb[] = Nasb.nasb; @@ -2162,18 +2164,18 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopePrefix { public final static char scopePrefix[] = { - 159,584,603,308,535,551,562,573,367,266, - 280,302,315,328,42,291,387,425,167,592, - 478,20,51,71,80,85,90,130,195,297, - 321,336,341,144,272,286,506,27,144,377, - 341,611,27,217,245,1,14,61,76,106, - 346,356,360,443,471,500,527,531,621,625, - 629,97,7,97,405,421,434,455,519,232, - 116,116,434,542,558,569,580,207,489,56, - 56,156,222,225,56,240,261,225,225,56, - 364,468,475,156,56,644,110,350,409,449, - 462,56,350,396,177,104,447,633,640,633, - 640,65,415,137,104,104,250 + 159,585,604,309,536,552,563,574,368,267, + 281,303,316,329,42,292,388,426,167,593, + 479,20,51,71,80,85,90,130,195,298, + 322,337,342,144,273,287,507,27,144,378, + 342,612,27,217,246,1,14,61,76,106, + 347,357,361,444,472,501,528,532,622,626, + 630,97,7,97,406,422,435,456,520,116, + 116,232,435,543,559,570,581,207,490,56, + 56,156,222,225,56,241,262,225,225,56, + 365,469,476,156,56,645,110,351,410,450, + 463,56,351,397,177,104,448,634,641,634, + 641,65,416,137,104,104,251 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2181,18 +2183,18 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeSuffix { public final static char scopeSuffix[] = { - 18,5,5,135,5,5,5,5,374,135, - 95,135,135,334,48,277,393,431,173,67, - 484,25,25,25,59,59,95,135,200,135, - 326,326,334,149,277,101,511,38,152,382, - 598,616,32,211,211,5,18,5,59,95, - 326,95,95,135,243,5,5,5,5,5, - 243,642,11,101,374,374,374,459,511,236, - 120,125,438,546,546,546,546,211,493,59, - 59,5,5,228,230,243,5,264,264,230, - 95,5,243,5,504,5,113,353,412,452, - 465,523,514,399,180,95,95,635,635,637, - 637,67,417,139,202,187,252 + 18,5,5,135,5,5,5,5,375,135, + 95,135,135,335,48,278,394,432,173,67, + 485,25,25,25,59,59,95,135,200,135, + 327,327,335,149,278,101,512,38,152,383, + 599,617,32,211,211,5,18,5,59,95, + 327,95,95,135,244,5,5,5,5,5, + 244,643,11,101,375,375,375,460,512,120, + 125,236,439,547,547,547,547,211,494,59, + 59,5,5,228,230,244,5,265,265,230, + 95,5,244,5,505,5,113,354,413,453, + 466,524,515,400,180,95,95,636,636,638, + 638,67,418,139,202,187,253 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2206,8 +2208,8 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 118,118,120,128,53,47,139,133,128,71, 17,17,133,96,59,135,74,171,168,164, 120,182,50,56,143,18,17,17,17,17, - 17,12,115,164,71,70,70,37,139,58, - 130,130,70,17,17,17,17,96,19,172, + 17,12,115,164,71,70,70,37,139,130, + 130,58,70,17,17,17,17,96,19,172, 168,184,94,101,61,80,60,158,82,120, 72,144,143,175,139,16,164,120,104,69, 21,139,139,71,46,164,66,137,44,137, @@ -2225,8 +2227,8 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 1,1,1,71,1,1,4,68,70,25, 1,1,68,73,73,73,118,73,1,25, 1,25,25,71,117,73,73,73,73,73, - 117,1,73,1,73,73,73,72,4,6, - 1,1,73,68,68,68,68,73,3,1, + 117,1,73,1,73,73,73,72,4,1, + 1,6,73,68,68,68,68,73,3,1, 1,73,73,3,1,117,73,1,1,1, 25,73,117,73,5,73,1,41,69,72, 73,1,41,75,74,25,25,4,4,4, @@ -2244,8 +2246,8 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 280,280,280,276,286,284,37,42,276,295, 213,213,42,78,126,4,295,46,21,69, 280,35,286,49,8,213,213,213,213,213, - 213,193,16,69,295,295,295,245,37,86, - 280,280,295,213,213,213,213,78,213,46, + 213,193,16,69,295,295,295,245,37,280, + 280,86,295,213,213,213,213,78,213,46, 21,72,78,80,126,74,126,142,131,280, 295,1,8,40,37,213,69,280,11,295, 214,37,37,295,284,69,24,66,102,66, @@ -2280,48 +2282,48 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 0,202,0,0,214,0,229,126,3,0, 125,0,0,0,0,0,229,126,3,216, 0,223,3,0,212,126,0,207,0,145, - 0,176,166,127,0,10,0,0,0,214, - 64,0,124,0,229,126,3,182,0,182, - 0,2,0,0,125,0,0,0,0,0, - 204,3,0,200,0,225,126,162,40,28, - 0,179,127,59,60,0,195,127,0,128, - 179,127,278,60,0,179,127,278,60,0, - 179,127,69,123,59,0,225,126,162,59, - 0,225,126,162,228,59,0,276,126,162, - 123,305,45,0,276,126,162,305,45,0, - 179,127,275,45,0,134,0,187,179,127, - 275,243,0,135,0,179,127,275,243,0, - 187,166,127,10,0,166,127,10,0,166, - 127,0,93,135,0,268,126,144,0,268, - 126,170,0,161,84,0,300,160,302,303, - 3,81,0,125,170,0,302,303,3,81, - 0,127,0,125,170,0,161,3,75,190, - 80,0,125,127,0,190,80,0,108,2, - 130,125,127,0,226,3,75,0,204,167, - 0,33,168,0,167,0,174,33,168,0, - 226,3,85,0,190,154,226,3,83,0, - 62,170,0,226,3,83,0,125,170,62, - 170,0,301,126,162,0,161,0,214,77, - 0,30,170,0,161,106,158,0,30,168, - 0,177,3,0,125,148,0,219,3,0, - 214,64,265,0,161,64,0,177,3,297, - 66,127,0,125,0,0,0,0,297,66, - 127,0,2,144,125,0,0,0,0,177, - 3,48,0,146,0,125,41,166,127,0, - 31,146,0,93,135,31,146,0,220,179, - 127,0,145,31,146,0,177,3,53,0, - 161,3,53,0,161,3,68,177,58,43, - 0,177,58,43,0,20,2,130,125,0, - 161,3,68,177,58,47,0,177,58,47, - 0,161,3,68,177,58,49,0,177,58, - 49,0,161,3,68,177,58,44,0,177, - 58,44,0,219,3,125,187,166,127,10, - 0,125,187,166,127,10,0,135,2,0, - 125,0,219,3,124,258,166,127,10,0, - 258,166,127,10,0,134,2,0,125,0, - 219,3,135,0,219,3,139,0,161,64, - 139,0,260,0,31,0,31,138,0,165, - 0,133,0,161,3,0 + 0,176,166,127,0,10,0,0,0,0, + 214,64,0,124,0,229,126,3,182,0, + 182,0,2,0,0,125,0,0,0,0, + 0,204,3,0,200,0,225,126,162,40, + 28,0,179,127,59,60,0,195,127,0, + 128,179,127,278,60,0,179,127,278,60, + 0,179,127,69,123,59,0,225,126,162, + 59,0,225,126,162,228,59,0,276,126, + 162,123,305,45,0,276,126,162,305,45, + 0,179,127,275,45,0,134,0,187,179, + 127,275,243,0,135,0,179,127,275,243, + 0,187,166,127,10,0,166,127,10,0, + 166,127,0,93,135,0,268,126,144,0, + 268,126,170,0,161,84,0,300,160,302, + 303,3,81,0,125,170,0,302,303,3, + 81,0,127,0,125,170,0,161,3,75, + 190,80,0,125,127,0,190,80,0,108, + 2,130,125,127,0,226,3,75,0,204, + 167,0,33,168,0,167,0,174,33,168, + 0,226,3,85,0,190,154,226,3,83, + 0,62,170,0,226,3,83,0,125,170, + 62,170,0,301,126,162,0,161,0,214, + 77,0,30,170,0,161,106,158,0,30, + 168,0,177,3,0,125,148,0,219,3, + 0,214,64,265,0,161,64,0,177,3, + 297,66,127,0,125,0,0,0,0,297, + 66,127,0,2,144,125,0,0,0,0, + 177,3,48,0,146,0,125,41,166,127, + 0,31,146,0,93,135,31,146,0,220, + 179,127,0,145,31,146,0,177,3,53, + 0,161,3,53,0,161,3,68,177,58, + 43,0,177,58,43,0,20,2,130,125, + 0,161,3,68,177,58,47,0,177,58, + 47,0,161,3,68,177,58,49,0,177, + 58,49,0,161,3,68,177,58,44,0, + 177,58,44,0,219,3,125,187,166,127, + 10,0,125,187,166,127,10,0,135,2, + 0,125,0,219,3,124,258,166,127,10, + 0,258,166,127,10,0,134,2,0,125, + 0,219,3,135,0,219,3,139,0,161, + 64,139,0,260,0,31,0,31,138,0, + 165,0,133,0,161,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2379,49 +2381,50 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 58,68,126,162,126,162,69,179,179,154, 126,166,232,125,124,127,123,162,127,126, 166,41,4,126,281,72,64,212,127,3, - 69,70,166,6,126,126,126,64,64,187, - 126,126,126,225,126,127,228,128,309,127, - 168,224,59,41,60,170,312,125,124,233, - 233,179,162,126,179,253,167,53,43,47, - 49,44,10,135,3,127,48,42,5,36, - 35,6,9,38,37,139,145,147,146,149, - 148,151,150,155,153,157,62,158,256,187, - 260,187,281,162,293,127,294,214,158,166, - 152,126,162,251,176,126,253,253,212,229, - 230,144,231,295,41,10,39,225,225,179, - 166,126,233,233,126,126,187,126,276,123, - 277,126,3,217,216,3,58,58,58,58, - 127,3,177,161,126,65,66,166,3,125, - 105,119,3,64,89,91,36,35,93,92, - 6,95,94,68,58,87,88,9,97,96, - 99,98,100,116,115,114,113,112,111,110, - 109,108,107,69,106,101,70,4,282,126, - 70,179,3,267,126,162,6,184,154,69, - 223,204,3,126,70,70,68,58,232,232, - 228,187,311,72,289,204,124,126,126,72, - 276,69,70,212,223,126,3,177,161,177, - 177,177,177,166,219,154,135,125,124,10, - 127,64,297,3,177,41,127,41,219,161, - 146,146,145,145,145,148,148,148,148,147, - 147,150,149,149,153,151,155,161,157,126, - 301,79,77,1,161,8,85,83,81,80, - 75,82,84,78,76,59,74,219,70,126, - 126,126,69,69,126,212,126,69,69,128, - 70,72,69,314,224,22,127,229,126,68, - 68,68,68,187,258,127,166,205,3,298, - 167,152,127,179,166,72,283,118,8,72, - 214,72,3,3,3,190,3,123,161,123, - 178,308,221,295,70,127,22,315,179,154, - 229,3,3,3,3,125,124,166,41,177, - 126,126,220,5,41,3,72,226,167,226, - 303,144,75,226,126,189,70,126,68,179, - 127,127,126,154,161,161,161,161,3,3, - 187,154,262,265,64,180,4,123,125,90, - 319,167,154,204,154,302,126,3,154,283, - 189,8,62,39,179,179,221,126,219,219, - 125,126,3,64,161,4,154,154,126,69, - 190,160,268,161,3,232,126,221,262,219, - 214,121,300,154,320,69,126,154,70 + 69,70,166,9,6,126,126,126,64,64, + 187,126,126,126,225,126,127,228,128,309, + 127,168,224,59,41,60,170,312,125,124, + 233,233,179,162,126,179,253,167,53,43, + 47,49,44,10,135,3,127,48,42,5, + 36,35,6,9,38,37,139,145,147,146, + 149,148,151,150,155,153,157,62,158,256, + 187,260,187,281,162,293,127,294,214,158, + 166,152,126,162,251,176,176,253,253,212, + 229,230,144,231,295,41,10,39,225,225, + 179,166,126,233,233,126,126,187,126,276, + 123,277,126,3,217,216,3,58,58,58, + 58,127,3,177,161,126,65,66,166,3, + 125,105,119,3,64,89,91,36,35,93, + 92,6,95,94,68,58,87,88,9,97, + 96,99,98,100,116,115,114,113,112,111, + 110,109,108,107,69,106,101,70,4,282, + 126,70,179,3,267,126,162,6,126,154, + 69,223,204,3,126,70,70,68,58,232, + 232,228,187,311,72,289,204,124,126,126, + 72,276,69,70,212,223,126,3,177,161, + 177,177,177,177,166,219,154,135,125,124, + 10,127,64,297,3,177,41,127,41,219, + 161,146,146,145,145,145,148,148,148,148, + 147,147,150,149,149,153,151,155,161,157, + 126,301,79,77,1,161,8,85,83,81, + 80,75,82,84,78,76,59,74,219,70, + 126,176,184,126,69,69,126,212,126,69, + 69,128,70,72,69,314,224,22,127,229, + 126,68,68,68,68,187,258,127,166,205, + 3,298,167,152,127,179,166,72,283,118, + 8,72,214,72,3,3,3,190,3,123, + 161,123,178,308,126,221,295,70,127,22, + 315,179,154,229,3,3,3,3,125,124, + 166,41,177,126,126,220,5,41,3,72, + 226,167,226,303,144,75,226,126,189,70, + 126,68,179,127,127,126,154,161,161,161, + 161,3,3,187,154,262,265,64,180,4, + 123,125,90,319,167,154,204,154,302,126, + 3,154,283,189,8,62,39,179,179,221, + 126,219,219,125,126,3,64,161,4,154, + 154,126,69,190,160,268,161,3,232,126, + 221,262,219,214,121,300,154,320,69,126, + 154,70 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2695,7 +2698,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 539, + NUM_STATES = 542, NT_OFFSET = 122, LA_STATE_OFFSET = 5985, MAX_LA = 2147483647, diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java index a9eb31e37b5..e402c5602b6 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java @@ -17,20 +17,29 @@ import lpg.lpgjavaruntime.*; import java.util.*; import org.eclipse.cdt.core.dom.ast.*; +import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter; +import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap; import org.eclipse.cdt.core.dom.lrparser.IParser; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.ITokenCollector; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack; +import org.eclipse.cdt.core.parser.IScanner; +import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider; +import org.eclipse.cdt.core.index.IIndex; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; +import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser; import org.eclipse.cdt.core.dom.ast.cpp.*; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPNodeFactory; import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPBuildASTParserAction; import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPSecondaryParserFactory; -public class CPPSizeofExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser< IASTExpression > +public class CPPSizeofExpressionParser extends PrsStream implements RuleAction, ITokenStream, + ITokenCollector, IParser< IASTExpression > + , ISecondaryParser< IASTExpression > { private static ParseTable prs = new CPPSizeofExpressionParserprs(); private FixedBacktrackingParser btParser; @@ -168,7 +177,11 @@ public class CPPSizeofExpressionParser extends PrsStream implements RuleAction , private CPPBuildASTParserAction action; private IASTCompletionNode compNode; -public CPPSizeofExpressionParser() { // constructor + +public CPPSizeofExpressionParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Set options) { + initActions(options); + action.initializeTranslationUnit(scanner, builtinBindingsProvider, index); + CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap); } private void initActions(Set options) { @@ -187,10 +200,9 @@ public void addToken(IToken token) { } -public IASTExpression parse(Set options) { +public IASTExpression parse() { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(options); final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse @@ -233,12 +245,12 @@ public void setTokens(List tokens) { addToken(new Token(null, 0, 0, CPPSizeofExpressionParsersym.TK_EOF_TOKEN)); } -public CPPSizeofExpressionParser(IParserActionTokenProvider parser) { // constructor +public CPPSizeofExpressionParser(ITokenStream parser, Set options) { // constructor for creating secondary parser + initActions(options); tokenMap = new TokenMap(CPPSizeofExpressionParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols()); } - public void ruleAction(int ruleNumber) { switch (ruleNumber) @@ -1409,19 +1421,19 @@ public CPPSizeofExpressionParser(IParserActionTokenProvider parser) { // constr } // - // Rule 326: ptr_operator ::= pointer_hook * cv_qualifier_seq_opt + // Rule 326: ptr_operator ::= pointer_hook * pointer_hook cv_qualifier_seq_opt // case 326: { action. consumePointer(); break; } // - // Rule 327: ptr_operator ::= pointer_hook & + // Rule 327: ptr_operator ::= pointer_hook & pointer_hook // case 327: { action. consumeReferenceOperator(); break; } // - // Rule 328: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * cv_qualifier_seq_opt + // Rule 328: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook cv_qualifier_seq_opt // case 328: { action. consumePointerToMember(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java index dddabe86f92..e9b7896e70f 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java @@ -69,7 +69,7 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 1,1,1,6,5,7,6,1,0,6, 5,6,4,1,3,1,0,1,1,2, 1,1,3,1,3,1,1,1,1,3, - 9,2,2,3,2,4,2,6,0,1, + 9,2,2,3,2,5,3,7,0,1, 2,2,1,0,1,1,1,3,1,2, 1,1,2,3,1,1,1,3,2,1, 2,2,9,8,2,1,3,1,3,1, @@ -93,437 +93,442 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 1,3,1,1,-62,0,0,0,-2,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,-4,0,0, - 0,0,0,-5,0,0,0,0,0,-223, - 0,0,-396,0,0,0,0,-71,0,0, - 0,-261,0,0,0,0,0,0,0,0, - -368,-112,-88,0,0,0,0,0,0,0, + 0,0,0,-5,0,0,0,0,0,-224, + 0,0,-399,0,0,0,0,-71,0,0, + 0,-262,0,0,0,0,0,0,0,0, + -6,-112,-88,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-219,0,0,0,0, + 0,0,0,0,0,-7,0,0,0,0, 0,0,0,0,-190,0,0,0,-79,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-10,-286, - -237,0,0,0,0,-72,0,0,0,0, + 0,0,0,0,0,0,0,0,-10,-287, + -238,0,0,0,0,-72,0,0,0,-225, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,-114,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -253,0,0,0,0,0,-49,0,0,0, - 0,-6,0,-531,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-115, + -297,0,0,0,0,0,-49,0,0,0, + 0,-8,0,-534,0,0,0,0,0,0, + 0,0,0,0,0,0,-219,0,0,-115, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-415,0, - 0,0,0,0,-358,0,0,-126,0,0, - 0,0,0,-145,0,-7,0,0,-53,0, - 0,-270,0,0,0,-16,0,0,0,-8, - 0,0,0,0,0,0,-187,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-53,0,0,-126,0,0, + 0,0,0,-342,0,0,0,-9,-65,0, + 0,-271,0,0,0,-16,0,0,0,-11, + 0,0,0,0,0,0,-119,-181,0,0, 0,0,0,-130,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-121,0,0,0,0,0,-9,0, - 0,0,-204,-50,0,0,0,0,0,-146, - 0,0,0,-11,-374,0,0,0,0,0, - 0,0,-65,0,0,-218,0,0,0,0, + 0,0,-121,0,0,0,0,0,-50,0, + 0,0,0,0,0,0,0,0,0,-146, + 0,0,0,-12,0,0,0,0,0,0, + 0,-460,0,0,0,-218,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-136,0, - -400,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-57,0,0,0,0,0, + -64,0,0,0,-145,-51,0,0,0,0, 0,-148,0,0,0,0,0,0,0,0, - 0,0,0,0,-457,0,0,0,-207,0, - 0,0,-354,0,0,0,0,0,-506,0, + 0,0,0,0,-220,-13,0,-128,-207,0, + 0,0,0,0,0,0,0,0,-509,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-221,0,0, + 0,0,0,0,0,0,-257,0,0,0, + 0,-533,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-240,0,0,0, - 0,-530,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-12,0,0,0,0,0, - -379,0,0,0,0,0,-13,0,0,0, - 0,0,0,0,-186,-329,0,0,0,0, + 0,0,0,0,-15,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-54, + 0,0,0,0,-186,-330,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,-188,0, - -462,0,0,0,0,-1,0,0,-256,0, - -15,-437,0,0,0,0,0,0,0,0, + -28,0,0,0,-204,-1,0,0,0,0, + -388,-440,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-42,0,0,0,0,0, + 0,0,0,0,0,0,-29,0,0,0, + 0,0,0,0,-42,-187,0,0,0,-255, -3,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-137, - 0,0,0,0,0,-28,0,0,-177,0, - 0,0,0,-106,0,0,0,-29,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-345,0,0,0, - 0,0,-51,0,0,0,0,0,-30,0, - 0,-274,0,0,0,-54,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-136, + 0,0,0,0,0,0,0,0,-177,0, + 0,0,0,-106,0,0,0,-30,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -57,0,0,0,0,0,-302,0,0,0, - 0,0,0,0,-150,0,0,0,-31,0, + 0,0,-344,0,0,0,0,0,-31,0, + 0,-275,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-137,0,-184,0,0,0, + 0,0,0,0,-150,0,0,0,-32,0, 0,0,0,0,0,0,0,-18,0,0, - 0,-317,0,0,0,0,0,0,0,0, + 0,-318,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-32,0,0,0,0,0, - 0,0,0,0,-119,0,-277,0,0,-340, - 0,0,0,0,-385,-318,0,0,0,-33, + 0,0,0,0,-347,0,0,0,0,0, + 0,0,0,0,-129,0,-278,0,0,-376, + 0,0,0,0,-414,-319,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-411,0, - -278,0,0,-271,0,0,0,0,-39,0, + 0,0,0,0,-296,0,0,0,-494,0, + -33,0,0,-272,0,0,0,0,-39,0, 0,0,-34,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-491,0,-35,0,0,-59,0,0,0, - 0,-373,-41,0,0,0,-60,0,0,0, + 0,-35,0,0,0,0,-59,-391,0,0, + 0,0,-41,0,0,0,-60,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-529,0,-64,0,0, + 0,0,0,0,0,-360,0,0,0,0, + 0,0,0,0,0,-532,0,0,0,0, 0,0,0,0,0,-94,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -184,0,0,0,0,-342,0,0,-95,0, + -198,0,0,0,0,0,0,0,-95,0, 0,0,-107,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-36,0,0,0,0,0,0,0,0, - 0,-535,0,0,0,0,0,0,-361,0, - 0,-96,0,0,0,-37,0,0,0,0, + 0,-36,0,0,0,0,0,-203,0,0, + 0,0,0,-303,0,0,-143,0,0,0, + 0,-96,0,0,0,-113,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-38,0,0,0,0,0, - 0,0,0,0,-40,0,0,0,0,-128, - 0,-55,0,0,-97,0,0,0,-113,0, + 0,0,0,0,-37,0,0,0,0,0, + -229,0,0,0,0,0,0,0,0,0, + 0,-38,0,0,-97,0,0,0,-151,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-198,0,0,0,0,0,-382, - 0,0,0,0,0,0,0,-98,0,0, - 0,-151,0,0,0,0,0,0,0,0, + 0,0,0,-254,0,0,0,0,0,0, + 0,0,-152,0,-364,0,0,-98,0,0, + 0,-196,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -56,0,0,0,0,0,-203,0,0,0, - 0,0,0,0,0,-129,0,-66,0,0, - -99,0,0,0,-196,0,0,0,0,0, + -40,0,0,0,0,0,-267,0,0,0, + 0,0,0,0,0,-194,0,-55,0,0, + -99,0,0,0,-205,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-220, - 0,0,0,0,0,-392,0,0,-143,0, - 0,0,0,-100,0,0,0,-205,0,0, + 0,0,0,-56,0,0,0,0,0,-268, + 0,0,0,0,0,0,0,0,-66,0, + -67,0,0,-100,0,0,0,-233,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-254,0,0,0, - 0,0,-228,0,0,0,0,0,0,0, - 0,-152,0,-67,0,0,-101,0,0,0, - -232,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-69, - 0,0,0,0,0,-266,0,0,0,0, - 0,0,0,0,-194,0,-70,0,0,-102, + 0,0,0,0,0,0,-69,0,0,0, + 0,0,-270,0,0,0,0,0,0,0, + 0,-228,0,-279,0,0,-101,0,0,0, + -240,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-70, + 0,0,0,0,0,-274,0,0,0,0, + 0,0,0,0,-300,0,-108,0,0,-102, + 0,0,0,-291,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-314,0,0,0,0,0,0,0, + 0,0,-109,0,0,0,0,-331,-448,-110, + 0,0,-103,0,0,0,-247,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-354,0,0,0,0, + 0,-286,0,0,0,0,0,-385,0,0, + -332,0,0,0,0,-104,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-386,0, + 0,0,0,0,-111,0,0,0,0,0, + 0,0,0,-131,-200,-401,0,0,-134,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-313,0,0,0,0,0,-267,0, - 0,0,0,0,0,0,0,-108,-445,-109, - 0,0,-103,0,0,0,-239,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-352,0,0,0,0, - 0,-269,0,0,0,0,0,0,0,0, - -227,0,-475,0,0,-104,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-383,0, - 0,0,0,0,-273,0,0,0,0,0, - 0,0,0,-299,-200,-110,0,0,-134,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-285,0,0, + 0,0,0,0,0,0,0,-299,0,0, 0,0,0,0,0,0,-211,0,0,0, - -111,0,0,0,0,0,0,0,0,0, + -138,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-398,0,0,-141,0,0,0,0,0, - 0,0,-185,0,0,0,-524,0,0,0, + 0,-417,0,0,-141,0,0,0,0,0, + 0,0,-185,0,0,0,-527,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-330, - 0,-131,0,0,-471,0,0,0,0,-343, - 0,0,0,-360,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-362, + 0,-139,0,0,-474,0,0,0,0,-345, + 0,0,0,-140,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-138,0,0,0,0,0,-295,0, - 0,0,0,0,0,0,0,-353,0,0, + 0,0,-153,0,0,0,0,0,-304,0, + 0,0,0,0,0,0,0,-355,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-298,0,0,0, - 0,0,0,0,0,-333,0,0,0,-461, - 0,0,0,0,0,0,0,-377,0,0, + 0,0,0,0,0,0,-308,0,0,0, + 0,0,0,0,0,-335,0,0,0,-154, + -371,0,0,0,0,0,-155,-380,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -139,0,0,0,0,0,-303,0,0,0, - 0,0,-414,0,0,-378,0,0,0,0, + -156,0,0,0,0,0,-309,0,0,0, + 0,0,-442,0,0,-381,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-296,0, - 0,0,0,0,-307,0,0,0,0,0, - 0,0,0,-372,0,0,0,-140,-153,0, - 0,0,0,0,-154,-448,0,0,0,0, + 0,0,0,0,0,0,0,0,-265,0, + 0,0,0,0,-320,0,0,0,0,0, + 0,0,0,-375,0,0,0,-464,0,0, + 0,0,0,0,-157,-451,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-439,0, - 0,0,0,0,-308,0,0,0,0,0, - 0,0,0,-93,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-158,0, + 0,0,0,0,-326,0,0,0,0,0, + -418,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,-319,0,0,0,0,0,0,-312, - 0,-362,-123,-408,0,0,0,-393,-290,-428, + 0,0,-159,0,0,0,-58,0,0,0, + -356,0,-160,-411,0,0,0,0,-241,-431, 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,0,0,-92,0,0,0,-155, + 0,0,0,0,0,-92,0,0,0,-161, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-389,0,0,0, + 0,0,0,0,0,0,0,0,-162,0, + 0,0,0,0,-163,0,-392,0,0,0, 0,0,0,0,0,0,0,0,0,-89, - 0,0,0,-210,0,0,0,0,0,0, + 0,0,0,-164,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-156,0,0,0,0,-47,0,0, - 0,0,-135,0,-246,-297,0,-48,-224,-157, - 0,0,-117,0,0,0,0,-158,-159,0, - 0,-375,0,0,-160,0,0,-397,0,0, - 0,-161,0,0,0,0,0,0,0,0, + 0,0,-248,0,0,0,0,-47,0,0, + 0,-165,0,-135,-48,0,-123,0,0,-176, + 0,0,0,0,0,0,0,-166,-167,0, + 0,-378,0,0,0,-333,0,0,0,0, + 0,0,0,0,-430,0,0,-538,0,0, 0,0,-90,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-168,0,0,0,0, + -249,-461,-222,-250,-210,0,0,0,0,0, + 0,0,-235,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-328,0,0,-169,-61,0,0, + 0,0,-170,0,-209,0,0,0,0,0, + 0,-281,0,0,0,0,0,0,0,0, + 0,0,0,0,-223,0,0,0,-193,0, + 0,0,0,0,-403,0,0,0,0,0, + 0,0,0,0,0,-284,0,0,0,0, + -365,-305,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-171,0,-172,0, + 0,0,0,0,-439,0,0,0,0,0, + 0,0,0,0,0,0,0,-173,0,-266, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-237,0,-174,0, + 0,0,0,0,0,0,0,0,-358,-175, + -353,-178,0,0,-337,0,0,-395,0,0, + -179,0,0,-433,0,0,0,-180,-183,0, + -191,0,0,-82,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -83,0,0,0,-192,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-310,0,0,0,0,0,-195, + -116,-232,0,0,0,0,0,0,0,0, + -206,0,0,0,-239,0,0,0,-216,-118, + -217,-298,0,0,0,0,-84,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-85,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-429,0,0,0, + 0,0,-245,0,0,0,0,-264,0,-322, + 0,0,0,-231,0,0,-43,-423,-44,0, + 0,0,0,0,0,0,0,0,0,-339, + 0,-311,0,0,0,0,0,-226,-294,0, + 0,0,0,0,0,-382,0,0,0,0, + 0,0,-449,0,0,0,0,-246,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-234,-14,0,0,0,0,0,0,0, + -295,0,-236,-244,0,0,0,0,0,0, + 0,0,0,-478,0,0,-313,0,0,0, + 0,-253,0,0,0,0,0,0,0,0, + 0,-409,-269,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-526,0,0, + 0,0,0,0,0,0,0,0,0,0, + -258,0,0,-52,0,0,0,-351,0,0, + 0,-120,-325,0,0,0,0,0,0,0, + 0,0,0,0,0,-323,-396,-117,-73,-486, + 0,0,0,0,-341,0,0,0,0,-465, + 0,-127,0,0,0,0,0,0,-260,-261, + 0,0,0,-467,0,0,0,0,0,-276, + 0,0,0,0,-377,0,0,0,0,0, + 0,0,0,0,0,0,0,-361,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-277,0,0,0, + 0,0,-288,-292,0,0,0,0,0,-357, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-293,0,-19, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-86,0,0,0, + -122,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-389, + 0,0,-87,0,0,0,-301,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-458,0,0,-390,0, + 0,0,0,-197,0,-283,-147,0,0,0, + -302,-410,0,-144,0,-529,0,0,0,0, + -321,0,0,0,0,-124,0,-243,0,-142, 0,0,0,0,0,0,0,0,0,0, - 0,-331,-61,-264,0,-118,0,0,-265,0, - 0,0,-234,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-127,0,0,0,-58, - 0,0,0,0,-73,-458,-162,0,0,0, - -327,-280,0,0,0,0,0,0,0,0, - 0,0,0,0,-163,0,-309,0,0,-247, - 0,0,0,0,0,0,0,0,0,0, - -258,0,0,0,0,-310,0,0,0,-248, - -249,0,0,0,0,0,0,0,0,-176, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-164,-120, - 0,0,0,0,0,0,0,0,-304,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-165,-166,0,0,0,0,-82,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-483,0,0,0,0,0,0,-427,0, - 0,0,0,0,0,0,0,0,0,-167, - 0,0,0,0,0,0,0,0,-325,-321, - 0,-335,0,-168,0,0,0,0,0,0, - 0,-169,-170,-171,-83,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-84,0,0,0,-172,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-77,0, - 0,0,-173,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-406,0,0,0,0,0,-438,0,0, - 0,0,0,0,0,0,0,0,0,0, - -441,0,0,-85,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-426,0,0,0, - 0,-197,-351,-174,-175,0,0,0,0,0, - 0,-178,0,0,-179,0,0,0,-193,0, - 0,0,-180,0,0,0,-430,0,0,0, - -183,-191,-407,0,0,0,0,0,-464,0, - 0,0,0,0,0,0,0,0,0,0, - -446,0,-283,-505,0,0,-68,-436,0,0, - 0,0,0,-192,0,0,0,0,0,0, - 0,0,0,0,0,0,-122,-450,-418,0, - 0,0,0,0,-195,0,0,0,0,0, - 0,0,0,0,-349,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-124, - -206,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-523,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-293, - -52,0,0,0,-236,0,-294,-216,0,-324, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-217,0,0,0,0,0,-225,-233, - 0,0,-14,0,0,0,0,-465,0,0, - 0,0,-181,0,0,0,-235,0,0,0, - -142,0,0,0,0,0,0,0,0,-243, + -307,0,0,0,0,0,0,0,0,0, + 0,-481,0,0,0,0,-315,-316,0,-471, 0,0,0,0,0,0,0,0,0,0, - 0,-337,0,0,0,0,-252,0,0,0, - 0,0,-257,0,0,-259,0,0,0,0, - -468,-260,-275,0,0,0,0,-350,0,0, - -518,-276,0,0,0,0,0,-287,-291,0, - 0,0,-222,0,0,0,-292,0,0,0, - 0,0,-231,0,0,0,-19,0,0,0, + -317,0,0,0,0,-413,-524,-416,-133,0, + 0,0,-425,0,-428,0,0,0,0,0, + 0,0,0,0,0,-421,0,0,0,0, + 0,0,0,0,0,0,0,-483,0,0, + 0,0,0,0,0,-327,0,0,0,0, + 0,0,0,0,0,0,0,0,-453,-45, + 0,0,0,0,-470,0,0,-346,0,-149, + 0,0,0,0,0,0,0,0,-259,0, + 0,-348,0,0,0,0,-420,0,0,0, + 0,0,0,-500,0,0,0,0,0,0, + 0,-495,0,0,0,0,0,0,0,0, + 0,0,0,0,-462,-366,0,-521,0,0, + 0,0,0,0,-522,0,-369,-227,0,0, + 0,0,0,0,-370,0,0,-282,-384,0, + 0,0,0,0,0,0,0,0,0,-514, + -251,-393,0,0,0,-273,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-504, + 0,0,0,0,0,-463,-242,-466,0,0, + -290,0,0,0,-394,0,0,0,0,0, + -397,0,0,-398,0,0,0,0,0,0, + 0,0,0,0,0,-516,-252,-68,0,0, + 0,0,0,0,0,0,-476,0,0,0, + 0,0,0,0,-404,0,-407,0,0,0, + 0,0,-489,0,0,0,0,0,0,-285, + 0,0,0,0,0,0,0,0,-444,0, 0,0,0,0,0,0,0,0,0,0, + 0,-230,0,0,0,-280,0,0,0,-406, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-86,0,0,0,0,0,0, + -518,0,0,0,0,0,0,0,0,0, + 0,0,0,-412,0,-74,-374,-499,0,0, + 0,0,-352,0,0,0,-46,-520,0,0, + 0,0,-312,0,0,0,-419,0,0,0, + 0,0,0,-426,0,-427,-450,-202,0,0, + 0,0,-452,-334,0,-454,0,-473,0,0, + 0,0,0,0,0,0,0,0,-490,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-322,0,0,-87, - 0,0,0,-459,0,0,0,0,0,0, + 0,0,0,-340,0,0,0,0,-455,-456, + -535,-457,0,0,0,0,0,0,0,0, + 0,0,-468,0,0,0,0,0,0,-459, + -477,-479,-480,0,0,0,0,-350,-482,0, + -469,-487,0,0,0,0,0,0,0,0, + 0,-491,0,0,-497,0,0,0,0,0, + 0,0,0,0,0,0,0,-540,0,0, + -492,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-446,0,-484,-472,0, + 0,0,0,-496,0,-498,0,0,-505,-329, + -513,-506,0,0,0,0,0,0,0,0, + 0,-515,-523,0,0,0,0,0,0,0, + 0,0,0,0,-528,-539,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-455,0,0,-339,0,0,0,0, - -323,0,-355,0,0,0,0,-230,0,0, - -43,0,-300,-359,0,0,0,-301,0,-116, - -133,0,-306,0,0,0,-209,0,0,0, - 0,0,0,0,-320,0,0,0,0,0, - 0,0,0,0,0,0,-478,0,0,-314, - 0,-507,0,0,0,0,-315,0,0,0, - 0,0,0,0,0,0,0,0,-386,0, - -460,0,0,0,0,0,0,0,-149,0, - 0,0,-326,-344,0,0,0,-367,0,0, + 0,0,-77,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -480,0,-346,0,0,0,0,0,0,0, - 0,0,0,-147,0,0,0,0,0,0, - 0,0,0,0,0,-241,-473,0,-417,0, - 0,-363,0,-366,0,-472,0,0,0,0, - 0,0,-226,0,0,0,0,0,0,0, - 0,0,0,0,-497,0,-388,-289,0,0, - 0,-420,0,0,0,0,0,-242,0,0, - 0,0,0,0,0,0,-144,0,0,0, - 0,-486,0,0,0,0,0,-238,0,0, - 0,0,0,0,0,-463,0,-381,0,0, - 0,0,0,0,0,0,0,0,-511,0, - -390,0,0,-391,0,-244,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-466, - 0,0,0,-245,0,0,0,0,-394,0, - -229,0,0,0,-395,-44,0,0,0,0, - 0,0,0,-401,0,0,0,0,0,0, - 0,0,-513,0,0,-356,0,0,0,0, - -403,-387,-409,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-416,-423,0,-424, - 0,0,-447,0,0,-449,0,-451,-452,0, - 0,0,0,-282,0,0,0,0,0,0, - 0,0,0,0,0,0,-453,0,-279,0, - 0,0,-338,0,0,0,0,-521,0,-454, - 0,0,0,0,0,0,0,-515,0,0, + 0,0,0,0,0,0,0,-78,0,0, 0,0,0,0,0,0,0,0,0,0, - -456,0,0,-410,-481,0,0,0,0,-413, - -422,0,0,0,0,0,0,0,-474,-517, - 0,0,0,0,0,-476,-469,0,0,-268, - 0,0,0,0,-425,-467,-470,-45,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-477,-347,0,0,0,0,0,0, - 0,0,-479,0,-487,0,0,0,0,0, - 0,0,0,-498,0,-74,-250,-532,-484,0, - 0,0,0,-488,-495,0,0,0,0,0, - 0,0,0,0,0,-46,0,0,0,0, - 0,-494,0,-503,0,0,0,0,0,0, - 0,0,0,-522,0,0,0,0,0,-384, + 0,0,-80,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-537,0,0,-399,0,-512,-526,-251,0, + 0,0,0,0,0,-81,0,0,0,-402, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-489,0,-493,-520,0, - 0,0,0,0,-525,-536,0,0,0,0, + 0,0,0,0,0,0,0,0,-336,-105, + -445,-212,0,0,0,0,0,-501,-373,-475, + 0,0,0,0,-213,-400,0,0,0,0, + 0,0,0,0,-182,0,0,0,0,0, + 0,0,-517,0,0,-214,-503,-432,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-371,0,0, - 0,0,-272,0,0,0,-316,0,0,0, - 0,0,0,0,0,0,-78,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-80,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-81,0,0,0,0,0, + 0,-507,0,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,-349,0, + 0,0,0,0,0,-438,0,-215,0,0, + 0,0,0,0,0,-359,-508,-447,-363,0, + 0,0,0,0,0,-511,-437,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,-334,0,-105, - -502,0,-492,0,0,-510,-202,-370,0,0, - 0,0,0,-212,0,0,0,0,0,0, - 0,-284,0,0,0,-514,-527,0,0,0, - 0,-500,-213,-214,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-441,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-281,0,0,0,0, + 0,-512,0,0,0,0,0,0,0,0, + 0,0,-20,0,0,0,-530,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -534,0,0,0,-376,0,0,0,0,0, - 0,0,0,0,0,0,0,-182,0,0, - 0,0,0,0,-435,-348,0,0,0,0, - 0,0,0,0,-341,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-504,-508, - 0,-509,-189,0,0,0,-199,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-519,0, + 0,0,0,0,0,0,0,0,-537,-525, + 0,0,-189,0,0,0,-531,-536,0,0, + 0,0,0,-21,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-20,0,0,0,0,0,0,0,0, + -22,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-311,0,0,0,0,0,0, - 0,-21,0,0,0,0,0,0,0,0, + 0,0,-23,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-528,0,0,0,0,0,0, - 0,0,-22,0,0,0,0,0,0,0, + 0,0,0,0,-24,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-23,0,0,0,0,0, + 0,0,0,0,0,0,-25,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-24,0,0,0, + 0,0,0,0,0,0,0,0,-26,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-25,0, 0,0,0,0,0,0,0,0,0,0, + -27,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -26,0,0,0,0,0,0,0,0,0, + 0,0,-63,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-27,0,0,0,0,0,0,0, + 0,0,0,0,-75,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-63,0,0,0,0,0, + 0,0,0,0,0,0,-76,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-75,0,0,0, + 0,0,0,0,0,0,0,0,-132,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-76,0, 0,0,0,0,0,0,0,0,0,0, + -201,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -132,0,0,0,0,0,0,0,0,0, + 0,0,-338,-289,-519,0,0,0,0,0, + 0,0,-367,0,0,0,0,0,0,0, + 0,0,-372,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-201,0,0,0,-533,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-336,-215,0,-288,0,0, - 0,0,0,0,-364,0,-328,0,0,-429, - 0,0,0,0,-369,-332,0,0,0,0, - 0,0,0,0,0,-496,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-415,0,0,0,0, + 0,0,0,0,0,-424,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-412,0,0, - 0,0,0,0,0,-404,0,-421,0,0, - 0,0,-516,0,0,0,0,-442,-357,0, - 0,0,0,0,0,0,0,0,-434,0, + 0,-199,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-305,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-380,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -125,0,0,0,0,0,0,0,0,0, + 0,0,-306,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-343,0,0,0,0,0,0,0, + 0,0,0,0,0,-383,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-402,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-499, + 0,0,0,0,-125,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-221,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -502,0,0,0,0,0,0,0,0,0, + 0,0,0,-324,0,0,0,0,0,-263, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-262,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-365,0,0,0,0,0,0,0,0, - 0,0,0,0,-405,0,0,0,0,0, - 0,-263,0,0,0,0,0,0,0,-419, - 0,0,0,-431,0,0,0,0,0,0, + 0,0,0,0,0,-387,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -432,0,0,0,0,0,0,0,0,0, + -405,0,0,0,0,-368,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-443,0,0,0,0,0, - 0,-501,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-440, - 0,0,0,0,0,-17,0,-482,-444,0, - 0,0,0,0,-208,0,0,0,0,0, - 0,-255,0,0,0,0,0,0,0,0, - 0,0,0,-433,0,0,0,0,0,0, + 0,0,0,0,-408,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-422,0, + 0,0,-434,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-435,0, + 0,0,-443,0,0,0,0,0,0,0, + -17,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-493,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-485, - 0,0,0,0,0,0,0,-490,0,0, + 0,0,0,0,-436,0,0,0,0,0, + 0,0,-485,0,0,0,0,0,0,-208, + 0,0,0,-256,0,0,0,0,0,0, + 0,0,-488,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -540,7 +545,7 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0 + 0,0,0,0 }; }; public final static short baseCheck[] = BaseCheck.baseCheck; @@ -571,7 +576,7 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 55,179,179,70,70,70,103,103,180,180, 71,71,71,181,181,72,72,72,72,72, 73,73,84,84,84,84,84,84,84,84, - 49,49,49,49,49,116,116,114,114,50, + 50,50,50,50,50,116,116,114,114,51, 182,23,23,23,23,23,48,48,87,87, 87,87,87,152,152,147,147,147,147,147, 148,148,148,149,149,149,150,150,150,151, @@ -579,10 +584,10 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 13,13,13,13,13,13,13,13,13,13, 13,98,120,120,120,120,120,120,118,118, 118,153,119,119,183,155,155,154,154,122, - 122,104,79,79,80,81,52,47,156,156, - 53,51,86,86,157,157,146,146,123,124, + 122,104,79,79,80,81,53,47,156,156, + 54,52,86,86,157,157,146,146,123,124, 124,125,76,76,158,158,63,63,63,59, - 59,58,64,64,75,75,57,57,57,54, + 59,58,64,64,75,75,57,57,57,49, 90,90,100,99,99,62,62,60,60,61, 61,45,101,101,101,93,93,93,94,94, 95,95,95,96,96,105,105,105,107,107, @@ -603,493 +608,498 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 173,173,132,132,133,133,133,133,133,133, 3,134,134,131,131,112,112,85,78,74, 161,161,113,113,197,197,197,135,135,126, - 126,198,198,174,174,1119,35,2228,2171,1278, - 3031,27,30,31,1037,1091,26,28,2083,25, - 23,50,1176,104,75,76,106,1188,1982,1269, - 1219,1330,1305,1404,71,1373,1546,1522,271,1565, - 142,1575,141,1243,35,394,156,142,1217,35, - 1025,32,236,3269,27,30,31,1037,1091,57, - 28,2050,1279,3121,35,1025,32,230,1278,27, - 30,31,1037,1091,26,28,874,25,23,50, - 1176,104,75,76,106,1188,135,1269,1219,1330, - 1305,2619,233,228,229,588,35,1754,386,3121, - 35,1025,32,272,1278,27,30,31,1037,1091, - 26,28,874,25,23,50,1176,104,75,76, - 106,2360,240,243,246,249,853,2600,271,69, - 2580,2079,35,275,2428,1315,1860,35,1025,32, - 3057,3269,27,30,31,1037,1091,56,28,1786, - 558,3478,2443,2506,2620,2917,2950,4541,2316,35, - 1025,32,2981,1278,27,30,31,1037,1091,26, - 28,874,25,23,50,1176,104,75,76,106, - 1188,341,1269,1219,1330,1305,1404,61,1373,1546, - 1522,737,1565,273,1575,141,3842,56,1179,515, - 142,688,1267,2503,2344,35,1025,32,1257,4815, - 27,30,31,1037,1091,26,28,1257,509,516, - 2316,35,1025,32,2981,1278,27,30,31,1037, - 1091,26,28,874,25,23,50,1176,104,75, - 76,106,1188,341,1269,1219,1330,1305,1404,2244, - 1373,1546,1522,2209,1565,2580,1575,141,327,35, - 277,515,142,3963,56,2503,2023,1179,1141,1010, - 511,86,1643,3240,100,60,1500,35,1025,32, - 2168,516,41,30,31,1037,1091,2129,1881,2852, - 326,333,2855,1718,2316,35,1025,32,2981,1278, - 27,30,31,1037,1091,26,28,874,25,23, - 50,1176,104,75,76,106,1188,341,1269,1219, - 1330,1305,1404,1229,1373,1546,1522,1743,1565,2493, - 1575,141,511,1868,56,515,142,3316,750,2503, - 2407,35,1025,32,1016,1330,40,30,31,1037, - 1091,2863,496,2121,2855,516,2524,35,1025,32, - 2981,1278,27,30,31,1037,1091,26,28,874, - 25,23,50,1176,104,75,76,106,1188,341, - 1269,1219,1330,1305,1404,921,1373,1546,1522,1873, - 1565,838,1575,141,285,2837,87,515,142,100, - 374,2503,1715,35,1025,32,511,4815,27,30, - 31,1037,1091,59,28,588,3372,516,870,588, - 35,1754,386,588,3240,2904,1823,3247,2855,2659, - 35,1025,32,310,1278,27,30,31,1037,1091, - 26,28,874,25,23,50,1176,104,75,76, - 106,1188,49,1269,1219,1330,1305,1404,180,1373, - 1546,1522,46,1565,351,1575,141,1988,512,3577, - 377,142,2385,35,1025,32,1045,1278,27,30, - 31,1037,1091,26,28,874,25,23,50,1176, - 104,75,76,106,1188,2681,1269,1219,1330,1305, - 1404,2371,1373,1546,1522,372,1565,2682,1575,141, - 91,2013,3577,377,142,69,3121,35,1025,32, - 3333,1278,27,30,31,1037,1091,26,28,874, - 25,23,50,1176,104,75,76,106,1188,1532, - 1269,1219,1330,1305,1404,286,1373,1546,1522,69, - 1565,1330,2925,162,3431,3057,2249,383,2055,2049, - 1141,2683,2591,35,1025,32,870,1278,27,30, - 31,1037,1091,26,28,874,25,23,50,1176, - 104,75,76,106,1188,154,1269,1219,1330,1305, - 1404,921,1373,1546,1522,533,1565,402,1575,141, - 384,2055,3577,377,142,56,3696,660,2064,1141, - 3088,2887,35,1025,32,3989,1278,27,30,31, - 1037,1091,26,28,874,25,23,50,1176,104, - 75,76,106,1188,154,1269,1219,1330,1305,1404, - 1699,1373,1546,1522,1503,1565,2245,1575,141,588, - 35,3003,156,142,3121,35,1025,32,413,1278, - 27,30,31,1037,1091,26,28,874,25,23, - 50,1176,104,75,76,106,1188,2750,1269,1219, - 1330,1305,1404,1599,1373,1546,1522,3210,2714,1445, - 375,2055,2887,35,1025,32,1614,1278,27,30, - 31,1037,1091,26,28,874,25,23,50,1176, - 104,75,76,106,1188,352,1269,1219,1330,1305, - 1404,56,1373,1546,1522,824,1565,69,1575,141, - 539,495,3513,371,142,1715,35,1025,32,64, - 4815,27,30,31,1037,1091,58,28,1976,35, - 1754,386,2887,35,1025,32,558,1278,27,30, - 31,1037,1091,26,28,874,25,23,50,1176, - 104,75,76,106,1188,2284,1269,1219,1330,1305, - 1404,49,1373,1546,1522,1330,1565,2556,1575,141, - 2728,1668,883,371,142,1721,2887,35,1025,32, - 587,1278,27,30,31,1037,1091,26,28,874, - 25,23,50,1176,104,75,76,106,1188,370, - 1269,1219,1330,1305,1404,1491,1373,1546,1522,1721, - 1565,2380,1575,141,588,35,280,371,142,2457, - 35,1025,32,494,1278,27,30,31,1037,1091, - 26,28,874,25,23,50,1176,104,75,76, - 106,1188,322,1269,1219,1330,1305,1404,419,1373, - 1546,1522,1721,1565,1355,1575,141,1614,441,369, - 140,142,2728,2887,35,1025,32,1614,1278,27, - 30,31,1037,1091,26,28,874,25,23,50, - 1176,104,75,76,106,1188,323,1269,1219,1330, - 1305,1404,4281,1373,1546,1522,159,1565,1017,1575, - 141,354,24,367,157,142,2887,35,1025,32, - 529,1278,27,30,31,1037,1091,26,28,874, - 25,23,50,1176,104,75,76,106,1188,875, - 1269,1219,1330,1305,1404,353,1373,1546,1522,445, - 1565,56,1575,141,529,4609,1604,153,142,2887, - 35,1025,32,1614,1278,27,30,31,1037,1091, - 26,28,874,25,23,50,1176,104,75,76, - 106,1188,400,1269,1219,1330,1305,1404,321,1373, - 1546,1522,159,1565,400,1575,141,529,68,2552, - 152,142,2887,35,1025,32,1226,1278,27,30, - 31,1037,1091,26,28,874,25,23,50,1176, - 104,75,76,106,1188,1146,1269,1219,1330,1305, - 1404,3675,1373,1546,1522,1617,1565,404,1575,141, - 1010,445,1625,151,142,2887,35,1025,32,1614, - 1278,27,30,31,1037,1091,26,28,874,25, - 23,50,1176,104,75,76,106,1188,379,1269, - 1219,1330,1305,1404,56,1373,1546,1522,2985,1565, - 2627,1575,141,3367,53,4705,150,142,2887,35, - 1025,32,1614,1278,27,30,31,1037,1091,26, - 28,874,25,23,50,1176,104,75,76,106, - 1188,1627,1269,1219,1330,1305,1404,56,1373,1546, - 1522,997,1565,458,1575,141,1010,52,1174,149, - 142,2887,35,1025,32,1614,1278,27,30,31, - 1037,1091,26,28,874,25,23,50,1176,104, - 75,76,106,1188,378,1269,1219,1330,1305,1404, - 56,1373,1546,1522,721,1565,69,1575,141,1010, - 348,4720,148,142,2887,35,1025,32,1614,1278, - 27,30,31,1037,1091,26,28,874,25,23, - 50,1176,104,75,76,106,1188,322,1269,1219, - 1330,1305,1404,56,1373,1546,1522,802,1565,457, - 1575,141,1010,88,2690,147,142,2887,35,1025, - 32,1614,1278,27,30,31,1037,1091,26,28, - 874,25,23,50,1176,104,75,76,106,1188, - 1323,1269,1219,1330,1305,1404,56,1373,1546,1522, - 2567,1565,4303,1575,141,1010,1915,1441,146,142, - 2887,35,1025,32,387,1278,27,30,31,1037, - 1091,26,28,874,25,23,50,1176,104,75, - 76,106,1188,322,1269,1219,1330,1305,1404,56, - 1373,1546,1522,2586,1565,51,1575,141,160,1088, - 676,145,142,2887,35,1025,32,1614,1278,27, - 30,31,1037,1091,26,28,874,25,23,50, - 1176,104,75,76,106,1188,322,1269,1219,1330, - 1305,1404,56,1373,1546,1522,2310,1565,324,1575, - 141,1330,1958,1964,144,142,2887,35,1025,32, - 282,1278,27,30,31,1037,1091,26,28,874, - 25,23,50,1176,104,75,76,106,1188,314, - 1269,1219,1330,1305,1404,56,1373,1546,1522,3737, - 1565,1872,1575,141,1330,1818,848,143,142,2832, - 35,1025,32,283,1278,27,30,31,1037,1091, - 26,28,874,25,23,50,1176,104,75,76, - 106,1188,520,1269,1219,1330,1305,1404,56,1373, - 1546,1522,2551,1565,2702,2925,162,2887,35,1025, - 32,1167,1278,27,30,31,1037,1091,26,28, - 874,25,23,50,1176,104,75,76,106,1188, - 870,1269,1219,1330,1305,1404,521,1373,1546,1522, - 1883,1565,2552,1575,141,327,35,277,138,142, - 3967,436,325,1243,35,3009,2439,3005,35,1025, - 32,1795,1278,27,30,31,1037,1091,26,28, - 874,25,23,50,1176,104,75,76,106,1188, - 297,1269,1219,1330,1305,1404,49,1373,1546,1522, - 1010,1565,2691,1575,141,1330,1668,3093,187,142, - 3121,35,1025,32,1010,1278,27,30,31,1037, - 1091,26,28,874,25,23,50,1176,104,75, - 76,106,1188,1503,1269,1219,1330,1305,1404,56, - 1373,1546,1522,4346,1565,3698,2925,162,3121,35, - 1025,32,2873,1278,27,30,31,1037,1091,26, - 28,874,25,23,50,1176,104,75,76,106, - 1188,570,1269,1219,1330,1305,1404,56,1373,1546, - 1522,3818,1565,95,2925,162,2407,35,1025,32, - 588,3624,1539,30,31,1037,1091,96,3121,35, - 1025,32,421,1278,27,30,31,1037,1091,26, - 28,874,25,23,50,1176,104,75,76,106, - 1188,3321,1269,1219,1330,1305,1404,1390,1373,1546, - 1522,1320,1565,2552,2925,162,3121,35,1025,32, - 290,1278,27,30,31,1037,1091,26,28,874, - 25,23,50,1176,104,75,76,106,1188,737, - 1269,1219,1330,1305,1404,56,1373,1546,1522,2935, - 1565,219,2925,162,2407,35,1025,32,1453,408, - 2002,30,31,1037,1091,580,3176,35,1025,32, - 420,1278,27,30,31,1037,1091,26,28,874, - 25,23,50,1176,104,75,76,106,1188,2552, - 1269,1219,1330,1305,1404,56,1373,1546,1522,3078, - 1565,2209,2925,162,3121,35,1025,32,423,1278, - 27,30,31,1037,1091,26,28,874,25,23, - 50,1176,104,75,76,106,1188,301,1269,1219, - 1330,1305,1404,56,1373,1546,2712,3456,332,333, - 1643,3240,322,241,588,35,1754,386,322,666, - 588,35,1754,386,3121,35,1025,32,3603,1278, - 27,30,31,1037,1091,26,28,874,25,23, - 50,1176,104,75,76,106,1188,429,1269,1219, - 1330,1305,1404,450,1373,2690,3121,35,1025,32, - 1015,1278,27,30,31,1037,1091,26,28,874, - 25,23,50,1176,104,75,76,106,1188,295, - 1269,1219,1330,1305,1404,294,2704,1518,35,1025, - 32,3936,3594,27,30,31,1037,1091,337,28, - 3121,35,1025,32,1334,1278,27,30,31,1037, - 1091,26,28,874,25,23,50,1176,104,75, - 76,106,1188,1700,1269,1219,1330,2643,588,35, - 1754,386,285,2417,69,1614,2121,2842,1354,2551, - 1787,2871,1141,3347,330,317,1361,319,1223,1385, - 312,1317,327,35,451,1559,237,4575,1243,35, - 394,49,1875,311,1866,3247,1079,158,349,870, - 67,1668,592,3121,35,1025,32,3945,1278,27, - 30,31,1037,1091,26,28,874,25,23,50, - 1176,104,75,76,106,1188,817,1269,1219,1330, - 2644,2136,666,2147,142,230,1225,3211,350,2699, - 304,308,779,1400,35,1025,32,3886,3509,27, - 30,31,1037,1091,337,28,342,1170,919,347, - 238,228,229,2183,1675,1589,929,35,1754,386, - 588,1780,2052,34,3477,1354,2717,1965,1829,1141, - 1141,1988,1888,35,1025,32,3191,3509,27,30, - 31,1037,1091,337,28,2022,3480,2433,230,49, - 1614,317,1361,319,158,154,312,1317,350,1668, - 2872,2129,35,291,198,3605,2433,349,350,3082, - 1614,1614,625,242,228,229,342,1170,919,347, - 588,35,2052,2988,340,66,342,1170,919,347, - 317,1361,319,2215,3073,312,1317,70,2265,1709, - 1240,2127,444,3444,3461,65,64,350,3157,1898, - 35,3293,32,3936,3594,27,30,31,1037,1091, - 337,28,1632,2491,2558,342,1170,919,347,3121, - 35,1025,32,1675,1278,27,30,31,1037,1091, - 26,28,874,25,23,50,1176,104,75,76, - 106,1188,2717,1269,1219,2448,535,388,425,843, - 35,451,230,2871,4575,1924,330,317,1361,319, - 1701,785,312,1317,3088,3821,389,425,364,56, - 2484,154,56,4449,1703,1207,3828,245,228,229, - 178,2918,486,1374,1515,3121,35,1025,32,3945, - 1278,27,30,31,1037,1091,26,28,874,25, - 23,50,1176,104,75,76,106,1188,193,1269, - 1219,2449,3121,35,1025,32,1883,1278,27,30, - 31,1037,1091,26,28,874,25,23,50,1176, - 104,75,76,106,1188,870,1269,1219,2455,3121, - 35,1025,32,2125,1278,27,30,31,1037,1091, - 26,28,874,25,23,50,1176,104,75,76, - 106,1188,69,2229,415,417,3274,4724,1691,35, - 1025,32,3936,3509,27,30,31,1037,1091,337, - 28,588,35,291,3121,35,1025,32,1496,1278, - 27,30,31,1037,1091,26,28,874,25,23, - 50,1176,104,75,76,106,1188,259,1269,1219, - 2462,535,1375,2122,2276,2413,2981,3928,3660,448, - 3444,3461,2306,4782,194,2139,317,1361,319,1983, - 226,312,1317,2347,3928,2513,154,588,35,1754, - 386,1096,2149,69,311,178,2918,921,4741,588, - 35,1754,386,201,213,4692,200,210,211,212, - 214,1,167,1614,1088,535,2871,56,56,330, - 432,1141,1141,166,2453,181,165,168,169,170, - 171,172,431,2871,226,3317,331,1606,2552,69, - 154,305,308,779,4800,49,154,3567,2699,178, - 2918,921,2859,358,350,2433,1417,201,213,4692, - 200,210,211,212,214,1620,167,1761,3010,3027, - 1780,1817,344,1170,919,347,177,166,179,182, - 165,168,169,170,171,172,2070,35,1025,32, - 3886,3509,27,30,31,1037,1091,337,28,230, - 1614,3231,35,1754,386,2234,2536,1614,2418,2981, - 1363,35,1025,32,235,3594,27,30,31,1037, - 1091,337,28,2515,248,228,229,520,2513,2218, - 1250,427,230,2715,271,55,2891,2981,588,35, - 1754,386,54,1773,317,1361,319,2305,3928,312, - 1317,2212,35,1754,386,3388,341,251,228,229, - 2553,350,524,230,2871,391,425,331,317,1361, - 319,430,56,313,1317,3081,3728,1790,1213,342, - 1170,919,347,2271,49,350,2693,525,233,228, - 229,322,2465,1714,1668,1925,358,2871,2433,272, - 331,2615,1906,344,1170,919,347,625,2587,2707, - 2893,3010,3027,588,35,2509,2504,2614,240,243, - 246,249,853,588,35,2052,274,3066,35,1025, - 32,1315,1278,27,30,31,1037,1091,26,28, - 874,25,23,50,1176,85,75,76,2443,2506, - 2620,2917,2950,4541,3121,35,1025,32,302,1278, - 27,30,31,1037,1091,26,28,874,25,23, - 50,1176,104,75,76,106,1188,1614,1269,2547, - 3121,35,1025,32,2552,1278,27,30,31,1037, - 1091,26,28,874,25,23,50,1176,104,75, - 76,106,1188,345,1269,2565,56,535,390,425, - 1412,1375,320,56,521,2981,3928,1325,1947,35, - 275,56,196,2621,1614,2981,226,440,2716,454, - 1607,1607,154,2620,2513,3928,3928,757,35,1754, - 386,178,2918,921,341,588,35,1754,386,201, - 213,4692,200,210,211,212,214,431,167,99, - 2654,535,1243,35,394,2871,2503,2727,330,166, - 271,3619,165,168,169,170,171,172,271,1614, - 226,2552,1838,3733,2871,2871,154,330,330,932, - 35,1754,386,2622,2729,178,2918,921,2129,3404, - 291,2990,358,201,213,4692,200,210,211,212, - 214,517,167,2492,3544,535,1761,3010,3027,195, - 3023,2859,49,166,1351,176,165,168,169,170, - 171,172,1668,2404,226,3040,1607,2552,2127,1614, - 154,3928,2272,338,2731,3217,588,35,291,178, - 2918,921,71,932,35,1754,386,201,213,4692, - 200,210,211,212,214,603,167,2154,2034,535, - 3699,4428,2646,3928,2259,300,2981,166,2440,174, - 165,168,169,170,171,172,49,1785,226,949, - 2871,2981,2552,3348,154,2513,1668,47,1543,35, - 2052,274,1924,178,2918,921,1614,3550,2735,3570, - 341,201,213,4692,200,210,211,212,214,689, - 167,2448,2871,535,2786,3348,588,3089,2052,73, - 199,166,863,175,165,168,169,170,171,172, - 2446,449,226,949,1543,35,2052,3097,154,2068, - 3642,929,35,1754,386,2732,56,178,2918,921, - 2981,42,2951,503,2747,201,213,4692,200,210, - 211,212,214,775,167,527,2234,535,92,341, - 2981,2739,56,2755,49,166,1359,185,165,168, - 169,170,171,172,1668,47,226,2751,2790,2513, - 2791,2503,154,2782,501,502,2789,1364,87,2757, - 94,178,2918,921,2624,44,2951,1840,2981,201, - 213,4692,200,210,211,212,214,2761,167,929, - 35,1754,386,932,35,1754,386,2513,1330,166, - 2763,3705,165,168,169,170,171,172,1952,35, - 1025,32,3936,3509,27,30,31,1037,1091,337, - 28,2765,49,1657,56,56,49,358,4459,535, - 56,56,1668,2700,3935,4448,1668,47,921,2444, - 861,3259,3010,3027,535,3225,2769,1614,341,2224, - 2449,35,278,523,154,56,56,56,56,1839, - 1402,3823,2981,226,186,359,317,1361,319,154, - 4590,312,1317,173,929,35,1754,386,178,2918, - 921,341,376,2792,311,2552,201,213,4692,200, - 210,211,212,214,1614,167,56,1354,947,2788, - 1141,1141,535,2503,2793,1761,166,49,190,165, - 168,169,170,171,172,4044,56,1668,1031,1926, - 2981,226,2552,197,2773,154,158,154,3614,3399, - 3225,304,308,779,1330,1752,178,2918,921,341, - 929,35,1754,386,201,213,4692,200,210,211, - 212,214,1033,167,3847,1330,535,2798,2481,1354, - 296,2503,1141,1141,166,3477,184,165,168,169, - 170,171,172,49,921,226,56,1971,56,2799, - 2894,154,959,1668,47,2110,1337,154,158,522, - 178,2918,921,5399,2980,921,2314,160,201,213, - 4692,200,210,211,212,214,5399,167,2646,5399, - 374,5399,2981,588,35,2052,276,737,166,5399, - 192,165,168,169,170,171,172,3121,35,1025, - 32,2513,1278,27,30,31,1037,1091,26,28, - 874,25,23,50,1176,104,75,76,106,1188, - 5399,2235,3121,35,1025,32,2987,1278,27,30, - 31,1037,1091,26,28,874,25,23,50,1176, - 104,75,76,106,2423,3121,35,1025,32,2209, - 1278,27,30,31,1037,1091,26,28,874,25, - 23,50,1176,104,75,76,106,2440,1562,503, - 56,56,2981,322,1141,3528,2447,56,1823,5399, - 2966,2981,2981,5399,56,3575,3193,333,1141,5399, - 5399,226,588,35,2052,3273,2552,2552,5399,154, - 341,226,1614,56,56,5399,4307,1141,1141,2713, - 500,502,5399,154,203,213,4692,202,210,211, - 212,214,2503,2435,203,213,4692,202,210,211, - 212,214,154,154,3678,220,1607,3453,1847,5399, - 380,3928,2570,2590,5399,204,206,208,292,293, - 3072,3429,215,205,207,204,206,208,292,293, - 3072,2552,215,205,207,2062,35,3293,32,3936, - 3509,27,30,31,1037,1091,337,28,588,35, - 1754,386,2312,5399,4345,1910,1607,5399,5399,2981, - 2871,3928,2318,330,4345,2156,35,1025,32,191, - 3594,27,30,31,1037,1091,337,28,226,1614, - 1614,49,1614,588,35,1754,386,588,35,1754, - 386,1668,616,317,1361,319,2990,5399,312,1317, - 5399,203,213,4692,202,210,211,212,214,1778, - 2871,1207,5399,330,3560,3518,49,3654,5399,2871, - 49,5399,331,317,1361,319,1668,3198,315,1317, - 1668,661,204,206,208,292,293,3072,5399,215, - 205,207,3121,35,1025,32,4525,1278,27,30, - 31,1037,1091,26,28,874,25,23,50,1176, - 104,75,76,84,588,35,2052,279,5399,3071, - 5399,4345,3121,1780,1025,1797,1446,1278,27,30, - 31,1037,1091,26,28,874,25,23,50,1176, - 104,75,76,83,1614,5399,5399,5399,5399,5399, - 416,417,3274,3121,35,1025,32,5399,1278,27, - 30,31,1037,1091,26,28,874,25,23,50, - 1176,104,75,76,82,3121,35,1025,32,3911, - 1278,27,30,31,1037,1091,26,28,874,25, - 23,50,1176,104,75,76,81,3121,35,1025, - 32,5399,1278,27,30,31,1037,1091,26,28, - 874,25,23,50,1176,104,75,76,80,3121, - 35,1025,32,5399,1278,27,30,31,1037,1091, - 26,28,874,25,23,50,1176,104,75,76, - 79,3121,35,1025,32,5399,1278,27,30,31, - 1037,1091,26,28,874,25,23,50,1176,104, - 75,76,78,3121,35,1025,32,5399,1278,27, - 30,31,1037,1091,26,28,874,25,23,50, - 1176,104,75,76,77,2950,35,1025,32,5399, - 1278,27,30,31,1037,1091,26,28,874,25, - 23,50,1176,104,75,76,102,3121,35,1025, - 32,5399,1278,27,30,31,1037,1091,26,28, - 874,25,23,50,1176,104,75,76,108,3121, - 35,1025,32,5399,1278,27,30,31,1037,1091, - 26,28,874,25,23,50,1176,104,75,76, - 107,3121,35,1025,32,5399,1278,27,30,31, - 1037,1091,26,28,874,25,23,50,1176,104, - 75,76,105,3121,35,1025,32,1614,1278,27, - 30,31,1037,1091,26,28,874,25,23,50, - 1176,104,75,76,103,1997,56,5399,56,2981, - 1141,5399,1141,5399,5399,1649,5399,1354,5399,2981, - 1354,1141,3672,5399,1141,1736,737,5399,226,2981, - 5399,5399,5399,5399,5399,154,2775,154,226,5399, - 2981,5399,5399,5399,5399,2591,158,2050,226,158, - 5399,203,213,4692,202,210,211,212,214,341, - 5399,203,213,4692,202,210,211,212,214,5399, - 5399,203,213,4692,202,210,211,212,214,5399, - 5399,3826,204,206,208,292,293,3072,2209,518, - 205,207,204,206,208,292,293,3072,5399,517, - 205,207,204,206,208,292,293,3072,2084,216, - 205,207,2981,5399,3204,5399,2122,3386,2171,5399, - 5399,3660,2981,56,5399,328,333,1141,2647,737, - 5399,226,2981,5399,5399,5399,5399,5399,5399,737, - 5399,226,5399,5399,5399,5399,5399,5399,5399,5399, - 5399,2513,154,5399,203,213,4692,202,210,211, - 212,214,4074,5399,203,213,4692,202,210,211, - 212,214,1691,35,1025,32,3936,3509,27,30, - 31,1037,1091,337,28,204,206,208,292,293, - 3072,2209,303,205,207,204,206,208,292,293, - 3072,2209,497,205,207,2156,35,1025,32,5399, - 3594,27,30,31,1037,1091,337,28,1620,503, - 5399,3280,35,1754,386,5399,2536,5399,3462,333, - 317,1361,319,3962,236,312,1317,5399,3576,333, - 5399,5399,5399,5399,5399,5399,5399,5399,3157,5399, - 5399,5399,5399,5399,271,929,35,1754,386,2871, - 500,502,331,317,1361,319,5399,5399,313,1317, - 1691,35,1025,32,3936,3509,27,30,31,1037, - 1091,337,28,230,428,5399,5399,5399,49,1180, - 5399,5399,5399,2981,4822,5399,5399,5399,1668,47, - 5399,3559,5399,5399,5399,5399,5399,5399,234,228, - 229,2320,226,5399,5399,5399,5399,5399,5399,272, - 5399,5399,5399,5399,5399,5399,5399,5399,317,1361, - 319,5399,5399,312,1317,1089,405,4672,241,244, - 247,250,853,5399,5399,5399,3677,5399,5399,5399, - 5399,1315,1490,35,1025,32,2629,3509,27,30, - 31,1037,1091,337,28,5399,406,407,408,292, - 293,3072,2236,35,1025,32,2387,3509,27,30, - 31,1037,1091,337,28,929,35,1754,386,5399, - 401,3063,1285,5399,5399,5399,2981,4822,5399,5399, - 2151,35,1754,386,929,35,1754,386,5399,5399, - 314,3213,319,5399,5399,226,5399,5399,49,5399, - 5399,929,35,1754,386,5399,5399,5399,1668,47, - 314,3213,319,49,5399,5399,5399,49,1089,405, - 4672,2867,5399,1668,47,5399,5399,1668,47,5399, - 5399,5399,409,411,49,56,2811,5399,5399,2981, - 2879,5399,2722,5399,1668,47,535,5399,5399,406, - 407,408,292,293,3072,5399,1737,3018,341,4712, - 2164,35,1754,386,5399,341,56,5399,56,56, - 535,154,535,2981,3063,588,35,1754,386,5399, - 2503,186,588,35,1754,386,5399,4590,5399,341, - 2177,341,341,49,2208,154,507,154,2981,5399, - 5399,5399,5399,1668,47,1417,5399,186,49,5399, - 2177,2503,5399,4590,2503,49,3326,341,1668,883, - 56,5399,5399,5399,535,1668,2436,1407,56,528, - 505,5399,2981,5399,5399,409,412,5399,5399,2503, - 5399,5399,5399,341,5399,188,5399,5399,5399,154, - 5399,341,5399,5399,5399,531,5399,5399,5399,186, - 5399,5399,5399,5399,5399,4590,5399,5399,5399,5399, - 5399,3852,5399,2503,5399,5399,5399,5399,5399,5399, - 5399,5399,5399,5399,5399,5399,5399,5399,5399,532, - 5399,5399,5399,5399,5399,5399,5399,5399,5399,5399, - 5399,5399,5399,5399,5399,5399,5399,5399,5399,5399, - 5399,5399,5399,5399,5399,5399,5399,5399,5399,5399, - 5399,5399,3846,3959,5399,5399,5399,5399,5399,5399, - 5399,5399,5399,5399,5399,5399,5399,5399,5399,5399, - 5399,5399,5399,5399,5399,5399,5399,5399,5399,5399, - 5399,5399,5399,5399,5399,5399,5399,5399,5399,5399, - 5399,5399,5399,5399,5399,5399,5399,5399,5399,5399, - 5399,5399,5399,5399,5399,5399,5399,5399,5399,5399, - 5399,5399,5399,5399,5399,5399,5399,5399,5399,5399, - 5399,5399,3420,5399,0,39,5414,0,39,5413, - 0,727,29,0,438,864,0,452,1251,0, - 38,2540,0,38,5414,0,38,5413,0,2742, - 124,0,1,442,0,456,1580,0,455,1666, - 0,794,89,0,727,385,0,35,33,0, - 32,34,0,39,2540,0,1,659,0,1, - 5669,0,1,5668,0,1,5667,0,1,5666, - 0,1,5665,0,1,5664,0,1,5663,0, - 1,5662,0,1,5661,0,1,5660,0,1, - 5659,0,39,1,5414,0,39,1,5413,0, - 806,1,0,281,392,0,281,284,0,5631, - 239,0,5630,239,0,5735,239,0,5734,239, - 0,5658,239,0,5657,239,0,5656,239,0, - 5655,239,0,5654,239,0,5653,239,0,5652, - 239,0,5651,239,0,5669,239,0,5668,239, - 0,5667,239,0,5666,239,0,5665,239,0, - 5664,239,0,5663,239,0,5662,239,0,5661, - 239,0,5660,239,0,5659,239,0,39,5414, - 239,0,39,5413,239,0,5437,239,0,5414, - 48,0,5413,48,0,5405,1,0,5404,1, - 0,2438,235,0,32,386,0,29,385,0, - 43,5435,0,43,37,0,2742,126,0,2742, - 125,0,329,443,0,5437,1,0,39,1, - 0,47,37,0,1,90,0,499,3066,0, - 5437,1,227,0,39,1,227,0,227,414, - 0,5414,37,0,5413,37,0,5414,2,37, - 0,5413,2,37,0,5414,36,0,5413,36, - 0,5435,45,0,37,45,0,5409,403,0, - 5408,403,0,1,4492,0,1,3013,0,1, - 2540,0,227,413,0,2303,316,0,329,93, - 0,35,72,0,1,329,0,3617,276,0, - 499,4335,0,1,227,0,227,218,0,227, - 217,0,1,573,0,1,2458,0,5411,1, - 0,5407,1,0,1,227,3486,0,5408,227, - 0,3488,227,0,5411,381,0,5410,381,0, - 3593,227,0,10,12,0,8,10,12,0, - 183,3618,0,3706,381,0,8,12,0 + 126,198,198,174,174,1119,35,2064,2052,1278, + 3210,27,30,31,946,1025,26,28,1971,25, + 23,50,1081,104,75,76,106,1127,1982,1219, + 1188,1361,1269,1402,71,1373,1565,1522,271,1582, + 142,1651,141,1243,35,394,156,142,1217,35, + 874,32,236,3320,27,30,31,946,1025,57, + 28,1267,1279,3121,35,874,32,230,1278,27, + 30,31,946,1025,26,28,810,25,23,50, + 1081,104,75,76,106,1127,2023,1219,1188,1361, + 1269,2404,233,228,229,588,35,1711,386,3121, + 35,874,32,272,1278,27,30,31,946,1025, + 26,28,810,25,23,50,1081,104,75,76, + 106,2147,240,243,246,249,853,2440,271,69, + 2580,2079,35,275,2428,817,1860,35,874,32, + 2551,3320,27,30,31,946,1025,56,28,1657, + 558,3574,2998,2770,2982,3131,3206,4645,2316,35, + 874,32,2974,1278,27,30,31,946,1025,26, + 28,810,25,23,50,1081,104,75,76,106, + 1127,341,1219,1188,1361,1269,1402,61,1373,1565, + 1522,737,1582,273,1651,141,3490,56,1179,515, + 142,688,2168,2538,2344,35,874,32,1534,4900, + 27,30,31,946,1025,26,28,135,509,516, + 2316,35,874,32,2974,1278,27,30,31,946, + 1025,26,28,810,25,23,50,1081,104,75, + 76,106,1127,341,1219,1188,1361,1269,1402,1700, + 1373,1565,1522,3584,1582,1010,1651,141,327,35, + 277,515,142,4103,2728,2538,2932,1179,2493,2121, + 511,86,1643,3237,100,60,1500,35,874,32, + 1016,516,41,30,31,946,1025,1330,1773,2672, + 326,333,2681,3875,2316,35,874,32,2974,1278, + 27,30,31,946,1025,26,28,810,25,23, + 50,1081,104,75,76,106,1127,341,1219,1188, + 1361,1269,1402,1229,1373,1565,1522,1257,1582,56, + 1651,141,511,750,870,515,142,2689,496,2538, + 2407,35,874,32,2681,331,40,30,31,946, + 1025,2688,588,3483,2681,516,2524,35,874,32, + 2974,1278,27,30,31,946,1025,26,28,810, + 25,23,50,1081,104,75,76,106,1127,341, + 1219,1188,1361,1269,1402,56,1373,1565,1522,824, + 1582,1017,1651,141,285,56,1599,515,142,1141, + 2751,2538,1715,35,874,32,511,4900,27,30, + 31,946,1025,59,28,135,2682,516,1010,588, + 35,1711,386,3035,1675,2725,1823,3238,2681,2659, + 35,874,32,445,1278,27,30,31,946,1025, + 26,28,810,25,23,50,1081,104,75,76, + 106,1127,49,1219,1188,1361,1269,1402,135,1373, + 1565,1522,46,1582,327,1651,141,2049,512,3588, + 377,142,2385,35,874,32,1045,1278,27,30, + 31,946,1025,26,28,810,25,23,50,1081, + 104,75,76,106,1127,2683,1219,1188,1361,1269, + 1402,458,1373,1565,1522,402,1582,1614,1651,141, + 1614,2013,3588,377,142,69,3121,35,874,32, + 3378,1278,27,30,31,946,1025,26,28,810, + 25,23,50,1081,104,75,76,106,1127,2468, + 1219,1188,1361,1269,1402,495,1373,1565,1522,69, + 1582,2245,2750,162,3512,1868,2249,383,2055,3427, + 1141,1721,2591,35,874,32,3194,1278,27,30, + 31,946,1025,26,28,810,25,23,50,1081, + 104,75,76,106,1127,154,1219,1188,1361,1269, + 1402,441,1373,1565,1522,533,1582,413,1651,141, + 384,2055,3588,377,142,56,2129,1752,2050,1141, + 322,2887,35,874,32,3375,1278,27,30,31, + 946,1025,26,28,810,25,23,50,1081,104, + 75,76,106,1127,154,1219,1188,1361,1269,1402, + 1873,1373,1565,1522,1503,1582,1571,1651,141,588, + 35,2771,156,142,3121,35,874,32,1445,1278, + 27,30,31,946,1025,26,28,810,25,23, + 50,1081,104,75,76,106,1127,387,1219,1188, + 1361,1269,1402,1604,1373,1565,1522,354,2617,64, + 375,2055,2887,35,874,32,529,1278,27,30, + 31,946,1025,26,28,810,25,23,50,1081, + 104,75,76,106,1127,351,1219,1188,1361,1269, + 1402,400,1373,1565,1522,1699,1582,56,1651,141, + 539,2503,91,371,142,1715,35,874,32,2284, + 4900,27,30,31,946,1025,58,28,1976,35, + 1711,386,2887,35,874,32,558,1278,27,30, + 31,946,1025,26,28,810,25,23,50,1081, + 104,75,76,106,1127,2750,1219,1188,1361,1269, + 1402,49,1373,1565,1522,1010,1582,2556,1651,141, + 2728,1709,799,371,142,1721,2887,35,874,32, + 352,1278,27,30,31,946,1025,26,28,810, + 25,23,50,1081,104,75,76,106,1127,370, + 1219,1188,1361,1269,1402,135,1373,1565,1522,1721, + 1582,587,1651,141,588,35,280,371,142,2457, + 35,874,32,494,1278,27,30,31,946,1025, + 26,28,810,25,23,50,1081,104,75,76, + 106,1127,322,1219,1188,1361,1269,1402,457,1373, + 1565,1522,1355,1582,2456,1651,141,1614,2154,369, + 140,142,4496,2887,35,874,32,1614,1278,27, + 30,31,946,1025,26,28,810,25,23,50, + 1081,104,75,76,106,1127,2580,1219,1188,1361, + 1269,1402,4349,1373,1565,1522,159,1582,3258,1651, + 141,353,24,367,157,142,2887,35,874,32, + 529,1278,27,30,31,946,1025,26,28,810, + 25,23,50,1081,104,75,76,106,1127,3830, + 1219,1188,1361,1269,1402,321,1373,1565,1522,445, + 1582,56,1651,141,529,2657,419,153,142,2887, + 35,874,32,1614,1278,27,30,31,946,1025, + 26,28,810,25,23,50,1081,104,75,76, + 106,1127,400,1219,1188,1361,1269,1402,56,1373, + 1565,1522,2319,1582,69,1651,141,1010,68,3614, + 152,142,2887,35,874,32,1614,1278,27,30, + 31,946,1025,26,28,810,25,23,50,1081, + 104,75,76,106,1127,1226,1219,1188,1361,1269, + 1402,56,1373,1565,1522,802,1582,87,1651,141, + 100,53,1146,151,142,2887,35,874,32,1614, + 1278,27,30,31,946,1025,26,28,810,25, + 23,50,1081,104,75,76,106,1127,379,1219, + 1188,1361,1269,1402,56,1373,1565,1522,721,1582, + 4371,1651,141,1010,52,2552,150,142,2887,35, + 874,32,1614,1278,27,30,31,946,1025,26, + 28,810,25,23,50,1081,104,75,76,106, + 1127,1617,1219,1188,1361,1269,1402,56,1373,1565, + 1522,2744,1582,404,1651,141,1010,348,1625,149, + 142,2887,35,874,32,1614,1278,27,30,31, + 946,1025,26,28,810,25,23,50,1081,104, + 75,76,106,1127,1627,1219,1188,1361,1269,1402, + 56,1373,1565,1522,2862,1582,51,1651,141,1174, + 88,2690,148,142,2887,35,874,32,1614,1278, + 27,30,31,946,1025,26,28,810,25,23, + 50,1081,104,75,76,106,1127,1323,1219,1188, + 1361,1269,1402,56,1373,1565,1522,2927,1582,324, + 1651,141,1330,1786,2380,147,142,2887,35,874, + 32,1614,1278,27,30,31,946,1025,26,28, + 810,25,23,50,1081,104,75,76,106,1127, + 1441,1219,1188,1361,1269,1402,56,1373,1565,1522, + 3251,1582,1743,1651,141,1330,1872,160,146,142, + 2887,35,874,32,666,1278,27,30,31,946, + 1025,26,28,810,25,23,50,1081,104,75, + 76,106,1127,322,1219,1188,1361,1269,1402,323, + 1373,1565,1522,676,1582,2675,1651,141,1010,1088, + 848,145,142,2887,35,874,32,1614,1278,27, + 30,31,946,1025,26,28,810,25,23,50, + 1081,104,75,76,106,1127,322,1219,1188,1361, + 1269,1402,56,1373,1565,1522,2534,1582,2627,1651, + 141,666,67,4805,144,142,2887,35,874,32, + 282,1278,27,30,31,946,1025,26,28,810, + 25,23,50,1081,104,75,76,106,1127,314, + 1219,1188,1361,1269,1402,1167,1373,1565,1522,69, + 1582,95,1651,141,2691,1818,2552,143,142,2832, + 35,874,32,283,1278,27,30,31,946,1025, + 26,28,810,25,23,50,1081,104,75,76, + 106,1127,520,1219,1188,1361,1269,1402,56,1373, + 1565,1522,3849,1582,297,2750,162,2887,35,874, + 32,1503,1278,27,30,31,946,1025,26,28, + 810,25,23,50,1081,104,75,76,106,1127, + 870,1219,1188,1361,1269,1402,70,1373,1565,1522, + 2924,1582,2552,1651,141,327,35,277,138,142, + 4522,436,325,1243,35,2868,670,3005,35,874, + 32,1666,1278,27,30,31,946,1025,26,28, + 810,25,23,50,1081,104,75,76,106,1127, + 219,1219,1188,1361,1269,1402,49,1373,1565,1522, + 1010,1582,3321,1651,141,1330,1709,2565,187,142, + 3121,35,874,32,1453,1278,27,30,31,946, + 1025,26,28,810,25,23,50,1081,104,75, + 76,106,1127,408,1219,1188,1361,1269,1402,1390, + 1373,1565,1522,794,1582,3704,2750,162,3121,35, + 874,32,3192,1278,27,30,31,946,1025,26, + 28,810,25,23,50,1081,104,75,76,106, + 1127,570,1219,1188,1361,1269,1402,56,1373,1565, + 1522,2978,1582,96,2750,162,2407,35,874,32, + 580,2050,1625,30,31,946,1025,1015,3121,35, + 874,32,421,1278,27,30,31,946,1025,26, + 28,810,25,23,50,1081,104,75,76,106, + 1127,1700,1219,1188,1361,1269,1402,56,1373,1565, + 1522,3553,1582,2552,2750,162,3121,35,874,32, + 290,1278,27,30,31,946,1025,26,28,810, + 25,23,50,1081,104,75,76,106,1127,142, + 1219,1188,1361,1269,1402,56,1373,1565,1522,2669, + 1582,301,2750,162,2407,35,874,32,588,3662, + 1926,30,31,946,1025,1787,3176,35,874,32, + 420,1278,27,30,31,946,1025,26,28,810, + 25,23,50,1081,104,75,76,106,1127,1223, + 1219,1188,1361,1269,1402,56,1373,1565,1522,3976, + 1582,2244,2750,162,3121,35,874,32,423,1278, + 27,30,31,946,1025,26,28,810,25,23, + 50,1081,104,75,76,106,1127,1534,1219,1188, + 1361,1269,1402,1385,1373,1565,2537,588,1737,1924, + 34,588,3237,1559,588,35,1711,386,2127,1988, + 588,35,1711,386,3121,35,874,32,3649,1278, + 27,30,31,946,1025,26,28,810,25,23, + 50,1081,104,75,76,106,1127,429,1219,1188, + 1361,1269,1402,450,1373,2449,3121,35,874,32, + 1875,1278,27,30,31,946,1025,26,28,810, + 25,23,50,1081,104,75,76,106,1127,1965, + 1219,1188,1361,1269,1402,2022,2496,1518,35,874, + 32,3648,3959,27,30,31,946,1025,337,28, + 3121,35,874,32,1709,1278,27,30,31,946, + 1025,26,28,810,25,23,50,1081,104,75, + 76,106,1127,1614,1219,1188,1361,2432,588,35, + 1711,386,2491,286,2417,1354,2689,241,3184,1141, + 588,35,1924,2769,330,317,1754,319,2558,1701, + 312,1317,327,35,451,310,56,4771,66,660, + 3979,49,3073,311,158,843,35,451,159,349, + 4771,1709,592,3121,35,874,32,4613,1278,27, + 30,31,946,1025,26,28,810,25,23,50, + 1081,104,75,76,106,1127,1703,1219,1188,1361, + 2448,1614,2717,1180,1614,1334,1141,2974,4904,350, + 304,308,2271,1400,35,874,32,3388,3516,27, + 30,31,946,1025,337,28,226,342,1255,1170, + 347,154,1546,2002,1988,1632,65,486,2147,64, + 198,3599,3259,1374,3567,757,35,1711,386,997, + 405,4710,1888,35,874,32,4704,3516,27,30, + 31,946,1025,337,28,588,35,2640,2209,1983, + 870,317,1754,319,3875,838,312,1317,271,2827, + 406,407,408,292,293,3020,1614,349,350,3067, + 1079,322,1898,35,3332,32,3648,3959,27,30, + 31,946,1025,337,28,2971,342,1255,1170,347, + 317,1754,319,350,3030,312,1317,1515,2689,1883, + 1136,2265,444,3475,3520,56,331,350,2996,1141, + 378,342,1255,1170,347,448,3475,3520,2125,340, + 2699,2689,180,2914,350,342,1255,1170,347,330, + 317,1754,319,1632,3699,312,1317,2234,295,2276, + 71,2974,344,1255,1170,347,409,411,1305,2234, + 2413,2122,2306,2974,1436,56,4756,3073,69,3859, + 2513,2139,4613,4819,588,35,1711,386,2347,1096, + 1140,2149,2513,2838,3121,35,874,32,364,1278, + 27,30,31,946,1025,26,28,810,25,23, + 50,1081,104,75,76,106,1127,432,1219,1188, + 2259,3121,35,874,32,2453,1278,27,30,31, + 946,1025,26,28,810,25,23,50,1081,104, + 75,76,106,1127,2433,1219,1188,2303,358,2177, + 49,1607,588,35,1924,274,3875,415,417,3318, + 358,1817,2586,2902,2913,1543,35,1924,274,2418, + 1225,2515,2121,1878,3150,2902,2913,3121,35,874, + 32,1213,1278,27,30,31,946,1025,26,28, + 810,25,23,50,1081,104,75,76,106,1127, + 2689,1219,1188,2313,3121,35,874,32,330,1278, + 27,30,31,946,1025,26,28,810,25,23, + 50,1081,104,75,76,106,1127,259,1219,1188, + 2360,535,230,588,3074,1924,73,2136,1285,427, + 2484,818,2974,4904,1947,35,275,56,2646,56, + 226,2974,2974,2974,388,425,154,242,228,229, + 56,226,2433,3389,3547,178,3309,2575,2218,1614, + 341,2513,341,201,213,4776,2371,200,210,211, + 212,214,167,1,997,405,4710,535,1543,35, + 1924,3098,2538,166,2538,181,165,168,169,170, + 171,172,1250,2715,55,870,226,2974,1797,3406, + 1833,1614,154,2305,2553,406,407,408,292,293, + 3020,178,3309,2575,1964,2932,341,1643,3237,201, + 213,4776,1790,200,210,211,212,214,167,503, + 2971,870,69,2449,35,278,54,4823,926,166, + 179,182,165,168,169,170,171,172,2070,35, + 874,32,3388,3516,27,30,31,946,1025,337, + 28,2271,389,425,3231,35,1711,386,2433,3012, + 501,502,1240,1363,35,874,32,235,3959,27, + 30,31,946,1025,337,28,1614,322,3347,1354, + 2717,409,412,1141,535,56,2883,271,3563,1320, + 1330,237,929,35,1711,386,317,1754,319,2693, + 2465,312,1317,3709,588,35,1711,386,158,154, + 1714,320,2689,350,524,1330,230,521,178,3309, + 331,317,1754,319,230,49,313,1317,1614,285, + 2575,342,1255,1170,347,1709,2691,431,350,525, + 230,233,228,229,294,3681,193,1906,625,245, + 228,229,272,2587,2707,2575,344,1255,1170,347, + 56,1866,3238,99,1091,238,228,229,391,425, + 374,240,243,246,249,853,1589,440,2614,454, + 3066,35,874,32,817,1278,27,30,31,946, + 1025,26,28,810,25,23,50,1081,85,75, + 76,2998,2770,2982,3131,3206,4645,3121,35,874, + 32,1606,1278,27,30,31,946,1025,26,28, + 810,25,23,50,1081,104,75,76,106,1127, + 1614,1219,2379,3121,35,874,32,2621,1278,27, + 30,31,946,1025,26,28,810,25,23,50, + 1081,104,75,76,106,1127,345,1219,2385,56, + 535,3420,194,1325,1375,3256,2624,1351,2974,3875, + 2974,2716,69,230,1785,372,2481,4839,2974,226, + 1141,588,35,1711,386,154,1780,2513,2440,2513, + 2212,35,1711,386,178,3309,2575,341,248,228, + 229,2620,201,213,4776,154,200,210,211,212, + 214,167,431,2689,271,160,535,2654,2727,1085, + 322,330,166,49,3652,165,168,169,170,171, + 172,737,949,1709,1925,226,56,1330,56,1607, + 3987,154,3966,56,3875,56,625,3851,230,1839, + 178,3309,2575,949,2569,358,69,359,201,213, + 4776,4843,200,210,211,212,214,167,517,1718, + 2902,2913,535,251,228,229,2622,2575,166,338, + 176,165,168,169,170,171,172,302,2689,2552, + 56,226,523,3584,2974,56,330,154,2729,1359, + 932,35,1711,386,42,2761,178,3309,2575,2129, + 35,291,2492,341,201,213,4776,1614,200,210, + 211,212,214,167,603,44,2761,177,535,2569, + 3080,333,322,49,166,2538,174,165,168,169, + 170,171,172,1709,2505,2552,2272,226,2615,1958, + 1528,1840,2183,154,4108,1778,2545,2731,932,35, + 1711,386,178,3309,2575,2129,3435,291,1607,2735, + 201,213,4776,3875,200,210,211,212,214,167, + 689,1354,2448,196,535,1141,588,35,1924,276, + 166,49,175,165,168,169,170,171,172,380, + 2722,1709,47,226,535,1958,2552,1607,1614,154, + 158,2034,3875,1795,2943,2786,3875,2689,178,3309, + 2575,2068,1446,341,2732,330,201,213,4776,154, + 200,210,211,212,214,167,775,1354,56,186, + 535,1141,1141,449,195,4691,166,2552,185,165, + 168,169,170,171,172,2747,2689,2122,2983,226, + 2689,521,4756,2552,3431,154,158,154,3431,1795, + 588,35,1924,3296,178,3309,2575,1417,2869,588, + 35,291,201,213,4776,300,200,210,211,212, + 214,167,929,35,1711,386,929,35,1711,386, + 2739,199,166,188,3735,165,168,169,170,171, + 172,1952,35,874,32,3648,3516,27,30,31, + 946,1025,337,28,2755,49,56,2646,2775,49, + 1141,2974,2974,2433,2911,1709,47,56,861,1709, + 2840,2974,535,588,35,1924,279,2751,1364,92, + 2513,341,3201,94,2790,154,2791,2782,56,1878, + 341,226,2974,2789,737,1623,87,154,56,317, + 1754,319,3352,3711,312,1317,178,3309,2575,2552, + 3883,341,2538,3467,201,213,4776,311,200,210, + 211,212,214,167,932,35,1711,386,1915,2757, + 2761,947,2763,2538,166,535,190,165,168,169, + 170,171,172,588,35,1711,386,197,503,1761, + 2765,2444,2769,173,226,428,3584,49,1607,2792, + 154,2446,2788,3875,304,308,2271,1709,47,178, + 3309,2575,2793,390,425,2552,430,201,213,4776, + 2224,200,210,211,212,214,167,4057,1033,500, + 502,56,535,332,333,3977,527,166,3567,184, + 165,168,169,170,171,172,56,2689,56,1614, + 2974,226,535,296,56,330,1761,154,959,56, + 1354,2447,2773,3531,1141,2958,178,3309,2575,341, + 3441,341,2798,2799,201,213,4776,154,200,210, + 211,212,214,167,376,2110,1337,186,4626,158, + 5450,2538,5450,4691,166,4042,192,165,168,169, + 170,171,172,3121,35,874,32,507,1278,27, + 30,31,946,1025,26,28,810,25,23,50, + 1081,104,75,76,106,1127,5450,2083,3121,35, + 874,32,5450,1278,27,30,31,946,1025,26, + 28,810,25,23,50,1081,104,75,76,106, + 1127,3858,2140,3121,35,874,32,3048,1278,27, + 30,31,946,1025,26,28,810,25,23,50, + 1081,104,75,76,106,2171,3121,35,874,32, + 1330,1278,27,30,31,946,1025,26,28,810, + 25,23,50,1081,104,75,76,106,2235,1562, + 56,2647,56,2974,1141,2974,1141,5450,1614,1823, + 588,35,291,2974,5450,56,1243,35,394,1141, + 2575,5450,226,5450,2513,588,35,1711,386,154, + 5450,154,226,2552,5450,374,56,1614,1354,2543, + 1141,1847,1141,3400,154,203,213,4776,5450,202, + 210,211,212,214,2423,203,213,4776,49,202, + 210,211,212,214,5450,154,5450,158,1709,747, + 5450,3196,3456,5450,5450,2501,204,206,208,292, + 293,3020,1614,215,205,207,204,206,208,292, + 293,3020,503,215,205,207,2062,35,3332,32, + 3648,3516,27,30,31,946,1025,337,28,929, + 35,1711,386,2591,3665,4413,1910,3558,56,5450, + 2974,5450,1141,2997,3576,4413,737,1088,56,737, + 5450,5450,2974,500,502,3428,1614,737,5450,226, + 3265,5450,49,5450,1243,35,394,154,5450,5450, + 5450,341,1709,2876,317,1754,319,2504,5450,312, + 1317,5450,203,213,4776,3201,202,210,211,212, + 214,3257,1305,2538,3641,1691,35,874,32,3648, + 3516,27,30,31,946,1025,337,28,3584,505, + 5450,3584,1614,204,206,208,292,293,3020,3584, + 215,205,207,3121,35,874,32,2552,1278,27, + 30,31,946,1025,26,28,810,25,23,50, + 1081,104,75,76,84,3179,333,4100,328,333, + 3240,5450,4413,317,1754,319,3315,333,312,1317, + 520,5450,5450,5450,5450,220,5450,5450,5450,2552, + 1330,311,3723,588,35,1711,386,1614,1614,5450, + 5450,416,417,3318,3121,1737,874,1780,5450,1278, + 27,30,31,946,1025,26,28,810,25,23, + 50,1081,104,75,76,83,49,191,3368,5450, + 2575,5450,4099,3678,5450,5450,1709,2844,305,308, + 2271,3121,35,874,32,522,1278,27,30,31, + 946,1025,26,28,810,25,23,50,1081,104, + 75,76,82,3121,35,874,32,5450,1278,27, + 30,31,946,1025,26,28,810,25,23,50, + 1081,104,75,76,81,3121,35,874,32,5450, + 1278,27,30,31,946,1025,26,28,810,25, + 23,50,1081,104,75,76,80,3121,35,874, + 32,5450,1278,27,30,31,946,1025,26,28, + 810,25,23,50,1081,104,75,76,79,3121, + 35,874,32,5450,1278,27,30,31,946,1025, + 26,28,810,25,23,50,1081,104,75,76, + 78,3121,35,874,32,5450,1278,27,30,31, + 946,1025,26,28,810,25,23,50,1081,104, + 75,76,77,2950,35,874,32,5450,1278,27, + 30,31,946,1025,26,28,810,25,23,50, + 1081,104,75,76,102,3121,35,874,32,5450, + 1278,27,30,31,946,1025,26,28,810,25, + 23,50,1081,104,75,76,108,3121,35,874, + 32,5450,1278,27,30,31,946,1025,26,28, + 810,25,23,50,1081,104,75,76,107,3121, + 35,874,32,5450,1278,27,30,31,946,1025, + 26,28,810,25,23,50,1081,104,75,76, + 105,3121,35,874,32,5450,1278,27,30,31, + 946,1025,26,28,810,25,23,50,1081,104, + 75,76,103,1997,56,56,5450,2974,1141,1141, + 5450,5450,5450,1649,5450,5450,5450,2974,5450,5450, + 5450,5450,5450,1736,5450,5450,226,2974,5450,5450, + 5450,5450,5450,154,154,5450,226,5450,5450,5450, + 5450,5450,5450,1838,4107,5450,226,5450,5450,203, + 213,4776,5450,202,210,211,212,214,5450,203, + 213,4776,5450,202,210,211,212,214,5450,203, + 213,4776,5450,202,210,211,212,214,5450,5450, + 204,206,208,292,293,3020,5450,518,205,207, + 204,206,208,292,293,3020,5450,517,205,207, + 204,206,208,292,293,3020,2084,216,205,207, + 2974,5450,5450,5450,5450,5450,2171,5450,5450,5450, + 2974,5450,5450,5450,5450,5450,5450,5450,5450,226, + 5450,5450,588,35,1711,386,5450,5450,5450,226, + 5450,5450,5450,5450,5450,5450,5450,5450,5450,5450, + 5450,5450,203,213,4776,5450,202,210,211,212, + 214,5450,203,213,4776,49,202,210,211,212, + 214,5450,5450,5450,5450,1709,661,5450,5450,5450, + 5450,5450,5450,204,206,208,292,293,3020,5450, + 303,205,207,204,206,208,292,293,3020,5450, + 497,205,207,1691,35,874,32,3648,3516,27, + 30,31,946,1025,337,28,5450,5450,5450,5450, + 5450,5450,5450,2156,35,874,32,5450,3959,27, + 30,31,946,1025,337,28,2156,35,874,32, + 5450,3959,27,30,31,946,1025,337,28,5450, + 5450,5450,5450,5450,5450,3280,35,1711,386,5450, + 3012,317,1754,319,5450,5450,312,1317,236,5450, + 5450,5450,2689,5450,5450,5450,5450,5450,5450,2996, + 331,317,1754,319,5450,2689,315,1317,271,5450, + 5450,5450,5450,331,317,1754,319,5450,5450,313, + 1317,1691,35,874,32,3648,3516,27,30,31, + 946,1025,337,28,1375,5450,5450,230,2974,3875, + 1490,35,874,32,2592,3516,27,30,31,946, + 1025,337,28,5450,5450,5450,5450,2513,5450,5450, + 5450,5450,234,228,229,5450,5450,5450,5450,5450, + 5450,5450,5450,272,5450,5450,5450,5450,401,317, + 1754,319,5450,2689,312,1317,929,35,1711,386, + 5450,330,241,244,247,250,853,3722,314,3221, + 319,929,35,1711,386,817,2236,35,874,32, + 2387,3516,27,30,31,946,1025,337,28,49, + 5450,5450,5450,5450,2983,358,5450,5450,5450,1709, + 47,5450,5450,5450,49,929,35,1711,386,1718, + 2902,2913,2314,5450,1709,47,5450,5450,5450,2151, + 35,1711,386,929,35,1711,386,2320,5450,5450, + 5450,5450,5450,5450,314,3221,319,5450,49,929, + 35,1711,386,2164,35,1711,386,5450,1709,47, + 5450,56,49,5450,5450,535,49,5450,5450,5450, + 5450,2684,1709,47,5450,56,1709,47,2089,2974, + 5450,5450,49,5450,341,3499,49,5450,5450,3024, + 154,5450,1709,47,5450,2208,1709,47,341,2974, + 1417,5450,5450,56,5450,3633,2538,535,5450,3860, + 588,35,1711,386,588,35,1711,386,341,5450, + 2538,5450,1407,56,5450,5450,341,535,5450,5450, + 528,5450,154,5450,5450,5450,532,5450,5450,5450, + 2538,5450,186,49,2089,5450,341,49,4691,5450, + 5450,5450,154,1709,799,5450,531,1709,2772,5450, + 5450,5450,186,5450,5450,5450,5450,5450,4691,5450, + 5450,5450,5450,5450,5450,5450,5450,5450,5450,5450, + 5450,5450,5450,5450,5450,5450,5450,5450,5450,5450, + 5450,5450,5450,5450,5450,5450,5450,5450,5450,5450, + 5450,5450,5450,5450,5450,5450,3887,5450,5450,5450, + 5450,5450,5450,5450,5450,5450,5450,5450,5450,5450, + 5450,5450,5450,5450,5450,5450,3932,5450,5450,5450, + 5450,5450,5450,5450,5450,5450,5450,5450,5450,5450, + 5450,5450,5450,5450,5450,5450,5450,5450,5450,5450, + 5450,5450,5450,5450,5450,5450,5450,5450,5450,5450, + 5450,5450,5450,5450,5450,5450,5450,5450,5450,5450, + 5450,5450,5450,5450,5450,5450,5450,5450,5450,5450, + 5450,5450,5450,5450,5450,5450,5450,5450,5450,5450, + 5450,5450,5450,3651,5450,0,39,5465,0,39, + 5464,0,727,29,0,438,859,0,452,915, + 0,38,2307,0,38,5465,0,38,5464,0, + 2777,124,0,1,442,0,456,948,0,455, + 1315,0,925,89,0,727,385,0,35,33, + 0,32,34,0,39,2307,0,1,659,0, + 1,5720,0,1,5719,0,1,5718,0,1, + 5717,0,1,5716,0,1,5715,0,1,5714, + 0,1,5713,0,1,5712,0,1,5711,0, + 1,5710,0,39,1,5465,0,39,1,5464, + 0,806,1,0,281,392,0,281,284,0, + 5682,239,0,5681,239,0,5786,239,0,5785, + 239,0,5709,239,0,5708,239,0,5707,239, + 0,5706,239,0,5705,239,0,5704,239,0, + 5703,239,0,5702,239,0,5720,239,0,5719, + 239,0,5718,239,0,5717,239,0,5716,239, + 0,5715,239,0,5714,239,0,5713,239,0, + 5712,239,0,5711,239,0,5710,239,0,39, + 5465,239,0,39,5464,239,0,5488,239,0, + 5465,48,0,5464,48,0,5456,1,0,5455, + 1,0,2435,235,0,32,386,0,29,385, + 0,43,5486,0,43,37,0,2777,126,0, + 2777,125,0,329,443,0,5488,1,0,39, + 1,0,47,37,0,1,90,0,499,3019, + 0,5488,1,227,0,39,1,227,0,227, + 414,0,5465,37,0,5464,37,0,5465,2, + 37,0,5464,2,37,0,5465,36,0,5464, + 36,0,5486,45,0,37,45,0,5460,403, + 0,5459,403,0,1,4593,0,1,2903,0, + 1,2307,0,227,413,0,2215,316,0,329, + 93,0,35,72,0,1,329,0,3401,276, + 0,499,4403,0,1,227,0,227,218,0, + 227,217,0,1,573,0,1,3866,0,5462, + 1,0,5458,1,0,1,227,3583,0,5459, + 227,0,3586,227,0,5462,381,0,5461,381, + 0,3643,227,0,10,12,0,8,10,12, + 0,183,3621,0,3736,381,0,8,12,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1453,346 +1463,346 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 5399,5364,5343,5343,5343,5343,5343,5343,5380,5343, + 5450,5415,5394,5394,5394,5394,5394,5394,5431,5394, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5368,1,1, + 1,1,1,1,1,1,1,5419,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,137,1, - 1,1,1,1,1,1,1,1,1,2140, - 1,5572,591,113,3324,1,1,5410,39,3795, - 5399,5406,5437,1135,1081,3541,3261,2236,3164,3483, - 3183,3520,945,3507,2546,3489,10,5383,5383,5383, - 5383,5383,5383,5383,5383,5383,5383,5383,5383,5383, - 5383,5383,5383,5383,5383,5383,5383,5383,5383,5383, - 5383,5383,5383,5383,5383,5383,5383,5383,5383,5383, - 5383,5383,5383,5383,5383,5383,5383,5383,5383,5383, - 5383,5383,5383,5383,329,5383,5383,5383,5383,5383, - 5383,393,5383,5383,5383,5383,5383,5383,5383,1184, - 5383,5383,5383,5383,3820,3772,629,5383,382,5399, - 5383,5383,5383,5383,5383,5383,5383,5383,5383,5383, - 5383,5383,8,5386,5386,5386,5386,5386,5386,5386, - 5386,5386,5386,5386,5386,5386,5386,5386,5386,5386, - 5386,5386,5386,5386,5386,5386,5386,5386,5386,5386, - 5386,5386,5386,5386,5386,5386,5386,5386,5386,5386, - 5386,5386,5386,5386,5386,5386,5386,5386,5386,5386, - 5399,5386,5386,5386,5386,5386,5386,2746,5386,5386, - 5386,5386,5386,5386,5386,299,5386,5386,5386,5386, - 284,5136,5136,5386,281,5697,5386,5386,5386,5386, - 5386,5386,5386,5386,5386,5386,5386,5386,5399,5364, - 5343,5343,5343,5343,5343,5343,5371,5343,1,1, + 1,1,1,1,1,1,1,1,1,2228, + 1,5623,2141,113,3377,1,1,5461,39,3826, + 5450,5457,5488,1135,3010,3640,3426,2236,3365,3577, + 3176,3622,882,3620,2502,3619,10,5434,5434,5434, + 5434,5434,5434,5434,5434,5434,5434,5434,5434,5434, + 5434,5434,5434,5434,5434,5434,5434,5434,5434,5434, + 5434,5434,5434,5434,5434,5434,5434,5434,5434,5434, + 5434,5434,5434,5434,5434,5434,5434,5434,5434,5434, + 5434,5434,5434,5434,329,5434,5434,5434,5434,5434, + 5434,393,5434,5434,5434,5434,5434,5434,5434,1184, + 5434,5434,5434,5434,3850,3803,629,5434,382,5450, + 5434,5434,5434,5434,5434,5434,5434,5434,5434,5434, + 5434,5434,8,5437,5437,5437,5437,5437,5437,5437, + 5437,5437,5437,5437,5437,5437,5437,5437,5437,5437, + 5437,5437,5437,5437,5437,5437,5437,5437,5437,5437, + 5437,5437,5437,5437,5437,5437,5437,5437,5437,5437, + 5437,5437,5437,5437,5437,5437,5437,5437,5437,5437, + 5450,5437,5437,5437,5437,5437,5437,2619,5437,5437, + 5437,5437,5437,5437,5437,299,5437,5437,5437,5437, + 284,5187,5187,5437,281,5748,5437,5437,5437,5437, + 5437,5437,5437,5437,5437,5437,5437,5437,5450,5415, + 5394,5394,5394,5394,5394,5394,5422,5394,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5368,1,1,1,1, + 1,1,1,1,1,5419,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5399,1,1,1, - 1,1,1,437,1,1,1,2140,1,5572, - 591,5399,3324,1,1,5410,5399,5038,5035,5407, - 5437,5399,1081,3541,3261,2236,3164,3483,3183,3520, - 945,3507,2546,3489,5399,5364,5343,5343,5343,5343, - 5343,5343,5371,5343,1,1,1,1,1,1, + 1,1,1,1,1,1,5450,1,1,1, + 1,1,1,437,1,1,1,2228,1,5623, + 2141,5450,3377,1,1,5461,5450,5089,5086,5458, + 5488,5450,3010,3640,3426,2236,3365,3577,3176,3622, + 882,3620,2502,3619,5450,5415,5394,5394,5394,5394, + 5394,5394,5422,5394,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5368,1,1,1,1,1,1,1,1, + 1,5419,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5406,1,1,1,1,1,1,133, - 1,1,1,2140,1,5572,591,115,3324,1, - 1,5410,109,3795,5399,5832,5833,5834,1081,3541, - 3261,2236,3164,3483,3183,3520,945,3507,2546,3489, - 5399,5364,5343,5343,5343,5343,5343,5343,5371,5343, + 1,1,5457,1,1,1,1,1,1,133, + 1,1,1,2228,1,5623,2141,115,3377,1, + 1,5461,109,3826,5450,5883,5884,5885,3010,3640, + 3426,2236,3365,3577,3176,3622,882,3620,2502,3619, + 5450,5415,5394,5394,5394,5394,5394,5394,5422,5394, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5368,1,1, + 1,1,1,1,1,1,1,5419,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5399,1, - 1,1,1,1,1,134,1,1,1,2140, - 1,5572,591,129,3324,1,1,5410,2324,3772, - 629,4237,593,4259,1081,3541,3261,2236,3164,3483, - 3183,3520,945,3507,2546,3489,5399,5364,5343,5343, - 5343,5343,5343,5343,5371,5343,1,1,1,1, + 1,1,1,1,1,1,1,1,5450,1, + 1,1,1,1,1,134,1,1,1,2228, + 1,5623,2141,129,3377,1,1,5461,2324,3803, + 629,4305,593,4327,3010,3640,3426,2236,3365,3577, + 3176,3622,882,3620,2502,3619,5450,5415,5394,5394, + 5394,5394,5394,5394,5422,5394,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5368,1,1,1,1,1,1, + 1,1,1,5419,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5399,1,1,1,1,1, - 1,5399,1,1,1,2140,1,5572,591,114, - 3324,1,1,5410,2324,3795,119,5399,5413,5414, - 1081,3541,3261,2236,3164,3483,3183,3520,945,3507, - 2546,3489,5399,5364,5343,5343,5343,5343,5343,5343, - 5371,5343,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5368, + 1,1,1,1,5450,1,1,1,1,1, + 1,5450,1,1,1,2228,1,5623,2141,114, + 3377,1,1,5461,2324,3826,119,5450,5464,5465, + 3010,3640,3426,2236,3365,3577,3176,3622,882,3620, + 2502,3619,5450,5415,5394,5394,5394,5394,5394,5394, + 5422,5394,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5419, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5399,1,1,1,1,1,1,5399,1,1, - 1,2140,1,5572,591,5399,3324,1,1,5410, - 3406,3772,629,3134,3160,5399,1081,3541,3261,2236, - 3164,3483,3183,3520,945,3507,2546,3489,5399,5364, - 5343,5343,5343,5343,5343,5343,5371,5343,1,1, + 5450,1,1,1,1,1,1,5450,1,1, + 1,2228,1,5623,2141,5450,3377,1,1,5461, + 2833,3803,629,3127,3153,5450,3010,3640,3426,2236, + 3365,3577,3176,3622,882,3620,2502,3619,5450,5415, + 5394,5394,5394,5394,5394,5394,5422,5394,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5368,1,1,1,1, + 1,1,1,1,1,5419,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,334,1,1,1, - 1,1,1,2773,1,1,1,2140,1,5572, - 591,5399,3324,1,1,5410,5399,5413,5414,5734, - 5735,3406,1081,3541,3261,2236,3164,3483,3183,3520, - 945,3507,2546,3489,5399,5364,5343,5343,5343,5343, - 5343,5343,5371,5343,1,1,1,1,1,1, + 1,1,1,2638,1,1,1,2228,1,5623, + 2141,5450,3377,1,1,5461,5450,5464,5465,5785, + 5786,2833,3010,3640,3426,2236,3365,3577,3176,3622, + 882,3620,2502,3619,5450,5415,5394,5394,5394,5394, + 5394,5394,5422,5394,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5368,1,1,1,1,1,1,1,1, + 1,5419,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5399,1,1,1,1,1,1,5399, - 1,1,1,2140,1,5572,591,1,3324,1, - 1,5410,5399,5038,5035,5361,5437,5399,1081,3541, - 3261,2236,3164,3483,3183,3520,945,3507,2546,3489, - 5399,5364,5343,5343,5343,5343,5343,5343,5371,5343, + 1,1,5450,1,1,1,1,1,1,5450, + 1,1,1,2228,1,5623,2141,1,3377,1, + 1,5461,5450,5089,5086,5412,5488,5450,3010,3640, + 3426,2236,3365,3577,3176,3622,882,3620,2502,3619, + 5450,5415,5394,5394,5394,5394,5394,5394,5422,5394, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5368,1,1, + 1,1,1,1,1,1,1,5419,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5406,1, - 1,1,1,1,1,2844,1,1,1,2140, - 1,5572,591,5399,3324,1,1,5410,5399,5222, - 5219,48,5222,5219,1081,3541,3261,2236,3164,3483, - 3183,3520,945,3507,2546,3489,5399,5364,5343,5343, - 5343,5343,5343,5343,5371,5343,1,1,1,1, + 1,1,1,1,1,1,1,1,5457,1, + 1,1,1,1,1,2659,1,1,1,2228, + 1,5623,2141,5450,3377,1,1,5461,5450,5273, + 5270,48,5273,5270,3010,3640,3426,2236,3365,3577, + 3176,3622,882,3620,2502,3619,5450,5415,5394,5394, + 5394,5394,5394,5394,5422,5394,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5368,1,1,1,1,1,1, + 1,1,1,5419,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5399,1,1,1,1,1, - 1,5399,1,1,1,2140,1,5572,591,5399, - 3324,1,1,5410,112,5399,89,5403,2438,5071, - 1081,3541,3261,2236,3164,3483,3183,3520,945,3507, - 2546,3489,5399,3486,1,1,1,1,1,1, - 3488,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5408, + 1,1,1,1,5450,1,1,1,1,1, + 1,5450,1,1,1,2228,1,5623,2141,5450, + 3377,1,1,5461,112,5450,89,5454,2435,5122, + 3010,3640,3426,2236,3365,3577,3176,3622,882,3620, + 2502,3619,5450,3583,1,1,1,1,1,1, + 3586,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5459, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5399,1,1,1,1,1,1,5399,1,1, - 1,2140,1,5572,591,5399,3324,1,1,5410, - 5399,1700,5399,4237,5726,4259,1081,3541,3261,2236, - 3164,3483,3183,3520,945,3507,2546,3489,39,5038, - 5035,4806,806,4052,4127,3013,5402,4149,2005,5661, - 5659,5668,5667,5663,5664,5662,5665,5666,5669,5660, - 5657,5734,5735,4105,4083,135,5651,5658,5654,5630, - 5656,5655,5652,5653,5631,4193,4171,5418,5795,4022, - 732,859,5420,796,3107,810,5399,5421,5419,564, - 5415,5416,5417,5399,2313,5796,5797,3304,1369,5399, - 5274,5274,227,5270,227,227,227,5278,227,1, + 5450,1,1,1,1,1,1,5450,1,1, + 1,2228,1,5623,2141,5450,3377,1,1,5461, + 5450,988,5450,4305,945,4327,3010,3640,3426,2236, + 3365,3577,3176,3622,882,3620,2502,3619,39,5089, + 5086,4851,806,4114,4195,2903,5453,4217,2005,5712, + 5710,5719,5718,5714,5715,5713,5716,5717,5720,5711, + 5708,5785,5786,4173,4151,135,5702,5709,5705,5681, + 5707,5706,5703,5704,5682,4261,4239,5469,5846,4053, + 591,798,5471,616,3100,732,5450,5472,5470,564, + 5466,5467,5468,5450,2437,5847,5848,3187,1369,5450, + 5325,5325,227,5321,227,227,227,5329,227,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5399,3566,227,1,1,1, - 1,1,1,1,1,1,5399,5038,5035,1, - 806,5083,123,3013,222,131,5399,5267,392,5133, - 5133,5399,281,5399,2845,1,1,1,2581,223, - 5809,582,395,5413,5414,2274,5657,5734,5735,356, - 414,227,5651,5658,5654,5630,5656,5655,5652,5653, - 5631,5657,5734,5735,932,5897,5399,5651,5658,5654, - 5630,5656,5655,5652,5653,5631,281,5399,5399,8789, - 8789,5832,5833,5834,5399,5274,5274,227,5270,227, - 227,227,5322,227,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,3134, - 3160,227,1,1,1,1,1,1,1,1, - 1,3201,33,2356,1,5077,5435,5399,5077,5399, - 5077,5077,5267,37,5261,5261,8,5411,5261,5754, - 1,1,1,2581,5396,5809,582,5077,5077,5077, - 43,5243,5243,1,127,413,227,5399,5399,5077, - 5077,159,343,5038,5035,2552,806,2540,329,3013, - 5897,329,5399,5399,1,5258,5258,5077,5255,5399, - 329,3424,361,329,122,5077,5832,5833,5834,1, - 5077,5077,5077,5077,5077,5077,5410,5034,5240,365, - 5126,5122,2552,5130,2540,1,3013,5396,1,5077, - 5077,5077,5077,5077,5077,5077,5077,5077,5077,5077, - 5077,5077,5077,5077,5399,1929,159,5077,5077,5077, - 5077,5077,5077,5077,5077,5077,5077,5077,5077,5077, - 5399,5077,5077,5080,116,1967,5080,361,5080,5080, - 2473,2400,29,385,385,5237,385,385,5237,385, - 5237,5237,1929,3186,361,5080,5080,5080,1222,3747, - 2769,3134,3160,5399,385,385,385,5080,5080,5237, + 1,1,1,1,5450,3642,227,1,1,1, + 1,1,1,1,1,1,5450,5089,5086,1, + 806,5134,123,2903,222,131,5450,5318,392,5184, + 5184,5450,281,5450,2670,1,1,1,3329,223, + 5860,582,395,5464,5465,2274,5708,5785,5786,356, + 414,227,5702,5709,5705,5681,5707,5706,5703,5704, + 5682,5708,5785,5786,932,5948,5450,5702,5709,5705, + 5681,5707,5706,5703,5704,5682,281,5450,5450,8840, + 8840,5883,5884,5885,5450,5325,5325,227,5321,227, + 227,227,5373,227,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,3127, + 3153,227,1,1,1,1,1,1,1,1, + 1,2847,33,2356,1,5128,5486,5450,5128,5450, + 5128,5128,5318,37,5312,5312,8,5462,5312,5805, + 1,1,1,3329,5447,5860,582,5128,5128,5128, + 43,5294,5294,1,127,413,227,5450,5450,5128, + 5128,159,343,5089,5086,2552,806,2307,329,2903, + 5948,329,5450,5450,1,5309,5309,5128,5306,5450, + 329,2888,361,329,122,5128,5883,5884,5885,1, + 5128,5128,5128,5128,5128,5128,5461,5085,5291,365, + 5177,5173,2552,5181,2307,1,2903,5447,1,5128, + 5128,5128,5128,5128,5128,5128,5128,5128,5128,5128, + 5128,5128,5128,5128,5450,1929,159,5128,5128,5128, + 5128,5128,5128,5128,5128,5128,5128,5128,5128,5128, + 5450,5128,5128,5131,116,1967,5131,361,5131,5131, + 2473,2400,29,385,385,5288,385,385,5288,385, + 5288,5288,1929,3005,361,5131,5131,5131,1222,3778, + 3753,3127,3153,5450,385,385,385,5131,5131,5288, 385,385,385,385,385,385,385,385,385,1, - 5126,5122,5313,5130,5319,5080,5316,5409,5399,38, - 5056,5053,235,5080,5050,5231,3013,5041,5080,5080, - 5080,5080,5080,5080,136,5237,5408,307,5126,5122, - 4492,5130,2540,5334,3013,5237,5334,5080,5080,5080, - 5080,5080,5080,5080,5080,5080,5080,5080,5080,5080, - 5080,5080,36,5298,5295,5080,5080,5080,5080,5080, - 5080,5080,5080,5080,5080,5080,5080,5080,121,5080, - 5080,5399,5343,5343,227,5343,227,227,227,5346, + 5177,5173,5364,5181,5370,5131,5367,5460,5450,38, + 5107,5104,235,5131,5101,5282,2903,5092,5131,5131, + 5131,5131,5131,5131,136,5288,5459,307,5177,5173, + 4593,5181,2307,5385,2903,5288,5385,5131,5131,5131, + 5131,5131,5131,5131,5131,5131,5131,5131,5131,5131, + 5131,5131,36,5349,5346,5131,5131,5131,5131,5131, + 5131,5131,5131,5131,5131,5131,5131,5131,121,5131, + 5131,5450,5394,5394,227,5394,227,227,227,5397, 227,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5399,5399,227,1, - 1,8700,1,1,1,1,1,1,442,1, - 1,1,1,5399,5062,224,39,5062,5399,5340, - 5437,5409,329,5399,2274,329,137,1,1,1, - 3278,5405,5608,591,456,3324,455,5657,5734,5735, - 5408,5399,218,5651,5658,5654,5630,5656,5655,5652, - 5653,5631,288,5413,5414,3134,3160,5897,5399,5343, - 5343,227,5343,227,227,227,227,227,1,1, + 1,1,1,1,1,1,5450,5450,227,1, + 1,8751,1,1,1,1,1,1,442,1, + 1,1,1,5450,5113,224,39,5113,5450,5391, + 5488,5460,329,5450,2274,329,137,1,1,1, + 3385,5456,5659,2141,456,3377,455,5708,5785,5786, + 5459,5450,218,5702,5709,5705,5681,5707,5706,5703, + 5704,5682,288,5464,5465,3127,3153,5948,5450,5394, + 5394,227,5394,227,227,227,227,227,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,3915,5399,227,1,1,8700,1, - 1,1,1,1,1,1886,5404,5065,1,5068, - 1,5126,5122,4492,5130,2540,5340,3013,345,111, - 132,1614,130,3203,1,1,1,3278,128,5608, - 591,593,3324,368,5399,5038,5035,1184,806,2540, - 530,3013,3820,1843,1800,1757,1714,1671,1628,1585, - 1542,1499,1456,5399,5897,5399,5343,5343,227,5343, - 227,227,227,5349,227,1,1,1,1,1, + 1,1,1,3946,5450,227,1,1,8751,1, + 1,1,1,1,1,1886,5455,5116,1,5119, + 1,5177,5173,4593,5181,2307,5391,2903,345,111, + 132,1491,130,3157,1,1,1,3385,128,5659, + 2141,593,3377,368,5450,5089,5086,1184,806,2307, + 530,2903,3850,1843,1800,1757,1714,1671,1628,1585, + 1542,1499,1456,5450,5948,5450,5394,5394,227,5394, + 227,227,227,5400,227,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5399,1929,227,1,1,8700,1,1,1,1, - 1,1,443,39,39,1,5437,5399,5252,225, - 3463,5252,1282,5340,1,5407,110,3827,4237,5399, - 4259,1,1,1,3278,2089,5608,591,2356,3324, - 3242,5657,5734,5735,2473,2400,217,5651,5658,5654, - 5630,5656,5655,5652,5653,5631,5399,37,5261,5261, - 3358,5897,5399,5343,5343,227,5343,227,227,227, - 5346,227,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1002,5406,227, - 1,1,8700,1,1,1,1,1,1,5399, - 5038,5035,1,806,5083,3378,3013,90,1,1, - 5340,1,346,5264,120,4237,5264,4259,1,1, - 1,3278,5399,5608,591,3834,3324,1,5126,5122, - 2552,5130,2540,218,3013,5225,5399,5399,5126,5122, - 4492,5130,2540,5334,3013,366,5334,1265,5897,5399, - 5343,5343,227,5343,227,227,227,5346,227,1, + 5450,1929,227,1,1,8751,1,1,1,1, + 1,1,443,39,39,1,5488,5450,5303,225, + 3544,5303,1282,5391,1,5458,110,3578,4305,5450, + 4327,1,1,1,3385,1355,5659,2141,2356,3377, + 3994,5708,5785,5786,2473,2400,217,5702,5709,5705, + 5681,5707,5706,5703,5704,5682,5450,37,5312,5312, + 3208,5948,5450,5394,5394,227,5394,227,227,227, + 5397,227,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1002,5457,227, + 1,1,8751,1,1,1,1,1,1,5450, + 5089,5086,1,806,5134,2765,2903,90,1,1, + 5391,1,346,5315,120,4305,5315,4327,1,1, + 1,3385,5450,5659,2141,3852,3377,1,5177,5173, + 2552,5181,2307,218,2903,5276,5450,5450,5177,5173, + 4593,5181,2307,5385,2903,366,5385,1265,5948,5450, + 5394,5394,227,5394,227,227,227,5397,227,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5399,1929,227,1,1,8700, - 1,1,1,1,1,1,5399,5284,5281,1, - 1929,1,5126,5122,4492,5130,2540,5340,3013,307, - 5228,3134,3160,373,118,1,1,1,3278,2060, - 5608,591,5399,3324,1326,5399,5413,5414,307,5399, - 218,155,343,39,39,2433,5437,98,329,3747, - 2769,329,5399,5399,5435,5897,5399,5343,5343,227, - 5343,227,227,227,227,227,1,1,1,1, + 1,1,1,1,5450,1929,227,1,1,8751, + 1,1,1,1,1,1,5450,5335,5332,1, + 1929,1,5177,5173,4593,5181,2307,5391,2903,307, + 5279,3127,3153,373,118,1,1,1,3385,2060, + 5659,2141,5450,3377,1326,5450,5464,5465,307,5450, + 218,155,343,39,39,2434,5488,98,329,3778, + 3753,329,5450,5450,5486,5948,5450,5394,5394,227, + 5394,227,227,227,227,227,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,117,5399,227,1,1,8700,1,1,1, - 1,1,1,93,39,39,1,5437,5399,5328, - 4215,1448,5328,5399,5340,1929,3747,2769,403,299, - 4328,1413,1,1,1,3278,5307,5608,591,5697, - 3324,1,5126,5122,4492,5130,2540,5399,3013,1, - 5126,5122,2552,5130,2540,5310,3013,3436,5399,5291, - 5287,3566,5897,5399,5343,5343,227,5343,227,227, + 1,117,5450,227,1,1,8751,1,1,1, + 1,1,1,93,39,39,1,5488,5450,5379, + 4283,921,5379,5450,5391,1929,3778,3753,403,299, + 4394,1413,1,1,1,3385,5358,5659,2141,5748, + 3377,1,5177,5173,4593,5181,2307,5450,2903,1, + 5177,5173,2552,5181,2307,5361,2903,2849,5450,5342, + 5338,3642,5948,5450,5394,5394,227,5394,227,227, 227,227,227,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1706,183, - 227,1,1,8700,1,1,1,1,1,1, - 37,39,5399,1,5399,5437,5435,3853,5399,5413, - 5414,5340,1929,2060,5399,4438,5411,3352,513,1, - 1,1,3278,1909,5608,591,1,3324,47,2433, - 5399,8621,8218,1,339,329,5038,5035,4492,806, - 2540,5358,3013,5399,8621,8218,5399,5399,5435,5897, - 5399,5343,5343,227,5343,227,227,227,227,227, + 1,1,1,1,1,1,1,1,2678,183, + 227,1,1,8751,1,1,1,1,1,1, + 37,39,5450,1,5450,5488,5486,3865,5450,5464, + 5465,5391,1929,2060,5450,4506,5462,2848,513,1, + 1,1,3385,1909,5659,2141,1,3377,47,2434, + 5450,8672,8269,1,339,329,5089,5086,4593,806, + 2307,5409,2903,5450,8672,8269,5450,5450,5486,5948, + 5450,5394,5394,227,5394,227,227,227,227,227, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5410,3103,227,1,1, - 8700,1,1,1,1,1,1,1,886,1929, - 1,5399,5222,5219,339,5405,339,394,5340,339, - 5410,385,3578,5832,5833,5834,1,1,1,3278, - 5390,5608,591,1,3324,1,5126,5122,5313,5130, - 5319,361,5316,309,74,5399,2898,2545,5399,1, - 1,1,1,1,1,1,5897,1,1,1, + 1,1,1,1,1,5461,2752,227,1,1, + 8751,1,1,1,1,1,1,1,886,1929, + 1,5450,5273,5270,339,5456,339,394,5391,339, + 5461,385,3310,5883,5884,5885,1,1,1,3385, + 5441,5659,2141,1,3377,1,5177,5173,5364,5181, + 5370,361,5367,309,74,5450,2625,2999,5450,1, + 1,1,1,1,1,1,5948,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5399,5399,727,1,1,5399,4215,1448,3854,5399, - 5404,5461,5462,124,48,1,1,1,5414,1, - 1,1,1,1,1,1,5399,1,1,1, - 1,1,1,5399,360,5399,361,3616,1,5933, - 3347,5399,1092,1,1,1,5126,5122,4806,5130, - 4052,4127,3013,361,4149,5086,5113,5119,5092,5095, - 5107,5104,5110,5101,5098,5089,5116,5399,2814,5414, - 4105,4083,5798,5399,5038,5035,5399,806,2540,578, - 3013,5059,4193,4171,5418,5399,4022,732,859,5420, - 796,3107,810,666,5421,5419,564,5415,5416,5417, - 37,5261,5261,5909,3494,1369,329,2715,2649,316, - 39,39,5325,514,39,5038,5035,4806,806,4052, - 4127,3013,5393,4149,659,5661,5659,5668,5667,5663, - 5664,5662,5665,5666,5669,5660,5399,5413,5414,4105, - 4083,2540,5399,3013,5838,4326,1,5399,5435,2433, - 3617,4193,4171,5418,5225,4022,732,859,5420,796, - 3107,810,426,5421,5419,564,5415,5416,5417,45, - 5304,5304,1929,5399,1369,5399,1,5399,5399,5284, - 5281,5377,5399,5405,526,5406,139,5038,5035,4806, - 806,4052,4127,3013,5399,4149,659,5661,5659,5668, - 5667,5663,5664,5662,5665,5666,5669,5660,5399,1929, - 1,4105,4083,37,5261,5261,3319,5301,161,5228, - 126,29,5399,4193,4171,5418,5435,4022,732,859, - 5420,796,3107,810,2843,5421,5419,564,5415,5416, - 5417,3625,3208,3352,5399,4868,1369,3679,5404,526, - 5852,39,39,1,5126,5122,4806,5130,4052,4127, - 3013,5435,4149,5086,5113,5119,5092,5095,5107,5104, - 5110,5101,5098,5089,5116,2814,727,3636,4105,4083, - 393,5399,5399,161,386,318,2319,125,5246,5409, - 4193,4171,5418,422,4022,732,859,5420,796,3107, - 810,5399,5421,5419,564,5415,5416,5417,5408,101, - 5399,5399,4337,1369,2715,2649,97,5399,39,39, - 39,5038,5035,4806,806,4052,4127,3013,5374,4149, - 659,5661,5659,5668,5667,5663,5664,5662,5665,5666, - 5669,5660,2814,5399,519,4105,4083,2502,1929,5399, - 5399,276,2303,1,5337,5249,39,4193,4171,5418, - 5437,4022,732,859,5420,796,3107,810,5399,5421, - 5419,564,5415,5416,5417,1,1,5399,2792,1046, - 1369,2715,2649,289,5399,5352,5352,5377,39,5038, - 5035,4806,806,4052,4127,3013,5374,4149,659,5661, - 5659,5668,5667,5663,5664,5662,5665,5666,5669,5660, - 29,438,452,4105,4083,5355,5355,48,4325,385, - 5399,5413,5399,3435,3435,4193,4171,5418,393,4022, - 732,859,5420,796,3107,810,72,5421,5419,564, - 5415,5416,5417,5756,1,5399,1,1226,1369,5866, - 5860,1,2098,5864,5409,5377,287,446,5399,189, - 5399,5399,3566,3401,424,5041,5044,5047,5399,5858, - 5859,4340,5413,5408,5074,727,447,3203,189,418, - 306,5889,5890,727,5399,5867,5399,4834,5399,3545, - 5399,5331,5399,4808,5399,2672,1,4860,5399,5869, - 3052,4356,5399,5399,1,4443,5399,799,5399,1582, - 1651,5399,5870,5868,5891,35,3551,5399,5399,506, - 504,5399,5399,5399,5399,5399,953,5399,508,2452, - 2148,5880,5879,5892,4436,3322,5861,5862,5885,5886, - 5883,5884,5863,5865,5887,5888,2679,5399,2186,5893, - 2798,5873,5874,5875,5871,5872,5881,5882,5877,5876, - 5878,39,5038,5035,4806,806,4052,4127,3013,5403, - 4149,659,5661,5659,5668,5667,5663,5664,5662,5665, - 5666,5669,5660,3237,2919,2,4105,4083,4775,4809, - 3291,2919,3644,3345,3960,5399,2017,734,4193,4171, - 5418,5399,4022,732,859,5420,796,3107,810,5399, - 5421,5419,564,5415,5416,5417,39,5038,5035,4806, - 806,4052,4127,3013,5399,4149,659,5661,5659,5668, - 5667,5663,5664,5662,5665,5666,5669,5660,5399,5399, - 37,4105,4083,5399,5399,5399,5399,5399,5399,5399, - 5399,5399,5399,4193,4171,5418,5399,4022,732,859, - 5420,796,3107,810,5399,5421,5419,564,5415,5416, - 5417,5399,5399,5399,5399,5399,1369,5399,5402,39, - 5038,5035,4806,806,4052,4127,3013,5399,4149,659, - 5661,5659,5668,5667,5663,5664,5662,5665,5666,5669, - 5660,5399,5399,5399,4105,4083,5399,5399,5399,5399, - 5399,5399,5399,5399,5399,5399,4193,4171,5418,5399, - 4022,732,859,5420,796,3107,810,5399,5421,5419, - 564,5415,5416,5417,39,5038,5035,4806,806,4052, - 4127,3013,1709,4149,659,5661,5659,5668,5667,5663, - 5664,5662,5665,5666,5669,5660,5399,5399,5399,4105, - 4083,5399,5399,5399,5399,5399,5399,5399,5399,5399, - 5399,4193,4171,5418,5399,4022,732,859,5420,796, - 3107,810,5399,5421,5419,564,5415,5416,5417,5399, - 5399,5399,5399,5399,1369,39,5038,5035,2897,806, - 4052,4127,3013,5399,4149,659,5661,5659,5668,5667, - 5663,5664,5662,5665,5666,5669,5660,5399,5399,5399, - 4105,4083,5399,5399,5399,5399,5399,5399,5399,5399, - 5399,5399,4193,4171,5418,5399,4022,732,859,5420, - 796,3107,810,5399,5421,5419,564,5415,5416,5417, - 39,5038,5035,4806,806,4052,4127,3013,5399,4149, - 659,5661,5659,5668,5667,5663,5664,5662,5665,5666, - 5669,5660,5399,5399,5399,4105,4083,5399,5399,5399, - 5399,5399,5399,5399,5399,5399,5399,4193,4171,5418, - 5399,4022,732,859,5420,796,3107,810,5399,5421, - 5419,564,5415,5416,5417,39,5038,5035,4806,806, - 4052,4127,3013,5399,4149,659,5661,5659,5668,5667, - 5663,5664,5662,5665,5666,5669,5660,5399,5399,5399, - 4105,4083,5399,5399,5399,5399,5399,5399,5399,5399, - 5399,5399,4193,4171,5418,5399,4022,732,859,5420, - 796,3107,810,5399,5421,5419,564,5415,5416,5417, - 5399,5038,5035,5399,5437,5399,5399,5399,5399,5399, - 788,5661,5659,5668,5667,5663,5664,5662,5665,5666, - 5669,5660,5657,5734,5735,5399,5399,5399,5651,5658, - 5654,5630,5656,5655,5652,5653,5631,5399,5399,5399, - 5795,5399,5399,5399,5399,5399,5399,5399,5399,239, - 5212,5208,5399,5216,5399,5399,2313,5796,5797,788, - 5199,5205,5178,5181,5193,5190,5196,5187,5184,5175, - 5202,5154,5148,5145,5399,5399,5399,5172,5151,5163, - 5142,5157,5160,5169,5166,5139,5399,5399,5399,5795, - 32,386,386,5234,386,386,5234,386,5234,5234, - 5399,5399,5399,5399,5399,2313,5796,5797,5399,5399, - 5399,5399,386,386,386,5399,221,5234,386,386, - 386,386,386,386,386,386,386,5661,5659,5668, - 5667,5663,5664,5662,5665,5666,5669,5660,5657,5734, - 5735,5399,5399,5399,5651,5658,5654,5630,5656,5655, - 5652,5653,5631,5234,5399,5399,5399,5399,5399,5399, - 5399,5399,5399,5234 + 5450,5450,727,1,1,5450,4283,921,3886,5450, + 5455,5512,5513,124,48,1,1,1,5465,1, + 1,1,1,1,1,1,5450,1,1,1, + 1,1,1,5450,360,5450,361,3546,1,5984, + 1408,5450,1092,1,1,1,5177,5173,4851,5181, + 4114,4195,2903,361,4217,5137,5164,5170,5143,5146, + 5158,5155,5161,5152,5149,5140,5167,5450,2804,5465, + 4173,4151,5849,5450,5089,5086,5450,806,2307,578, + 2903,5110,4261,4239,5469,5450,4053,591,798,5471, + 616,3100,732,666,5472,5470,564,5466,5467,5468, + 37,5312,5312,5960,3186,1369,329,2721,2694,316, + 39,39,5376,514,39,5089,5086,4851,806,4114, + 4195,2903,5444,4217,659,5712,5710,5719,5718,5714, + 5715,5713,5716,5717,5720,5711,5450,5464,5465,4173, + 4151,2307,5450,2903,5889,3968,1,5450,5486,2434, + 3401,4261,4239,5469,5276,4053,591,798,5471,616, + 3100,732,426,5472,5470,564,5466,5467,5468,45, + 5355,5355,1929,5450,1369,5450,1,5450,5450,5335, + 5332,5428,5450,5456,526,5457,139,5089,5086,4851, + 806,4114,4195,2903,5450,4217,659,5712,5710,5719, + 5718,5714,5715,5713,5716,5717,5720,5711,5450,1929, + 1,4173,4151,37,5312,5312,3337,5352,161,5279, + 126,29,5450,4261,4239,5469,5486,4053,591,798, + 5471,616,3100,732,2671,5472,5470,564,5466,5467, + 5468,3706,3191,2848,5450,4865,1369,3457,5455,526, + 5903,39,39,1,5177,5173,4851,5181,4114,4195, + 2903,5486,4217,5137,5164,5170,5143,5146,5158,5155, + 5161,5152,5149,5140,5167,2804,727,3557,4173,4151, + 393,5450,5450,161,386,318,1804,125,5297,5460, + 4261,4239,5469,422,4053,591,798,5471,616,3100, + 732,5450,5472,5470,564,5466,5467,5468,5459,101, + 5450,5450,3710,1369,2721,2694,97,5450,39,39, + 39,5089,5086,4851,806,4114,4195,2903,5425,4217, + 659,5712,5710,5719,5718,5714,5715,5713,5716,5717, + 5720,5711,2804,5450,519,4173,4151,1881,1929,5450, + 5450,276,2215,1,5388,5300,39,4261,4239,5469, + 5488,4053,591,798,5471,616,3100,732,5450,5472, + 5470,564,5466,5467,5468,1,1,5450,2942,1046, + 1369,2721,2694,289,5450,5403,5403,5428,39,5089, + 5086,4851,806,4114,4195,2903,5425,4217,659,5712, + 5710,5719,5718,5714,5715,5713,5716,5717,5720,5711, + 29,438,452,4173,4151,5406,5406,48,4393,385, + 5450,5464,5450,3444,3444,4261,4239,5469,393,4053, + 591,798,5471,616,3100,732,72,5472,5470,564, + 5466,5467,5468,5807,1,5450,1,1040,1369,5917, + 5911,1,2098,5915,5460,5428,287,446,5450,189, + 5450,5450,3642,3402,424,5092,5095,5098,5450,5909, + 5910,3888,5464,5459,5125,727,447,3157,189,418, + 306,5940,5941,727,5450,5918,5450,4885,5450,3698, + 5450,5382,5450,4893,5450,3000,1,4913,5450,5920, + 2860,3548,5450,5450,1,4395,5450,785,5450,1668, + 1694,5450,5921,5919,5942,35,3263,5450,5450,506, + 504,5450,5450,5450,5450,5450,2311,5450,508,2452, + 2148,5931,5930,5943,3477,3366,5912,5913,5936,5937, + 5934,5935,5914,5916,5938,5939,2465,5450,2186,5944, + 4025,5924,5925,5926,5922,5923,5932,5933,5928,5927, + 5929,39,5089,5086,4851,806,4114,4195,2903,5454, + 4217,659,5712,5710,5719,5718,5714,5715,5713,5716, + 5717,5720,5711,3232,3276,2,4173,4151,3696,3978, + 3288,3276,3712,3344,3986,5450,2017,734,4261,4239, + 5469,5450,4053,591,798,5471,616,3100,732,5450, + 5472,5470,564,5466,5467,5468,39,5089,5086,4851, + 806,4114,4195,2903,5450,4217,659,5712,5710,5719, + 5718,5714,5715,5713,5716,5717,5720,5711,5450,5450, + 37,4173,4151,5450,5450,5450,5450,5450,5450,5450, + 5450,5450,5450,4261,4239,5469,5450,4053,591,798, + 5471,616,3100,732,5450,5472,5470,564,5466,5467, + 5468,5450,5450,5450,5450,5450,1369,5450,5453,39, + 5089,5086,4851,806,4114,4195,2903,5450,4217,659, + 5712,5710,5719,5718,5714,5715,5713,5716,5717,5720, + 5711,5450,5450,5450,4173,4151,5450,5450,5450,5450, + 5450,5450,5450,5450,5450,5450,4261,4239,5469,5450, + 4053,591,798,5471,616,3100,732,5450,5472,5470, + 564,5466,5467,5468,39,5089,5086,4851,806,4114, + 4195,2903,1537,4217,659,5712,5710,5719,5718,5714, + 5715,5713,5716,5717,5720,5711,5450,5450,5450,4173, + 4151,5450,5450,5450,5450,5450,5450,5450,5450,5450, + 5450,4261,4239,5469,5450,4053,591,798,5471,616, + 3100,732,5450,5472,5470,564,5466,5467,5468,5450, + 5450,5450,5450,5450,1369,39,5089,5086,3458,806, + 4114,4195,2903,5450,4217,659,5712,5710,5719,5718, + 5714,5715,5713,5716,5717,5720,5711,5450,5450,5450, + 4173,4151,5450,5450,5450,5450,5450,5450,5450,5450, + 5450,5450,4261,4239,5469,5450,4053,591,798,5471, + 616,3100,732,5450,5472,5470,564,5466,5467,5468, + 39,5089,5086,4851,806,4114,4195,2903,5450,4217, + 659,5712,5710,5719,5718,5714,5715,5713,5716,5717, + 5720,5711,5450,5450,5450,4173,4151,5450,5450,5450, + 5450,5450,5450,5450,5450,5450,5450,4261,4239,5469, + 5450,4053,591,798,5471,616,3100,732,5450,5472, + 5470,564,5466,5467,5468,39,5089,5086,4851,806, + 4114,4195,2903,5450,4217,659,5712,5710,5719,5718, + 5714,5715,5713,5716,5717,5720,5711,5450,5450,5450, + 4173,4151,5450,5450,5450,5450,5450,5450,5450,5450, + 5450,5450,4261,4239,5469,5450,4053,591,798,5471, + 616,3100,732,5450,5472,5470,564,5466,5467,5468, + 5450,5089,5086,5450,5488,5450,5450,5450,5450,5450, + 788,5712,5710,5719,5718,5714,5715,5713,5716,5717, + 5720,5711,5708,5785,5786,5450,5450,5450,5702,5709, + 5705,5681,5707,5706,5703,5704,5682,5450,5450,5450, + 5846,5450,5450,5450,5450,5450,5450,5450,5450,239, + 5263,5259,5450,5267,5450,5450,2437,5847,5848,788, + 5250,5256,5229,5232,5244,5241,5247,5238,5235,5226, + 5253,5205,5199,5196,5450,5450,5450,5223,5202,5214, + 5193,5208,5211,5220,5217,5190,5450,5450,5450,5846, + 32,386,386,5285,386,386,5285,386,5285,5285, + 5450,5450,5450,5450,5450,2437,5847,5848,5450,5450, + 5450,5450,386,386,386,5450,221,5285,386,386, + 386,386,386,386,386,386,386,5712,5710,5719, + 5718,5714,5715,5713,5716,5717,5720,5711,5708,5785, + 5786,5450,5450,5450,5702,5709,5705,5681,5707,5706, + 5703,5704,5682,5285,5450,5450,5450,5450,5450,5450, + 5450,5450,5450,5285 }; }; public final static char termAction[] = TermAction.termAction; @@ -1800,60 +1810,60 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 174,7,380,1,215,830,830,830,830,1105, - 215,570,570,746,570,167,364,169,381,381, - 381,381,381,381,381,381,381,572,578,583, - 580,587,585,592,590,594,593,595,230,596, - 380,380,786,786,786,786,419,626,15,15, - 567,786,472,126,570,570,15,419,126,126, - 117,364,938,785,1020,1107,1042,380,570,572, - 550,550,626,380,381,381,381,381,381,381, - 381,381,381,381,381,381,381,381,381,381, - 381,381,381,380,380,380,380,380,380,380, - 380,380,380,380,380,381,126,932,932,932, - 932,327,126,15,15,1103,1031,1042,79,1042, - 74,1042,620,1042,1026,1105,419,472,472,15, - 830,381,1103,432,693,683,682,475,1049,1049, - 1105,169,472,785,380,417,1019,416,418,416, - 126,472,580,580,578,578,578,585,585,585, - 585,583,583,590,587,587,593,592,594,1119, - 595,215,215,215,215,419,419,932,931,932, - 567,419,279,282,76,326,77,1105,419,419, - 327,932,117,472,611,126,695,697,419,1020, - 381,786,576,82,126,1107,419,419,418,1020, - 380,380,380,380,380,215,215,364,280,563, - 282,419,742,670,740,327,79,331,419,327, - 419,126,687,675,686,697,327,417,126,576, - 1103,1019,1107,419,417,126,126,126,126,626, - 626,280,563,820,419,282,1119,77,830,329, - 67,1109,282,742,741,742,742,327,331,331, - 419,419,422,380,684,684,217,217,419,691, - 1103,886,126,419,576,577,576,380,82,72, - 572,1107,126,126,563,562,1020,511,79,932, - 830,416,557,1111,413,215,742,742,742,742, - 419,331,820,818,819,422,380,380,697,419, - 1020,126,695,675,422,1084,576,626,381,472, - 72,563,417,511,511,833,298,417,742,742, - 413,616,381,1119,225,823,419,1103,742,742, - 732,820,381,419,926,697,422,577,126,472, - 617,820,668,980,271,215,77,870,511,511, - 298,417,742,79,1105,1111,381,381,1019,413, - 878,813,733,419,926,126,926,832,271,668, - 882,1105,820,931,830,9,9,617,79,344, - 878,419,215,732,419,1105,1105,419,215,919, - 926,833,511,617,224,616,126,1105,419,298, - 833,298,930,930,934,345,1105,419,626,419, - 419,419,698,919,511,380,130,413,617,419, - 419,298,786,786,934,344,1119,381,1119,617, - 343,215,215,215,345,215,419,238,617,617, - 419,79,126,419,419,125,921,820,126,820, - 79,419,617,931,336,215,336,345,1119,345, - 364,364,362,936,364,617,617,228,934,786, - 921,820,130,617,730,886,345,126,413,126, - 362,271,215,126,934,130,9,126,126,1097, - 345,228,345,617,271,380,345,342,819,930, - 79,79,1099,380,343,626,617,126,615,129, - 416,345,126,617,615,615,345 + 179,7,764,1,220,868,868,868,868,1105, + 220,886,886,648,886,125,748,127,765,765, + 765,765,765,765,765,765,765,888,894,899, + 896,903,901,908,906,910,909,911,284,912, + 764,764,688,688,688,688,803,527,20,20, + 883,688,437,176,886,886,20,803,176,176, + 167,748,938,687,1020,1107,1042,764,886,888, + 479,479,527,764,765,765,765,765,765,765, + 765,765,765,765,765,765,765,765,765,765, + 765,765,765,764,764,764,764,764,764,764, + 764,764,764,764,764,765,176,857,857,857, + 857,267,176,20,20,1103,1031,1042,84,1042, + 79,1042,571,1042,1026,1105,803,437,437,20, + 868,765,1103,397,595,585,584,486,1049,1049, + 1105,127,437,687,764,801,1019,800,802,800, + 176,437,896,896,894,894,894,901,901,901, + 901,899,899,906,903,903,909,908,910,1119, + 911,220,220,220,220,803,803,857,856,857, + 883,803,333,222,81,266,82,1105,803,803, + 267,857,167,437,927,176,597,599,803,1020, + 765,688,892,132,176,1107,803,803,802,1020, + 764,764,764,764,764,220,220,748,334,881, + 879,222,803,644,15,642,267,84,382,803, + 267,803,176,589,577,588,599,267,801,176, + 892,1103,1019,1107,803,801,176,176,176,176, + 527,527,334,879,841,803,222,1119,82,868, + 269,72,1109,222,644,643,644,644,267,382, + 382,803,803,387,764,586,586,271,271,803, + 593,1103,806,176,803,892,893,892,764,132, + 77,888,1107,176,176,879,879,1020,440,84, + 857,868,800,522,1111,797,220,644,644,644, + 644,803,382,841,839,840,387,764,764,599, + 803,1020,176,597,577,387,1084,892,527,765, + 437,77,879,878,801,440,440,337,238,801, + 644,644,797,932,765,1119,279,861,803,1103, + 644,644,634,841,765,803,851,599,387,893, + 176,437,879,933,841,569,980,325,220,82, + 374,440,440,238,801,644,84,1105,1111,765, + 765,1019,797,870,715,635,803,851,176,851, + 336,325,569,874,1105,841,856,868,9,9, + 933,84,728,870,803,220,634,803,1105,1105, + 803,220,844,851,337,440,933,278,932,176, + 1105,803,238,337,238,855,855,859,729,1105, + 803,527,803,803,803,600,844,440,764,88, + 797,933,803,803,238,688,688,859,728,1119, + 765,1119,933,727,220,220,220,729,220,803, + 292,933,933,803,84,176,803,803,175,846, + 841,176,841,84,803,933,856,720,220,720, + 729,1119,729,748,748,746,936,748,933,933, + 282,859,688,846,841,88,933,632,806,729, + 176,797,176,746,325,220,176,859,88,9, + 176,176,1097,729,282,729,933,325,764,729, + 726,840,855,84,84,1099,764,727,527,933, + 176,931,87,800,729,176,933,931,931,729 }; }; public final static char asb[] = Asb.asb; @@ -1862,99 +1872,99 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static byte asr[] = {0, 8,72,117,73,27,70,120,0,68,69, - 70,1,2,0,28,11,12,40,23,42, - 65,13,43,56,29,30,44,14,31,32, - 15,16,33,66,34,45,17,18,46,35, - 47,57,49,60,50,36,51,58,19,22, - 20,24,21,52,53,54,39,3,37,38, - 9,6,25,26,41,68,7,1,2,4, - 10,5,0,48,4,72,1,2,67,8, + 70,1,2,0,4,8,72,67,0,28, + 11,12,40,23,42,65,13,43,56,29, + 30,44,14,31,32,15,16,33,66,34, + 45,17,18,46,35,47,57,49,60,50, + 36,51,58,19,22,20,24,21,52,53, + 54,39,3,37,38,9,6,25,26,41, + 68,7,1,2,4,10,5,0,48,4, + 72,1,2,67,8,0,71,60,37,38, + 9,6,25,26,41,46,3,4,52,53, + 54,39,50,44,49,12,21,11,17,15, + 16,18,19,14,13,20,10,43,47,45, + 42,51,67,8,7,5,1,2,66,65, 0,91,89,25,26,92,93,87,88,55, 94,95,96,97,98,99,100,101,106,72, 90,69,107,108,109,110,111,112,113,114, 115,116,117,71,27,120,68,1,2,9, - 6,4,3,63,70,73,8,0,71,60, - 37,38,9,6,25,26,41,46,3,4, - 52,53,54,39,50,44,49,12,21,11, - 17,15,16,18,19,14,13,20,10,43, - 47,45,42,51,67,8,7,5,1,2, - 66,65,0,11,12,42,65,13,43,44, - 14,15,16,66,7,45,17,18,46,47, - 49,60,50,51,10,19,20,21,52,53, - 54,39,1,2,37,38,9,6,25,26, - 5,41,4,61,3,0,74,68,72,90, - 73,67,63,3,8,70,27,69,0,68, - 72,90,70,117,73,71,120,11,12,42, - 65,13,43,44,14,15,16,66,45,17, - 18,46,47,49,60,50,51,10,19,20, - 21,52,53,54,39,37,38,25,26,41, - 8,27,5,7,1,2,4,3,9,6, + 6,4,3,63,70,73,8,0,11,12, + 42,65,13,43,44,14,15,16,66,7, + 45,17,18,46,47,49,60,50,51,10, + 19,20,21,52,53,54,39,1,2,37, + 38,9,6,25,26,5,41,4,61,3, 0,86,59,7,102,103,104,62,8,3, 9,6,5,72,71,27,61,28,11,12, 40,23,13,56,29,30,14,31,32,15, 16,33,34,17,18,35,57,36,10,58, 19,22,20,24,21,4,1,2,48,0, - 1,2,8,71,0,86,102,103,104,48, - 72,118,121,71,61,74,62,59,64,76, - 78,84,82,75,80,81,83,85,67,77, - 79,27,8,28,40,23,56,29,30,31, - 32,33,34,35,57,36,58,22,24,60, - 65,66,10,43,47,45,42,51,12,21, - 11,17,15,16,18,19,14,13,20,52, - 53,54,39,50,44,49,37,38,25,26, - 41,46,9,6,3,4,7,5,1,2, - 0,23,60,24,8,68,90,69,70,73, - 0,65,66,3,10,43,47,45,42,51, - 12,21,11,17,15,16,18,19,14,13, - 20,52,53,54,39,50,44,49,5,7, - 4,37,38,9,6,25,26,41,46,1, - 2,117,8,0,28,11,12,23,13,29, - 30,14,31,32,15,16,33,7,34,17, - 18,35,36,19,22,20,24,21,1,2, - 8,63,9,6,5,4,73,27,3,0, - 64,28,11,12,40,23,13,56,29,86, - 30,14,31,32,15,16,33,59,34,17, - 18,35,57,36,10,58,19,62,22,20, - 24,21,8,3,9,6,71,27,61,7, - 4,48,5,1,2,0,8,72,67,74, - 0,60,23,7,24,5,1,2,4,74, - 67,119,105,37,38,63,3,91,89,6, - 92,93,25,26,88,87,55,94,95,96, - 97,9,98,99,100,68,90,73,120,69, - 107,108,109,110,111,112,113,114,115,116, - 72,117,101,106,71,70,27,8,0,4, - 8,67,1,2,0,8,73,11,12,42, - 65,13,43,44,14,15,16,66,7,45, - 17,18,46,47,49,60,50,51,10,19, - 20,21,52,53,54,1,2,3,37,38, - 9,6,25,26,5,41,4,39,0,4, - 8,72,67,0,9,6,7,5,4,1, - 2,3,63,68,69,70,8,73,90,0, - 5,7,3,63,6,9,90,28,11,12, - 23,13,56,29,30,14,31,32,15,16, - 33,34,17,18,35,57,36,10,58,19, - 22,20,24,21,1,2,4,73,8,40, - 0,22,1,2,4,102,103,104,0,4, - 55,8,72,67,0,66,65,25,26,6, - 92,93,98,9,99,5,41,69,55,68, - 110,111,107,108,109,115,114,116,88,87, - 112,113,96,97,94,95,100,101,37,38, - 70,89,105,63,3,28,11,12,40,23, - 13,56,29,30,14,31,32,15,16,33, - 34,17,18,35,57,36,10,58,19,20, - 24,21,1,2,4,22,0,69,70,71, - 8,0,72,8,63,3,69,70,27,55, - 0,67,40,23,13,56,29,14,31,32, - 15,16,33,34,17,18,35,57,36,58, - 19,22,20,24,21,12,11,28,8,3, - 9,6,27,62,64,86,30,61,48,7, - 1,2,5,4,10,59,0,8,67,70, - 0,8,67,69,0,28,11,12,40,23, + 74,68,72,90,73,67,63,3,8,70, + 27,69,0,68,72,90,70,117,73,71, + 120,11,12,42,65,13,43,44,14,15, + 16,66,45,17,18,46,47,49,60,50, + 51,10,19,20,21,52,53,54,39,37, + 38,25,26,41,8,27,5,7,1,2, + 4,3,9,6,0,67,40,23,13,56, + 29,14,31,32,15,16,33,34,17,18, + 35,57,36,58,19,22,20,24,21,12, + 11,28,8,3,9,6,27,62,64,86, + 30,61,48,7,1,2,5,4,10,59, + 0,1,2,8,71,0,23,60,24,8, + 68,90,69,70,73,0,65,66,3,10, + 43,47,45,42,51,12,21,11,17,15, + 16,18,19,14,13,20,52,53,54,39, + 50,44,49,5,7,4,37,38,9,6, + 25,26,41,46,1,2,117,8,0,64, + 28,11,12,40,23,13,56,29,86,30, + 14,31,32,15,16,33,59,34,17,18, + 35,57,36,10,58,19,62,22,20,24, + 21,8,3,9,6,71,27,61,7,4, + 48,5,1,2,0,28,11,12,23,13, + 29,30,14,31,32,15,16,33,7,34, + 17,18,35,36,19,22,20,24,21,1, + 2,8,63,9,6,5,4,73,27,3, + 0,8,72,67,74,0,8,73,11,12, + 42,65,13,43,44,14,15,16,66,7, + 45,17,18,46,47,49,60,50,51,10, + 19,20,21,52,53,54,1,2,3,37, + 38,9,6,25,26,5,41,4,39,0, + 4,8,67,1,2,0,9,6,7,5, + 4,1,2,3,63,68,69,70,8,73, + 90,0,5,7,3,63,6,9,90,28, + 11,12,23,13,56,29,30,14,31,32, + 15,16,33,34,17,18,35,57,36,10, + 58,19,22,20,24,21,1,2,4,73, + 8,40,0,22,1,2,4,102,103,104, + 0,4,55,8,72,67,0,66,65,25, + 26,6,92,93,98,9,99,5,41,69, + 55,68,110,111,107,108,109,115,114,116, + 88,87,112,113,96,97,94,95,100,101, + 37,38,70,89,105,63,3,28,11,12, + 40,23,13,56,29,30,14,31,32,15, + 16,33,34,17,18,35,57,36,10,58, + 19,20,24,21,1,2,4,22,0,86, + 102,103,104,48,72,118,121,71,61,74, + 62,59,64,76,78,84,82,75,80,81, + 83,85,67,77,79,27,8,28,40,23, + 56,29,30,31,32,33,34,35,57,36, + 58,22,24,60,65,66,10,43,47,45, + 42,51,12,21,11,17,15,16,18,19, + 14,13,20,52,53,54,39,50,44,49, + 37,38,25,26,41,46,9,6,3,4, + 7,5,1,2,0,28,11,12,40,23, 13,56,29,30,14,31,32,15,16,33, 34,17,18,35,57,36,10,58,19,22, - 20,24,21,1,2,4,90,0,23,24, - 74,3,72,27,67,60,8,90,73,69, - 70,68,0,118,0,75,0,65,66,37, + 20,24,21,1,2,4,90,0,69,70, + 71,8,0,23,24,74,3,72,27,67, + 60,8,90,73,69,70,68,0,118,0, + 72,8,63,3,69,70,27,55,0,8, + 67,70,0,8,67,69,0,60,23,24, + 7,5,1,2,4,74,67,119,105,37, + 38,63,3,91,89,6,92,93,25,26, + 88,87,55,94,95,96,97,9,98,99, + 100,68,90,73,120,69,107,108,109,110, + 111,112,113,114,115,116,72,117,101,106, + 71,70,27,8,0,75,0,65,66,37, 38,9,6,25,26,5,41,46,3,4, 7,52,53,54,39,50,44,49,12,21, 11,17,15,16,18,19,14,13,20,10, @@ -1980,60 +1990,60 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasb { public final static char nasb[] = {0, - 83,12,71,12,12,12,12,12,12,75, - 12,12,12,206,12,202,276,91,71,71, - 232,71,71,71,71,71,71,12,12,12, - 12,12,12,12,12,12,12,12,71,12, - 71,170,39,39,39,39,91,127,146,146, - 88,5,113,282,12,12,146,236,282,282, - 123,1,71,100,32,12,12,170,12,12, - 17,17,127,170,71,71,71,71,71,71, - 71,71,71,71,71,71,71,71,71,71, - 71,71,71,71,71,71,71,71,71,71, - 71,71,71,71,170,71,282,12,12,12, - 12,25,282,34,34,158,254,255,194,255, - 52,255,119,255,248,10,91,113,113,34, - 12,71,158,108,122,61,61,12,12,12, - 10,91,113,39,46,202,213,201,91,201, - 282,113,12,12,12,12,12,12,12,12, + 69,12,60,12,12,12,12,12,12,64, + 12,12,12,184,12,196,276,79,60,60, + 247,60,60,60,60,60,60,12,12,12, + 12,12,12,12,12,12,12,12,60,12, + 60,171,39,39,39,39,79,110,142,142, + 54,5,95,282,12,12,142,251,282,282, + 106,1,60,49,32,12,12,171,12,12, + 17,17,110,171,60,60,60,60,60,60, + 60,60,60,60,60,60,60,60,60,60, + 60,60,60,60,60,60,60,60,60,60, + 60,60,60,60,171,60,282,12,12,12, + 12,25,282,34,34,158,265,266,182,266, + 46,266,113,266,259,10,79,95,95,34, + 12,60,158,90,105,77,77,12,12,12, + 10,79,95,39,51,196,217,195,79,195, + 282,95,12,12,12,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,116,11,12,12,12, - 185,91,12,146,115,75,49,75,91,11, - 12,12,183,113,12,282,173,146,91,32, - 71,39,146,55,282,12,11,91,210,32, - 71,170,170,170,170,12,12,34,160,146, - 257,116,13,13,12,217,194,146,217,31, - 116,282,12,139,12,176,30,116,282,66, - 185,213,12,236,116,282,282,282,282,127, - 127,12,42,64,91,136,12,150,12,12, - 23,264,257,13,13,146,146,31,146,237, - 11,116,146,71,12,12,61,61,91,138, - 158,176,282,116,146,28,12,170,185,211, - 12,12,282,282,146,42,32,146,194,12, - 12,75,146,153,141,12,146,146,148,148, - 116,237,64,12,12,42,71,71,146,11, - 32,282,173,196,146,12,66,127,71,113, - 211,42,202,227,146,239,146,217,146,94, - 198,136,71,12,86,12,91,158,148,148, - 179,64,71,237,146,176,42,28,282,113, - 136,64,12,239,265,12,49,23,239,227, - 176,202,94,58,130,141,71,71,77,198, - 12,75,106,217,96,282,146,193,153,12, - 12,75,64,12,12,15,15,136,58,63, - 12,217,12,244,217,75,75,11,12,146, - 96,239,146,136,44,12,282,75,217,176, - 239,146,12,12,146,167,130,11,127,11, - 217,217,280,42,227,46,69,141,136,217, - 151,176,39,39,102,189,12,71,12,136, - 12,12,12,12,190,12,237,134,136,136, - 237,80,282,11,11,282,146,64,282,146, - 194,151,136,12,104,12,12,190,12,190, - 220,220,162,12,220,136,136,12,146,39, - 96,64,146,136,12,39,190,282,141,282, - 272,146,12,282,102,69,15,282,282,146, - 190,12,190,136,141,170,190,104,64,12, - 80,80,139,71,12,224,136,282,98,68, - 201,190,282,136,98,12,190 + 12,12,12,12,12,98,11,12,12,12, + 146,79,12,142,97,64,74,64,79,11, + 12,12,144,95,12,282,211,142,79,32, + 60,39,142,66,282,12,11,79,131,32, + 60,171,171,171,171,12,12,34,160,160, + 160,124,98,13,13,12,227,182,142,227, + 31,98,282,12,135,12,214,30,98,282, + 103,146,217,12,251,98,282,282,282,282, + 110,110,12,142,151,79,122,12,224,12, + 12,23,268,124,13,13,142,142,31,142, + 252,11,98,142,60,12,12,77,77,79, + 134,158,214,282,98,142,28,12,171,146, + 132,12,12,282,282,160,42,32,142,182, + 12,12,64,142,153,137,12,142,142,166, + 166,98,252,151,12,12,42,60,60,142, + 11,32,282,211,190,142,12,103,110,60, + 95,132,142,42,196,242,142,254,142,227, + 142,44,192,122,60,12,82,12,79,158, + 166,166,162,151,60,252,142,214,42,28, + 282,95,42,122,151,12,254,269,12,74, + 23,254,242,214,196,44,208,116,137,60, + 60,174,192,12,64,88,227,72,282,142, + 181,153,12,12,64,151,12,12,15,15, + 122,208,150,12,227,12,234,227,64,64, + 11,12,142,72,254,142,122,101,12,282, + 64,227,214,254,142,12,12,142,168,116, + 11,110,11,227,227,280,42,242,51,58, + 137,122,227,225,214,39,39,86,177,12, + 60,12,122,12,12,12,12,178,12,252, + 120,122,122,252,205,282,11,11,282,142, + 151,282,142,182,225,122,12,188,12,12, + 178,12,178,238,238,200,12,238,122,122, + 12,142,39,72,151,142,122,12,39,178, + 282,137,282,230,142,12,282,86,58,15, + 282,282,142,178,12,178,122,137,171,178, + 188,151,12,205,205,135,60,12,221,122, + 282,84,57,195,178,282,122,84,12,178 }; }; public final static char nasb[] = Nasb.nasb; @@ -2045,30 +2055,30 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 2,0,109,0,108,0,5,2,9,10, 139,0,156,0,136,65,0,141,0,136, 2,65,0,5,10,9,2,13,4,45, - 0,62,0,184,0,4,29,0,40,1, - 0,153,188,0,4,177,0,40,160,0, - 75,0,4,67,0,143,0,67,129,40, - 10,9,2,13,5,0,65,54,0,40, - 55,0,4,174,0,191,0,4,195,0, - 2,44,0,159,0,126,0,162,0,175, - 0,161,0,113,0,193,0,13,2,9, - 10,5,83,0,44,2,3,0,153,183, - 0,35,94,95,4,0,4,97,0,172, - 5,171,0,4,39,38,0,35,95,94, - 64,5,2,9,10,4,0,110,0,40, - 104,0,4,10,9,2,64,5,90,54, - 0,39,4,23,181,0,48,40,179,4, - 39,0,54,5,90,23,4,0,5,102, - 192,0,95,94,54,5,57,0,67,39, - 48,68,4,40,0,95,94,54,64,57, - 5,10,9,2,0,4,45,196,0,2, - 115,0,65,138,137,0,2,56,0,4, - 45,103,0,4,178,0,116,4,48,82, - 0,5,10,9,13,3,1,0,4,48, - 82,84,0,5,102,168,0,2,5,121, - 117,118,119,13,87,0,4,48,82,102, - 46,5,0,38,5,2,9,10,4,158, - 0,45,4,180,0,4,45,39,0,45, + 0,62,0,159,0,153,188,0,175,0, + 4,29,0,4,195,0,67,129,40,10, + 9,2,13,5,0,4,177,0,4,174, + 0,126,0,40,1,0,75,0,2,44, + 0,191,0,162,0,161,0,193,0,13, + 2,9,10,5,83,0,44,2,3,0, + 184,0,143,0,35,94,95,4,0,4, + 97,0,153,183,0,172,5,171,0,4, + 39,38,0,4,48,82,102,46,5,0, + 2,115,0,35,95,94,64,5,2,9, + 10,4,0,95,94,49,5,57,0,4, + 67,0,4,10,9,2,64,5,90,49, + 0,5,102,192,0,110,0,48,40,179, + 4,39,0,65,49,0,67,39,48,68, + 4,40,0,4,45,196,0,113,0,95, + 94,49,64,57,5,10,9,2,0,39, + 4,23,181,0,40,55,0,40,160,0, + 49,5,90,23,4,0,65,138,137,0, + 4,178,0,40,104,0,2,56,0,45, + 4,180,0,5,102,168,0,4,45,103, + 0,116,4,48,82,0,5,10,9,13, + 3,1,0,4,48,82,84,0,2,5, + 121,117,118,119,13,87,0,38,5,2, + 9,10,4,158,0,4,45,39,0,45, 4,35,0 }; }; @@ -2125,18 +2135,18 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopePrefix { public final static char scopePrefix[] = { - 159,576,595,308,527,543,554,565,367,266, - 280,302,315,328,42,291,387,425,167,584, - 478,20,51,71,80,85,90,130,195,297, - 321,336,341,144,272,286,502,27,144,377, - 341,603,27,217,245,1,14,61,76,106, - 346,356,360,443,471,523,613,617,621,97, - 7,97,405,421,434,455,515,232,116,116, - 434,534,550,561,572,207,489,56,56,156, - 222,225,56,240,261,225,225,56,364,468, - 475,156,56,636,110,350,409,449,462,56, - 350,396,177,104,447,625,632,625,632,65, - 415,137,104,104,250 + 159,577,596,309,528,544,555,566,368,267, + 281,303,316,329,42,292,388,426,167,585, + 479,20,51,71,80,85,90,130,195,298, + 322,337,342,144,273,287,503,27,144,378, + 342,604,27,217,246,1,14,61,76,106, + 347,357,361,444,472,524,614,618,622,97, + 7,97,406,422,435,456,516,116,116,232, + 435,535,551,562,573,207,490,56,56,156, + 222,225,56,241,262,225,225,56,365,469, + 476,156,56,637,110,351,410,450,463,56, + 351,397,177,104,448,626,633,626,633,65, + 416,137,104,104,251 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2144,18 +2154,18 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeSuffix { public final static char scopeSuffix[] = { - 18,5,5,135,5,5,5,5,374,135, - 95,135,135,334,48,277,393,431,173,67, - 484,25,25,25,59,59,95,135,200,135, - 326,326,334,149,277,101,507,38,152,382, - 590,608,32,211,211,5,18,5,59,95, - 326,95,95,135,243,5,5,5,243,634, - 11,101,374,374,374,459,507,236,120,125, - 438,538,538,538,538,211,493,59,59,5, - 5,228,230,243,5,264,264,230,95,5, - 243,5,500,5,113,353,412,452,465,519, - 510,399,180,95,95,627,627,629,629,67, - 417,139,202,187,252 + 18,5,5,135,5,5,5,5,375,135, + 95,135,135,335,48,278,394,432,173,67, + 485,25,25,25,59,59,95,135,200,135, + 327,327,335,149,278,101,508,38,152,383, + 591,609,32,211,211,5,18,5,59,95, + 327,95,95,135,244,5,5,5,244,635, + 11,101,375,375,375,460,508,120,125,236, + 439,539,539,539,539,211,494,59,59,5, + 5,228,230,244,5,265,265,230,95,5, + 244,5,501,5,113,354,413,453,466,520, + 511,400,180,95,95,628,628,630,630,67, + 418,139,202,187,253 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2164,12 +2174,12 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLhs { public final static char scopeLhs[] = { 46,17,17,119,17,17,17,17,71,86, - 47,80,119,118,77,52,71,70,46,17, + 47,80,119,118,77,53,71,70,46,17, 19,3,7,8,168,168,164,117,46,81, - 118,118,120,128,53,47,139,133,128,71, + 118,118,120,128,54,47,139,133,128,71, 17,17,133,96,58,135,74,171,168,164, - 120,182,50,55,143,17,17,17,17,12, - 113,164,71,70,70,37,139,57,130,130, + 120,182,51,55,143,17,17,17,17,12, + 113,164,71,70,70,37,139,130,130,57, 70,17,17,17,17,96,19,172,168,184, 94,101,60,75,59,158,76,120,72,144, 143,175,139,16,164,120,103,69,21,139, @@ -2188,7 +2198,7 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 1,1,1,71,1,1,4,68,70,27, 1,1,68,73,73,73,118,73,1,27, 1,27,27,71,117,73,73,73,117,1, - 73,1,73,73,73,72,4,6,1,1, + 73,1,73,73,73,72,4,1,1,6, 73,68,68,68,68,73,3,1,1,73, 73,3,1,117,73,1,1,1,27,73, 117,73,5,73,1,48,69,72,73,1, @@ -2207,7 +2217,7 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 154,154,154,313,98,96,137,50,313,106, 250,250,50,146,66,26,106,30,54,82, 154,22,98,33,63,250,250,250,250,230, - 6,82,106,106,106,282,137,121,154,154, + 6,82,106,106,106,282,137,154,154,121, 106,250,250,250,250,146,250,30,54,24, 146,148,66,142,66,60,71,154,106,57, 63,140,137,250,82,154,1,106,251,137, @@ -2243,47 +2253,47 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,203,0,0,215,0,227,126,3,0, 126,0,0,0,0,0,227,126,3,216, 0,223,3,0,212,126,0,208,0,146, - 0,176,166,127,0,10,0,0,0,214, - 63,0,125,0,227,126,3,181,0,181, - 0,2,0,0,126,0,0,0,0,0, - 198,3,0,201,0,236,126,162,39,30, - 0,178,127,59,62,0,196,128,0,128, - 178,127,278,62,0,178,127,278,62,0, - 178,127,69,123,59,0,236,126,162,59, - 0,236,126,162,226,59,0,276,126,162, - 123,305,56,0,276,126,162,305,56,0, - 178,127,275,56,0,135,0,187,178,127, - 275,243,0,136,0,178,127,275,243,0, - 187,166,127,10,0,166,127,10,0,166, - 127,0,93,136,0,268,126,145,0,268, - 126,170,0,161,84,0,300,160,302,303, - 3,81,0,126,171,0,302,303,3,81, - 0,128,0,126,171,0,161,3,75,190, - 80,0,126,128,0,190,80,0,108,2, - 131,126,128,0,225,3,75,0,198,167, - 0,33,169,0,167,0,175,33,169,0, - 225,3,85,0,190,157,225,3,83,0, - 62,171,0,225,3,83,0,126,171,62, - 171,0,301,126,162,0,161,0,214,77, - 0,30,171,0,161,106,158,0,30,169, - 0,183,3,0,126,149,0,219,3,0, - 214,63,265,0,161,63,0,183,3,297, - 66,127,0,126,0,0,0,0,297,66, - 127,0,2,145,126,0,0,0,0,147, - 0,125,48,166,127,0,31,147,0,93, - 136,31,147,0,220,178,127,0,146,31, - 147,0,161,3,51,0,161,3,68,183, - 55,42,0,183,55,42,0,20,2,131, - 126,0,161,3,68,183,55,45,0,183, - 55,45,0,161,3,68,183,55,47,0, - 183,55,47,0,161,3,68,183,55,43, - 0,183,55,43,0,219,3,125,187,166, - 127,10,0,125,187,166,127,10,0,136, - 2,0,126,0,219,3,124,258,166,127, - 10,0,258,166,127,10,0,135,2,0, - 126,0,219,3,135,0,219,3,139,0, - 161,63,139,0,260,0,31,0,31,139, - 0,165,0,134,0,161,3,0 + 0,171,166,127,0,10,0,0,0,0, + 214,63,0,125,0,227,126,3,181,0, + 181,0,2,0,0,126,0,0,0,0, + 0,198,3,0,201,0,236,126,162,39, + 30,0,178,127,59,62,0,196,128,0, + 128,178,127,278,62,0,178,127,278,62, + 0,178,127,69,123,59,0,236,126,162, + 59,0,236,126,162,226,59,0,276,126, + 162,123,305,56,0,276,126,162,305,56, + 0,178,127,275,56,0,135,0,187,178, + 127,275,243,0,136,0,178,127,275,243, + 0,187,166,127,10,0,166,127,10,0, + 166,127,0,93,136,0,268,126,145,0, + 268,126,170,0,161,84,0,300,160,302, + 303,3,81,0,126,171,0,302,303,3, + 81,0,128,0,126,171,0,161,3,75, + 190,80,0,126,128,0,190,80,0,108, + 2,131,126,128,0,225,3,75,0,198, + 167,0,33,169,0,167,0,175,33,169, + 0,225,3,85,0,190,157,225,3,83, + 0,62,171,0,225,3,83,0,126,171, + 62,171,0,301,126,162,0,161,0,214, + 77,0,30,171,0,161,106,158,0,30, + 169,0,183,3,0,126,149,0,219,3, + 0,214,63,265,0,161,63,0,183,3, + 297,66,127,0,126,0,0,0,0,297, + 66,127,0,2,145,126,0,0,0,0, + 147,0,125,48,166,127,0,31,147,0, + 93,136,31,147,0,220,178,127,0,146, + 31,147,0,161,3,51,0,161,3,68, + 183,55,42,0,183,55,42,0,20,2, + 131,126,0,161,3,68,183,55,45,0, + 183,55,45,0,161,3,68,183,55,47, + 0,183,55,47,0,161,3,68,183,55, + 43,0,183,55,43,0,219,3,125,187, + 166,127,10,0,125,187,166,127,10,0, + 136,2,0,126,0,219,3,124,258,166, + 127,10,0,258,166,127,10,0,135,2, + 0,126,0,219,3,135,0,219,3,139, + 0,161,63,139,0,260,0,31,0,31, + 139,0,165,0,134,0,161,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2291,35 +2301,35 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 4782,4860,4808,3545,0,3081,2894,1883,1839,0, - 3672,3618,3560,3453,3399,3345,3291,3237,3183,2891, - 2837,2672,0,779,0,1402,1359,1325,0,2679, - 2452,0,3672,3618,3654,3518,3560,3453,3399,3345, - 3291,3237,1081,3183,2891,2837,3675,875,0,4448, - 3352,3728,0,4436,2843,0,785,660,0,4692, - 4672,0,2551,997,0,4525,4692,3945,2990,4672, - 2966,3528,4590,2798,2387,3915,4492,2629,2552,2513, - 0,4712,4609,0,4712,4609,3935,4438,4428,3828, - 4345,4335,4325,3818,0,4712,4609,3935,4438,4428, - 3828,4345,4335,4325,3818,3672,3618,3560,3453,3399, - 3345,3291,3237,3183,2891,2837,0,3358,3304,0, - 2387,4525,3936,3945,2990,3191,2629,3348,3886,3316, - 2842,2859,3023,3211,3210,0,666,578,0,1448, - 0,1361,1317,1170,919,2990,2859,2966,2552,2513, - 2433,2503,0,4541,535,2981,0,4800,4741,4724, - 4720,4705,4575,3660,3594,3513,3509,4822,3431,3333, - 4815,3967,3963,2013,3928,3269,3031,2536,2428,1278, - 0,3018,2879,4800,4741,4724,2867,2320,4720,2314, - 4705,4575,3660,3594,3513,3225,4044,3842,3509,3733, - 4822,3424,3406,3378,3103,3431,3333,3093,3217,4815, - 949,3967,625,3963,2013,3928,2600,3269,3031,2536, - 4541,2540,2981,2428,1278,2224,2136,870,806,734, - 2966,3528,4590,2798,2387,4525,3915,4692,3945,2990, - 4492,2629,2552,4672,2513,1265,932,666,578,3107, - 4303,4281,1184,2274,2356,2324,2473,2400,593,3160, - 3134,2814,2742,2715,2649,3795,3772,629,3747,2769, - 4259,4237,4215,4193,4171,4149,4127,4105,4083,4052, - 4022,2017,2236,2186,2148,2098,2060,1046,1326,1282, + 3420,4913,4893,3698,0,3368,3977,2924,1839,0, + 3678,3621,3558,3456,3400,3344,3288,3232,3176,2883, + 2827,3000,0,2271,0,1359,1325,1091,0,2465, + 2452,0,3678,3621,4100,3257,3558,3456,3400,3344, + 3288,3232,3010,3176,2883,2827,3830,3035,0,3851, + 2848,3547,0,3477,2671,0,1436,660,0,4776, + 4710,0,2534,2319,0,4626,4776,4613,2983,4710, + 2958,3531,4691,4025,2387,3946,4593,2592,2552,2513, + 0,2838,2503,0,2838,2503,3966,4506,4496,3859, + 4413,4403,4393,3849,0,2838,2503,3966,4506,4496, + 3859,4413,4403,4393,3849,3678,3621,3558,3456,3400, + 3344,3288,3232,3176,2883,2827,0,3208,3187,0, + 2387,4626,3648,4613,2983,4704,2592,3431,3388,3427, + 3184,2569,818,3259,2751,0,666,578,0,921, + 0,1754,1317,1255,1170,2983,2569,2958,2552,2513, + 2434,2538,0,4645,535,2974,0,4843,4839,4823, + 4819,4805,4771,4756,3959,3614,3516,4904,3512,3378, + 4900,4522,4103,2013,3875,3320,3210,3012,2428,1278, + 0,3633,3024,4843,4839,4823,2684,2320,4819,2314, + 4805,4771,4756,3959,3614,3201,3563,3490,3516,3406, + 4904,2888,2833,2765,2752,3512,3378,2565,2545,4900, + 949,4522,625,4103,2013,3875,2440,3320,3210,3012, + 4645,2307,2974,2428,1278,2224,2136,870,806,734, + 2958,3531,4691,4025,2387,4626,3946,4776,4613,2983, + 4593,2592,2552,4710,2513,1265,932,666,578,3100, + 4371,4349,1184,2274,2356,2324,2473,2400,593,3153, + 3127,2804,2777,2721,2694,3826,3803,629,3778,3753, + 4327,4305,4283,4261,4239,4217,4195,4173,4151,4114, + 4053,2017,2236,2186,2148,2098,2060,1046,1326,1282, 1222,886,1967,1929,824,750,688,1886,1843,1800, 1757,1714,1671,1628,1585,1542,1499,1456,535,1413, 1369,1141,1002,959,1092,0 @@ -2348,42 +2358,42 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 219,161,146,146,144,144,144,148,148,148, 148,147,147,150,149,149,153,152,154,161, 156,68,68,68,68,187,258,253,256,253, - 212,127,176,162,310,275,305,275,127,178, + 212,127,171,162,310,275,305,275,127,178, 166,253,212,214,158,223,126,3,127,166, 205,3,298,167,151,260,187,127,178,166, - 72,3,3,3,3,125,124,70,166,6, - 126,166,230,125,124,127,123,162,127,166, - 48,227,228,145,229,126,166,48,183,126, - 126,4,220,5,48,161,161,161,161,3, - 3,176,126,309,127,168,224,59,48,204, - 62,170,312,125,124,231,231,178,162,126, - 178,187,157,69,223,198,186,181,127,3, - 126,70,227,187,157,262,265,63,179,4, - 123,125,219,219,6,184,166,162,226,55, - 48,278,280,126,3,181,231,231,126,126, - 187,126,276,123,277,126,69,69,3,178, - 166,198,126,212,157,125,126,3,63,161, - 4,126,187,126,162,68,55,127,74,126, - 212,311,72,289,198,124,127,126,126,126, - 72,276,69,70,221,126,126,262,219,214, - 128,236,30,48,170,64,59,62,238,126, - 126,178,126,281,72,70,72,69,166,212, - 314,224,22,127,126,227,221,39,126,3, - 123,59,236,295,48,10,40,128,281,162, - 293,127,294,70,127,22,315,178,60,157, - 126,126,162,268,247,279,39,69,127,70, - 68,55,230,230,282,126,70,178,3,178, - 127,127,3,126,126,3,69,70,157,127, - 178,126,69,69,126,301,79,77,1,161, - 8,85,83,81,80,75,82,84,78,76, - 59,74,219,178,178,320,221,236,151,162, - 251,178,226,295,283,118,8,72,214,72, - 3,3,3,190,3,123,161,123,177,70, - 126,126,162,226,68,3,72,225,167,225, - 303,145,75,225,126,126,40,90,319,167, - 157,198,157,302,126,3,157,283,308,230, - 157,157,126,69,190,160,268,161,189,70, - 69,121,300,157,189,8,157 + 72,3,3,3,3,125,124,70,166,9, + 6,126,166,230,125,124,127,123,162,127, + 166,48,227,228,145,229,126,166,48,183, + 126,126,4,220,5,48,161,161,161,161, + 3,3,171,171,309,127,168,224,59,48, + 204,62,170,312,125,124,231,231,178,162, + 126,178,187,157,69,223,198,186,181,127, + 3,126,70,227,187,157,262,265,63,179, + 4,123,125,219,219,6,126,166,162,226, + 55,48,278,280,126,3,181,231,231,126, + 126,187,126,276,123,277,126,69,69,3, + 178,166,198,126,212,157,125,126,3,63, + 161,4,171,184,187,126,162,68,55,127, + 74,126,212,311,72,289,198,124,127,126, + 126,126,72,276,69,70,221,126,126,262, + 219,214,126,128,236,30,48,170,64,59, + 62,238,126,126,178,126,281,72,70,72, + 69,166,212,314,224,22,127,126,227,221, + 39,126,3,123,59,236,295,48,10,40, + 128,281,162,293,127,294,70,127,22,315, + 178,60,157,126,126,162,268,247,279,39, + 69,127,70,68,55,230,230,282,126,70, + 178,3,178,127,127,3,126,126,3,69, + 70,157,127,178,126,69,69,126,301,79, + 77,1,161,8,85,83,81,80,75,82, + 84,78,76,59,74,219,178,178,320,221, + 236,151,162,251,178,226,295,283,118,8, + 72,214,72,3,3,3,190,3,123,161, + 123,177,70,126,126,162,226,68,3,72, + 225,167,225,303,145,75,225,126,126,40, + 90,319,167,157,198,157,302,126,3,157, + 283,308,230,157,157,126,69,190,160,268, + 161,189,70,69,121,300,157,189,8,157 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2658,9 +2668,9 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 537, + NUM_STATES = 540, NT_OFFSET = 122, - LA_STATE_OFFSET = 5933, + LA_STATE_OFFSET = 5984, MAX_LA = 2147483647, NUM_RULES = 534, NUM_NONTERMINALS = 202, @@ -2670,8 +2680,8 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 120, EOLT_SYMBOL = 120, - ACCEPT_ACTION = 5034, - ERROR_ACTION = 5399; + ACCEPT_ACTION = 5085, + ERROR_ACTION = 5450; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java index abf6e595f02..89b76127a66 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java @@ -17,13 +17,20 @@ import lpg.lpgjavaruntime.*; import java.util.*; import org.eclipse.cdt.core.dom.ast.*; +import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter; +import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap; import org.eclipse.cdt.core.dom.lrparser.IParser; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.ITokenCollector; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack; +import org.eclipse.cdt.core.parser.IScanner; +import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider; +import org.eclipse.cdt.core.index.IIndex; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; +import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser; import org.eclipse.cdt.core.dom.ast.cpp.*; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPNodeFactory; @@ -32,7 +39,9 @@ import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPSecondaryParserFactory; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateParameter; -public class CPPTemplateTypeParameterParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser< ICPPASTTemplateParameter > +public class CPPTemplateTypeParameterParser extends PrsStream implements RuleAction, ITokenStream, + ITokenCollector, IParser< ICPPASTTemplateParameter > + , ISecondaryParser< ICPPASTTemplateParameter > { private static ParseTable prs = new CPPTemplateTypeParameterParserprs(); private FixedBacktrackingParser btParser; @@ -170,7 +179,11 @@ public class CPPTemplateTypeParameterParser extends PrsStream implements RuleAct private CPPBuildASTParserAction action; private IASTCompletionNode compNode; -public CPPTemplateTypeParameterParser() { // constructor + +public CPPTemplateTypeParameterParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Set options) { + initActions(options); + action.initializeTranslationUnit(scanner, builtinBindingsProvider, index); + CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap); } private void initActions(Set options) { @@ -189,10 +202,9 @@ public void addToken(IToken token) { } -public ICPPASTTemplateParameter parse(Set options) { +public ICPPASTTemplateParameter parse() { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(options); final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse @@ -235,12 +247,12 @@ public void setTokens(List tokens) { addToken(new Token(null, 0, 0, CPPTemplateTypeParameterParsersym.TK_EOF_TOKEN)); } -public CPPTemplateTypeParameterParser(IParserActionTokenProvider parser) { // constructor +public CPPTemplateTypeParameterParser(ITokenStream parser, Set options) { // constructor for creating secondary parser + initActions(options); tokenMap = new TokenMap(CPPTemplateTypeParameterParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols()); } - public void ruleAction(int ruleNumber) { switch (ruleNumber) @@ -1423,19 +1435,19 @@ public CPPTemplateTypeParameterParser(IParserActionTokenProvider parser) { // c } // - // Rule 328: ptr_operator ::= pointer_hook * cv_qualifier_seq_opt + // Rule 328: ptr_operator ::= pointer_hook * pointer_hook cv_qualifier_seq_opt // case 328: { action. consumePointer(); break; } // - // Rule 329: ptr_operator ::= pointer_hook & + // Rule 329: ptr_operator ::= pointer_hook & pointer_hook // case 329: { action. consumeReferenceOperator(); break; } // - // Rule 330: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * cv_qualifier_seq_opt + // Rule 330: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook cv_qualifier_seq_opt // case 330: { action. consumePointerToMember(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParserprs.java index b153907df19..92c2722a884 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParserprs.java @@ -69,7 +69,7 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 1,3,1,1,1,6,5,7,6,1, 0,6,5,6,4,1,3,1,0,1, 1,2,1,1,3,1,3,1,1,1, - 1,3,9,2,2,3,2,4,2,6, + 1,3,9,2,2,3,2,5,3,7, 0,1,2,2,1,0,1,1,1,3, 1,2,1,1,2,3,1,1,1,3, 2,1,2,2,9,8,2,1,3,1, @@ -92,444 +92,449 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 4,1,2,5,5,3,3,1,4,3, 1,0,1,3,1,1,-126,0,0,0, -2,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-483,0, - 0,0,0,0,0,0,-3,0,-7,0, - 0,0,0,0,-4,0,0,0,0,-8, + 0,0,0,0,0,0,0,0,-3,0, + 0,0,0,0,0,0,-7,0,-8,0, + 0,0,0,0,-4,0,0,0,0,-12, -132,0,0,0,-22,0,0,0,0,0, - 0,0,0,-433,-149,0,0,0,0,0, + 0,0,0,-436,-149,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-12,0,0,0, - 0,0,0,0,0,0,-425,0,0,0, + 0,0,0,0,0,0,-16,0,0,0, + 0,0,0,0,0,0,-428,0,0,0, -140,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-16,0,0,0,0,0,0,0, - 0,-91,-323,0,0,0,-261,0,-133,0, - 0,0,0,0,0,0,0,0,0,0, + 0,0,-19,0,0,0,0,0,0,0, + 0,-91,-324,0,0,0,-262,0,-133,0, + 0,0,-182,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,-170, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-19,0,-55,0,0,0,0,0,-20, - 0,0,-176,-326,0,-34,-26,0,0,0, - 0,-271,0,0,0,-171,0,0,0,0, + 0,0,0,-20,0,0,0,0,-6,-420, + 0,0,0,0,0,-26,0,0,0,-186, + 0,0,0,-375,0,-171,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-6,0,0,0,0, - 0,0,0,-388,0,0,0,0,0,0, - 0,-355,0,0,-45,0,0,0,0,0, - 0,-373,0,-195,0,0,0,0,0,0, - 0,0,0,0,0,0,-400,0,-5,0, - 0,0,0,0,-128,0,-175,0,0,0, + 0,0,0,0,0,-85,0,0,0,0, + 0,0,0,-391,0,0,0,0,0,-27, + 0,-445,0,0,0,-176,0,-23,0,-28, + 0,-30,0,-196,0,0,0,0,0,0, + 0,0,0,0,0,0,-327,0,-5,0, + 0,0,0,0,-344,0,-175,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -23,0,0,0,-279,0,0,0,0,0, - 0,0,-532,0,-85,-47,0,0,0,0, - 0,0,-293,0,0,0,0,0,0,0, + 0,0,0,0,-45,0,0,0,0,0, + 0,0,0,-194,0,0,-287,0,0,0, + 0,0,-294,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-213,0,0,0,0,0,0,0, - -210,0,0,0,0,0,0,0,0,0, - -49,0,0,0,0,0,0,0,-27,0, - -216,0,0,0,-186,0,0,0,0,0, + 0,0,-214,0,-128,0,0,0,0,0, + -211,0,0,0,0,0,0,0,-49,0, + 0,-86,0,0,0,0,-398,0,0,0, + -217,0,0,0,-44,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-511,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-310,0,0,0,0,0,0, - 0,-28,0,-30,0,0,0,0,0,0, - -44,0,0,0,-533,0,0,0,-50,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-368,0,0,0, - 0,0,0,0,0,0,-395,0,0,0, - 0,0,-51,-472,0,0,0,-109,0,-345, + 0,-514,0,0,0,-535,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-381, - 0,-405,0,0,0,0,0,0,0,-37, - 0,0,-83,0,0,-450,0,0,0,0, + 0,-50,0,0,0,0,0,0,0,-470, + 0,0,0,0,-536,0,0,0,-187,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-202,0,0, - 0,0,0,0,0,-39,0,-182,0,0, - 0,0,0,0,0,0,0,0,0,-467, + 0,0,0,0,0,0,-370,0,0,0, + 0,0,0,0,-252,0,0,0,0,0, + 0,0,-357,0,0,0,0,-109,0,-347, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-349, + 0,-408,0,0,0,0,0,0,0,0, + 0,0,-272,0,0,-453,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-39,0,0,0,0, + 0,0,0,0,0,0,0,0,-280,0, 0,0,0,-18,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-52,0,0,0,0, - 0,0,0,-53,0,0,0,-406,0,0, - 0,0,0,-54,0,0,-81,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-51,0,-52,0,-246,0,0, + 0,-53,0,-384,0,0,-81,0,0,0, -24,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-56,0, - -68,0,0,0,0,0,-69,0,0,0, - -342,-82,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-54,0, + -183,0,0,0,0,0,0,0,0,-25, + -389,-82,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-56,0,0,0,0,0,0, + 0,-68,0,-69,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,-70,0,-347,0,0,0,0,0,-404, - -256,0,0,0,-204,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-71,0,0,0, - 0,0,0,0,0,0,-72,0,0,0, + 0,0,0,0,0,0,-70,0,0,0, + 0,0,0,0,0,0,-71,0,-89,0, 0,0,0,0,0,0,0,-21,0,0, - 0,-386,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-73, - 0,0,0,0,0,0,0,-214,0,-74, + 0,-407,0,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,-184, 0,0,0,0,0,-79,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-25,0,0, - 0,0,0,-454,0,0,0,0,-75,0, - 0,-481,0,0,-32,0,0,0,-76,0, + 0,0,0,0,0,-72,0,-188,0,0, + 0,0,0,-457,0,0,0,0,0,0, + 0,-484,0,0,-32,0,0,0,-73,0, 0,0,0,0,0,-155,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-77,0,0, - 0,0,0,0,0,-78,0,-537,0,-286, - 0,0,0,0,0,-80,0,0,-156,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-74,0,-409,0,-55, + 0,0,0,-75,0,-76,0,0,-156,0, + 0,0,-486,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-86,0, - 0,0,0,0,0,0,-84,0,-87,0, + -77,0,0,0,0,0,0,0,-90,0, + -297,0,0,0,0,0,0,0,-540,0, 0,-157,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-88,0,0,0,0,0,0, - 0,-89,0,-94,0,0,0,0,0,-471, - 0,-95,0,0,-158,0,0,0,-522,0, + 0,0,0,-78,0,0,0,0,0,0, + 0,-96,0,-80,0,0,0,0,0,0, + -474,0,0,0,-158,0,0,0,-525,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-98,0,0,0, - 0,0,0,0,-90,0,-105,0,0,0, - 0,0,-113,-116,-131,0,0,-159,0,0, - 0,-179,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-84,0,0,0, + 0,0,0,0,0,0,0,0,-108,0, + 0,0,0,0,-87,0,0,-159,0,0, + 0,-88,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-94, + 0,0,0,0,0,0,0,-106,0,-95, + 0,0,0,0,0,-98,-105,-113,0,0, + -160,0,0,0,-116,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-96,0,-180, - 0,0,0,0,0,-188,0,-198,0,0, - -160,0,0,0,-199,0,0,0,0,0, + 0,0,-131,0,0,0,0,0,0,0, + 0,0,0,0,-110,0,0,0,-179,0, + -180,0,0,-161,0,0,0,-189,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-200,0,0,0,0,0,0,0, - -106,0,0,0,0,0,0,0,-201,-206, - -207,0,0,-161,0,0,0,-208,0,0, + 0,0,0,0,0,-199,0,0,0,0, + 0,0,0,-192,0,-200,0,0,0,0, + 0,-201,-202,-207,0,0,-162,0,0,0, + -208,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-209,0, + 0,0,0,0,0,0,-250,0,-210,0, + 0,0,0,0,-222,-223,-224,0,0,-163, + 0,0,0,-225,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-209,0,0,0,0, - 0,0,0,-221,0,-222,0,-108,0,0, - 0,-223,0,-224,0,0,-162,0,0,0, - -225,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-226,0, - 0,0,0,0,0,0,-227,0,-228,0, - -110,0,0,0,-229,0,-230,0,0,-163, - 0,0,0,-231,0,0,0,0,0,0, + 0,-226,0,0,0,0,0,0,0,-254, + 0,-227,0,0,0,0,0,-228,-257,-229, + 0,0,-164,0,0,0,-230,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-232,0,0,0,0,0,0,0,-183, - 0,-233,0,0,0,0,0,-234,-235,-236, - 0,0,-164,0,0,0,-237,0,0,0, + 0,0,0,0,-231,0,0,0,0,0, + 0,0,-232,0,-233,0,0,0,0,0, + -234,-235,-236,0,0,-165,0,0,0,-237, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-238,0,0,0,0,0, - 0,0,-191,0,-239,0,0,0,0,0, - -242,-243,-244,0,0,-165,0,0,0,-246, + 0,0,0,0,0,0,0,-238,0,0, + 0,0,0,0,0,-267,0,-239,0,0, + 0,0,0,-240,-243,-244,0,0,-281,0, + 0,0,-245,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-247,0,0, - 0,0,0,0,0,-249,0,-252,0,0, - 0,0,0,-257,-259,-260,0,0,-280,0, - 0,0,-274,0,0,0,0,0,0,0, + -247,0,0,0,0,0,0,0,-268,0, + -248,0,0,0,0,0,-253,-258,-260,0, + 0,-291,0,0,0,-261,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -275,0,0,0,0,0,0,0,-266,0, - -276,0,0,0,0,0,-277,-301,-302,0, - 0,-290,0,0,0,-307,0,0,0,0, + 0,0,0,-275,0,0,0,0,0,0, + 0,-270,0,-276,0,0,0,0,0,-277, + -278,-302,0,0,-530,0,0,0,-303,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-315,0,0,0,0,0,0, - 0,-267,0,-316,0,0,0,0,0,-321, - -322,-328,0,0,-527,0,0,0,-346,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-348,0,0,0, - 0,0,0,0,-269,0,-92,0,0,0, - 0,0,-193,0,0,0,0,-354,0,0, - 0,-344,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-99, - 0,0,0,0,0,0,0,-408,0,-365, - 0,0,0,0,0,-390,0,0,0,0, + 0,0,0,0,0,0,-308,0,0,0, + 0,0,0,0,-286,0,-316,0,0,0, + 0,0,-269,0,0,0,0,-356,0,0, + 0,-346,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,-411,0,-37, + 0,0,0,0,0,-393,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-369,0,0,0,0, - 0,0,0,-177,0,0,0,-190,-370,0, - 0,0,0,0,0,-391,0,0,0,0, + 0,0,0,0,0,-317,0,0,0,0, + 0,0,0,-177,0,0,0,-191,-322,0, + 0,0,0,0,0,-394,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-129,0,0, - 0,0,0,0,0,-449,0,0,0,0, - 0,0,0,-402,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-99,0,0, + 0,0,0,0,0,-452,0,0,0,0, + 0,0,0,-405,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-285,0,-376,0,0,0,0, - 0,-335,0,0,0,-300,-254,0,0,0, - 0,0,0,-458,0,0,0,0,0,0, + 0,0,0,-292,0,0,0,0,0,0, + 0,-337,0,0,0,-301,-255,0,0,0, + 0,0,0,-461,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-282,0,0,0,0, - 0,0,0,-291,0,0,0,0,0,0, + 0,0,0,0,0,-129,0,0,0,0, + 0,0,0,-293,0,0,0,0,0,0, 0,-167,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-292,0,-524,0,0,0,-218,0,0, - 0,-379,0,0,0,0,0,0,0,0, + 0,-300,0,-475,0,0,0,-219,0,0, + 0,-483,0,0,0,0,0,0,0,0, 0,-154,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-173,0,-93,0,-152,0,0,0,0, + 0,0,0,-323,0,-152,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-93,0,0, + 0,0,0,0,0,-83,0,-153,0,0, + 0,-315,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-412,0,0, + 0,0,0,0,0,0,0,0,0,0, + -329,-447,0,0,0,-13,0,0,0,0, + 0,0,0,0,0,0,0,0,-102,-348, + -350,-367,0,0,-388,0,0,0,0,-100, + 0,0,0,0,0,0,0,-92,0,-527, + 0,-97,0,0,0,0,0,0,0,-168, + 0,0,-10,0,-173,-174,0,-195,0,0, + 0,0,-1,0,0,0,0,0,0,0, + -528,0,-371,-114,0,0,0,0,0,0, + 0,0,-33,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-377,0,0,0, + 0,0,-477,0,0,0,0,0,0,0, + 0,0,0,0,0,-101,-31,0,0,0, + 0,-124,0,0,0,0,0,-46,0,0, + 0,0,-372,0,0,-213,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-379, + 0,-382,-396,0,0,0,0,0,0,0, + 0,0,-273,0,0,0,0,0,0,0, + 0,0,-402,0,0,0,0,0,0,-279, + 0,0,0,0,0,-410,-150,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,-151,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-306,0,0,0,0,0,0,0, + 0,0,0,0,0,-143,0,0,0,-414, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-417,0,0, + 0,0,-58,0,0,0,-478,0,0,0, + -421,0,-444,0,0,-251,-41,0,-423,0, + 0,0,0,0,-437,0,0,-313,0,0, + 0,-325,0,0,0,-305,0,0,0,0, + 0,-330,0,0,0,0,0,-125,-144,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -460,0,0,0,0,-145,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-462,0,0, + 0,0,-138,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-464,0,0,0,0,0, + -454,0,0,0,0,0,0,0,0,0, + 0,0,0,-181,0,0,0,-146,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-443,-123,-304,0,0,0, + -34,0,0,0,0,0,0,0,-403,0, + 0,0,-221,0,0,-283,0,-309,-310,0, + 0,0,0,-465,0,0,0,-331,0,0, + 0,-459,0,0,0,0,-364,0,0,0, + 0,0,0,-466,0,0,0,0,0,0, + 0,-366,-467,0,-112,0,0,0,0,-178, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-469,-429,0,0,0,0,0,0, + 0,0,0,0,0,0,-311,0,0,-471, + 0,0,0,0,-487,0,-295,0,0,0, + 0,0,0,0,0,0,-529,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -265,-14,0,0,0,-169,0,0,0,0, + -103,0,0,0,0,0,0,0,0,0, + 0,0,0,-107,0,0,0,0,0,-35, + -290,0,0,-48,-115,0,-296,0,0,0, + -334,0,0,-354,0,0,0,0,0,0, + 0,-336,-488,0,-135,0,0,0,0,0, + -339,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-299,0, + 0,0,0,0,0,0,-490,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-311,0,0, - 0,0,0,0,0,0,0,-153,0,0, - 0,-393,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-399, - 0,0,0,0,0,0,0,-409,0,0, + -418,-266,-390,0,0,0,0,-495,0,0, + 0,0,0,0,0,-499,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -185,0,0,0,0,-13,0,0,0,0, - 0,0,0,0,0,0,0,0,-289,-298, - -36,-114,-442,0,0,0,0,-33,0,0, + -511,0,0,-15,0,0,0,0,0,0, + 0,0,0,0,-519,0,-531,-298,0,0, + 0,0,0,0,-147,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -10,0,-100,-314,0,0,0,0,0,-525, - 0,0,-194,0,0,0,0,0,0,0, - -407,-410,0,0,0,0,0,-353,0,0, - -444,0,0,0,0,0,-411,0,-41,0, + 0,0,0,0,0,0,-36,0,0,0, + -148,0,0,0,-197,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-441,0,0,0,0,0,0,0, + 0,0,-468,0,0,0,0,-312,0,0, + 0,0,-198,-204,-541,0,0,-289,0,0, + 0,-341,0,0,0,0,0,0,0,0, + 0,0,0,-343,0,0,-355,0,0,-489, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-414,-418, - 0,0,0,0,-272,0,0,0,0,-385, + 0,0,0,0,0,0,0,-38,0,0, + -378,0,0,0,0,0,-435,-216,0,0, 0,0,0,0,0,0,0,0,0,0, - -150,0,0,0,0,0,0,0,0,0, + -259,0,0,0,-491,0,0,0,0,0, + 0,0,0,0,-432,0,-220,-241,0,0, + -332,0,-406,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-187,0,0,0,0,0,-151,0, - 0,0,-264,0,0,0,0,0,0,0, + 0,-505,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-305,0,0,0, - 0,0,0,0,0,0,0,0,0,-143, - 0,0,0,-374,0,0,0,0,0,0, + 0,-419,-397,0,0,0,0,0,-333,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-58,0,0,0, - -420,-101,-288,0,0,0,-278,0,0,0, - 0,0,-434,-303,0,0,0,0,0,0, - 0,0,0,0,0,-296,-268,0,0,0, - 0,0,0,0,-135,-457,0,-459,0,0, - 0,0,-144,0,0,0,0,0,0,0, + 0,0,0,0,-455,0,-518,0,0,0, + 0,0,0,0,0,0,-29,0,-365,-17, + 0,0,0,0,0,0,-463,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-145, + 0,0,0,-520,0,0,0,0,-271,0, + 0,-373,0,0,0,0,0,0,0,0, + 0,0,0,-374,0,0,-458,0,-383,0, + 0,-40,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-416,0,0,0, + 0,0,0,0,0,0,0,0,-352,0, + -190,0,0,0,-193,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-522,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-532,-134,-242,0,0, + 0,0,0,0,0,-524,-9,0,0,0, + 0,-513,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-138,0,0,0, + -353,0,0,-42,0,0,0,0,0,0, + 0,0,0,0,0,0,-249,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -537,0,0,0,0,0,-431,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-451,0,0,0,0,0, - 0,0,0,0,0,0,0,-31,0,0, - 0,-146,0,0,0,0,0,0,0,0, + 0,-415,0,-426,0,-288,0,0,0,0, + 0,-427,0,0,0,0,0,0,0,0, + 0,-11,0,0,0,0,0,0,0,-480, + 0,0,0,0,0,-542,0,0,0,0, + 0,0,0,0,0,0,0,-326,0,0, + 0,0,0,0,0,0,0,0,-358,0, + 0,0,-359,-314,0,0,0,-434,-360,0, + -361,0,-439,0,0,0,0,0,0,0, + -442,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-124,0,0,0,0,-440,-125, - -178,0,0,-468,-172,-415,-461,0,-196,0, - 0,0,-174,0,0,0,-462,0,0,-463, - 0,-197,-529,-417,0,0,0,0,0,-375, - 0,0,0,0,-464,-456,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-466,-15,0,0,-166, + -139,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-484,-485,0,0, + 0,0,-501,0,0,-141,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-38,-123,0,0,0,0,0,-270, + 0,0,0,0,0,0,0,-335,0,-142, + 0,0,0,-472,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -526,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-487,-14,0,0,0,-40, - 0,0,-492,-496,-103,0,0,0,0,0, - 0,0,0,0,0,0,0,-508,-394,0, - 0,0,0,0,0,-516,-29,0,-212,0, - 0,-102,-253,-528,-48,0,0,-245,0,0, - 0,0,0,0,0,-203,-538,0,0,0, - 0,0,-413,0,-412,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-220, - 0,0,-364,0,0,0,0,0,-387,0, - -215,0,0,0,0,0,0,0,0,0, + 0,-338,0,-400,-494,0,0,0,0,-401, + 0,-386,-424,-430,-362,0,-363,0,0,0, + 0,0,0,0,-438,0,0,-482,-450,-473, + 0,0,-376,0,0,0,-476,0,0,0, + -481,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-258,0,0,0,-97,0,0,0,0, - -265,0,0,0,0,0,0,0,0,0, - -350,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-328,0,0,-500, + 0,0,0,0,-485,0,0,0,0,0, + 0,0,0,0,-497,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-392,0, 0,0,0,0,0,0,0,0,0,0, - -42,0,0,0,0,0,0,0,-147,0, + 0,0,0,0,0,0,0,-451,0,-502, + -526,0,0,0,0,-510,0,0,0,0, + -404,0,0,0,0,-60,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -403,0,0,0,-148,0,0,0,-295,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-465,0,0,0, - 0,-423,0,0,0,0,0,-107,0,0, - 0,-1,-428,0,-297,0,0,-17,0,0, + 0,0,-517,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-498,0, + -503,0,0,-521,0,0,0,0,0,0, + 0,0,0,0,-61,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-486,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-506, + -508,0,0,0,0,-62,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-313,0,-474,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-477,0,0,0,0,0, - 0,0,0,0,0,0,0,-488,-219,0, - -250,0,0,-349,0,0,-168,0,0,0, + -512,0,0,0,0,0,-63,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -240,-352,0,0,0,0,0,0,0,0, - 0,-294,-351,0,-502,0,0,0,0,0, - -432,-452,-498,0,0,0,0,0,0,0, - 0,0,0,0,-9,-384,0,0,0,0, - 0,0,-35,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-64,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-515,0, - 0,0,0,0,-299,0,0,0,0,0, - 0,-241,0,0,0,0,0,0,0,0, - 0,0,0,0,-475,0,0,0,0,0, - 0,0,0,0,0,-517,0,0,0,0, - -380,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-426,0,0,0,0,0,0, + -65,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-66,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-312,0,0,0,-304,0,0,0, - 0,0,-460,0,0,0,0,0,0,0, - -519,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-262,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-169, - 0,-469,-521,0,0,-455,0,-324,0,0, - 0,0,0,-104,0,0,0,-329,0,0, - 0,0,0,0,0,-112,0,0,0,0, - 0,0,0,0,0,-111,0,0,0,0, + 0,0,0,0,-67,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-127,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -331,-134,-534,-332,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-480,0,0, - -330,0,0,0,0,-362,0,0,0,-251, - 0,0,0,-308,0,0,0,0,0,-539, - 0,0,0,0,0,0,0,-510,0,0, + 0,0,0,0,0,0,0,0,-136,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-287,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -309,0,0,0,0,0,0,0,0,0, - 0,0,0,-333,0,0,0,0,0,0, - 0,0,0,0,-325,0,0,0,0,0, - 0,0,0,0,-139,0,0,0,0,0, + -137,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-141, + 0,0,-206,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-284,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-142,0,0,0,0,0,0, + 0,0,0,0,0,0,-59,0,0,0, + -515,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-340,-166,-516, + -533,0,0,-534,-538,0,0,-380,-539,0, + -446,0,0,0,0,0,0,-385,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-336,0,-337,-491,0, - -356,0,0,0,-11,-383,-334,-421,0,0, - -360,-339,0,0,0,0,0,0,0,-341, - 0,-363,-416,0,0,0,0,0,0,-371, - 0,-317,0,0,-357,0,0,0,0,-358, 0,0,0,0,0,0,0,0,0,0, - -470,0,0,0,0,0,0,0,0,0, - -327,0,0,-372,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-389,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-424,0, - 0,-448,0,0,0,0,-523,-431,0,-436, - 0,0,0,-439,0,0,0,0,-482,-60, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-359,0,0,0,0,0, - 0,0,0,0,0,-479,0,-497,0,0, - -499,0,-507,-514,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-494,0,0, - 0,0,0,0,0,0,0,0,-61,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -397,-248,0,0,0,0,0,0,0,-62, + -433,0,0,0,0,-318,0,0,0,0, + -441,0,0,0,0,0,0,0,0,0, + -118,0,0,0,0,-104,0,0,0,0, + 0,0,0,0,0,0,0,-319,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-398,0,0,0,0,0, - -63,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-64,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-65,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-66,0,0,0, + 0,0,0,0,0,0,0,-307,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-67,0, + -47,0,0,0,0,0,-345,0,0,0, + 0,0,0,0,0,0,0,0,0,-395, 0,0,0,0,0,0,0,0,0,0, + 0,0,-507,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -127,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-172,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-136,0,0,0,0,0,0,0, + 0,-43,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-137,0,0,0,0,0, + 0,0,0,0,-185,0,0,0,0,0, + 0,0,0,0,-351,0,0,0,0,0, + 0,-212,0,0,0,0,0,0,-263,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,-264, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-283,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -59,0,0,0,-427,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-338,-435,-447,-495,0,-473,-478,-500,-503, - -118,-377,-505,-509,0,0,0,0,0,0, - 0,-382,0,0,-512,0,0,0,0,0, - 0,0,0,0,0,0,-318,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-381,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-518,0,0, - 0,0,0,0,-513,0,0,0,0,0, - 0,0,0,0,-530,0,0,0,0,0, - 0,0,0,0,-430,0,0,0,0,-319, - -531,-535,0,0,-438,0,0,0,0,-320, - 0,-536,0,0,0,0,0,0,0,0, + 0,0,-218,0,0,0,-342,0,0,0, + 0,0,0,0,-399,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-422,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-425,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,-448,0,0, + 0,0,0,0,-369,0,0,0,0,0, + 0,0,0,0,0,0,-449,0,0,0, + 0,-456,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-111,0,0,0, + 0,0,0,0,-509,-57,0,-117,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-306,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-343,0,0,0,0,0,0,0,0, - 0,0,0,0,-392,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-361,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-501,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-504, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-43,0,0,0,0,0,0,0, - 0,0,-119,0,0,0,0,-46,0,0, - 0,0,0,0,-184,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -115,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-378,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-263,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-181,0,0, - 0,0,0,-401,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-189,0,0,0,-192,0,0,0, - 0,0,-366,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-211,0, - 0,0,-217,0,0,0,0,0,0,0, - 0,0,0,-506,0,0,0,0,0,0, - 0,0,-340,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-396,0,0, - 0,0,0,0,0,0,0,0,-419,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-422,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-437,0,0,0,-445,0,0, - 0,0,0,0,0,-446,0,0,0,0, - 0,0,0,-57,0,0,0,0,0,0, - 0,0,-453,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-117,0,0,0,0,-130,0,0, - 0,0,0,-443,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, + 0,-387,0,0,0,0,0,-130,0,0, 0,0,0,-122,0,0,0,0,0,0, - -367,0,0,0,0,0,0,0,-255,0, - 0,0,0,-273,0,0,0,0,0,0, - 0,-429,0,0,0,0,0,0,-281,0, + 0,0,0,0,0,-256,0,0,0,0, + -274,0,0,0,0,0,0,0,-282,0, + 0,0,0,0,0,0,0,0,0,-492, + 0,0,0,0,-493,0,0,0,0,0, + 0,-496,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-489,-120,0,0,0, - 0,0,0,0,0,-490,0,0,0,0, - -121,0,0,0,0,-493,0,0,0,0, - 0,0,0,0,-284,0,0,0,0,-520, - 0,0,0,0,0,0,0,0,0,-476, + 0,0,0,0,0,-119,-120,0,0,0, + 0,0,0,0,0,0,0,0,-121,0, + 0,-285,0,0,0,0,0,0,0,0, + -479,0,-320,0,0,-504,0,0,0,0, + 0,0,0,0,-321,0,0,0,0,-368, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-523,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -543,7 +548,10 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0 + 0,0,0,0,0,0,0,0,0,0, + 0,0,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; @@ -574,19 +582,19 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 66,56,56,179,179,70,70,70,103,103, 180,180,71,71,71,181,181,72,72,72, 72,72,73,73,84,84,84,84,84,84, - 84,84,49,49,49,49,49,117,117,115, - 115,50,182,22,22,22,22,22,48,48, + 84,84,50,50,50,50,50,117,117,115, + 115,51,182,22,22,22,22,22,48,48, 87,87,87,87,87,152,152,147,147,147, 147,147,148,148,148,149,149,149,150,150, 150,151,151,151,88,88,88,88,88,89, 89,89,13,13,13,13,13,13,13,13, 13,13,13,98,121,121,121,121,121,121, 119,119,119,153,120,120,183,155,155,154, - 154,123,123,104,79,79,80,81,52,47, - 156,156,53,51,86,86,157,157,146,146, + 154,123,123,104,79,79,80,81,53,47, + 156,156,54,52,86,86,157,157,146,146, 124,125,125,126,76,76,158,158,63,63, 63,60,60,59,64,64,75,75,58,58, - 58,54,90,90,100,99,99,62,62,61, + 58,49,90,90,100,99,99,62,62,61, 61,55,55,45,101,101,101,93,93,93, 94,94,95,95,95,96,96,105,105,105, 107,107,106,106,202,202,91,91,185,185, @@ -606,496 +614,504 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 82,82,173,173,133,133,112,112,112,112, 112,112,3,134,134,132,132,113,113,85, 78,74,161,161,114,114,197,197,197,135, - 135,127,127,198,198,174,174,1119,35,1696, - 1678,1101,4669,27,30,31,992,994,26,28, - 1671,25,23,50,1221,106,76,77,108,2517, - 1227,1297,1262,1340,1307,1399,1350,245,1438,675, - 1409,273,1446,1456,143,415,35,396,158,144, - 761,1472,35,939,32,2074,4673,27,30,31, - 992,994,57,28,1725,3070,35,939,32,232, - 2627,27,30,31,992,994,26,28,1219,25, - 23,50,1221,106,76,77,108,1174,1227,1297, - 1262,1340,1307,1782,235,230,231,502,35,1001, - 388,3070,35,939,32,274,2627,27,30,31, - 992,994,26,28,1219,25,23,50,1221,106, - 76,77,108,1392,1712,242,245,248,251,1126, - 354,431,1350,2311,35,277,2805,64,1090,1783, - 35,939,32,523,4673,27,30,31,992,994, - 56,28,1670,569,3283,2411,2893,2930,3071,4493, - 2253,35,939,32,2926,2627,27,30,31,992, - 994,26,28,1219,25,23,50,1221,106,76, - 77,108,343,1227,1297,1262,1340,1307,1399,1350, - 61,1438,1160,1409,1102,1446,1456,143,3536,4834, - 1178,517,144,1648,2523,2857,1326,502,1524,1499, - 34,3464,502,35,282,518,2253,35,939,32, - 2926,2627,27,30,31,992,994,26,28,1219, - 25,23,50,1221,106,76,77,108,343,1227, - 1297,1262,1340,1307,1399,1350,150,1438,312,1409, - 3275,1446,1456,143,155,35,453,517,144,4719, - 1577,2857,502,1954,332,155,35,279,3922,865, - 3486,518,2559,513,1979,35,939,32,60,4854, - 27,30,31,992,994,26,28,2523,511,415, - 35,396,1841,2644,1842,1775,2935,2253,35,939, - 32,2926,2627,27,30,31,992,994,26,28, - 1219,25,23,50,1221,106,76,77,108,343, - 1227,1297,1262,1340,1307,1399,1350,443,1438,513, - 1409,2086,1446,1456,143,502,35,1971,517,144, - 42,1868,2857,494,3003,150,1326,2050,1843,3227, - 1842,3464,518,2461,35,939,32,2926,2627,27, - 30,31,992,994,26,28,1219,25,23,50, - 1221,106,76,77,108,343,1227,1297,1262,1340, - 1307,1399,1350,2419,1438,288,1409,2926,1446,1456, - 143,155,35,279,517,144,4869,580,2857,356, - 1577,415,35,396,332,343,353,531,518,1635, - 513,1979,35,939,32,413,4854,27,30,31, - 992,994,59,28,446,2510,2631,3374,1450,1850, - 2050,1842,2596,35,939,32,2412,2627,27,30, - 31,992,994,26,28,1219,25,23,50,1221, - 106,76,77,108,2081,1227,1297,1262,1340,1307, - 1399,1350,1809,1438,1895,1409,514,1446,1456,143, - 913,2070,3866,379,144,2322,35,939,32,243, - 2627,27,30,31,992,994,26,28,1219,25, - 23,50,1221,106,76,77,108,322,1227,1297, - 1262,1340,1307,1399,1350,381,1438,228,1409,1584, - 1446,1456,143,2363,1795,3866,379,144,2159,2098, - 3070,35,939,32,1919,2627,27,30,31,992, - 994,26,28,1219,25,23,50,1221,106,76, - 77,108,1448,1227,1297,1262,1340,1307,1399,1350, - 2220,1438,2559,1409,2824,1446,1497,164,1833,2174, - 1795,385,3528,1010,390,427,2528,35,939,32, - 3868,2627,27,30,31,992,994,26,28,1219, - 25,23,50,1221,106,76,77,108,2171,1227, - 1297,1262,1340,1307,1399,1350,1908,1438,386,1409, - 1661,1446,1456,143,386,3528,3866,379,144,438, - 502,3888,423,70,2836,35,939,32,3817,2627, - 27,30,31,992,994,26,28,1219,25,23, - 50,1221,106,76,77,108,2428,1227,1297,1262, - 1340,1307,1399,1350,2435,1438,326,1409,2559,1446, - 1456,143,1878,2637,2469,373,144,2836,35,939, - 32,2222,2627,27,30,31,992,994,26,28, - 1219,25,23,50,1221,106,76,77,108,355, - 1227,1297,1262,1340,1307,1399,1350,531,1438,1475, - 1409,2624,1446,1456,143,377,3528,585,373,144, - 3809,2320,2836,35,939,32,2644,2627,27,30, - 31,992,994,26,28,1219,25,23,50,1221, - 106,76,77,108,865,1227,1297,1262,1340,1307, - 1399,1350,2247,1438,2492,1409,324,1446,1456,143, - 322,2126,372,373,144,2836,35,939,32,1708, - 2627,27,30,31,992,994,26,28,1219,25, - 23,50,1221,106,76,77,108,236,1227,1297, - 1262,1340,1307,1399,1350,323,1438,2075,1409,404, - 1446,1456,143,531,3138,371,158,144,2664,35, - 939,32,2320,2627,27,30,31,992,994,26, - 28,1219,25,23,50,1221,106,76,77,108, - 846,1227,1297,1262,1340,1307,1399,1350,150,1438, - 1236,1409,1275,1446,1497,164,2394,35,939,32, - 369,2627,27,30,31,992,994,26,28,1219, - 25,23,50,1221,106,76,77,108,3575,1227, - 1297,1262,1340,1307,1399,1350,71,1438,2154,1409, - 3009,1446,1456,143,502,35,293,142,144,1360, - 447,327,502,35,293,2078,35,939,32,142, - 1093,41,30,31,992,994,2836,35,939,32, - 1670,2627,27,30,31,992,994,26,28,1219, - 25,23,50,1221,106,76,77,108,1251,1227, - 1297,1262,1340,1307,1399,1350,214,1438,494,1409, - 2047,1446,1456,143,3761,421,1379,155,144,2836, - 35,939,32,325,2627,27,30,31,992,994, - 26,28,1219,25,23,50,1221,106,76,77, - 108,3723,1227,1297,1262,1340,1307,1399,1350,150, - 1438,447,1409,3450,1446,1456,143,1500,3829,2495, - 154,144,2836,35,939,32,4209,2627,27,30, - 31,992,994,26,28,1219,25,23,50,1221, - 106,76,77,108,1328,1227,1297,1262,1340,1307, - 1399,1350,150,1438,2287,1409,690,1446,1456,143, - 502,2934,2388,153,144,2836,35,939,32,2658, - 2627,27,30,31,992,994,26,28,1219,25, - 23,50,1221,106,76,77,108,1789,1227,1297, - 1262,1340,1307,1399,1350,150,1438,1627,1409,746, - 1446,1456,143,1333,1271,1446,152,144,2836,35, - 939,32,2052,2627,27,30,31,992,994,26, - 28,1219,25,23,50,1221,106,76,77,108, - 380,1227,1297,1262,1340,1307,1399,1350,150,1438, - 1716,1409,827,1446,1456,143,1377,93,418,151, - 144,2836,35,939,32,590,2627,27,30,31, - 992,994,26,28,1219,25,23,50,1221,106, - 76,77,108,848,1227,1297,1262,1340,1307,1399, - 1350,150,1438,523,1409,4515,1446,1456,143,1822, - 1907,2249,150,144,2836,35,939,32,3343,2627, - 27,30,31,992,994,26,28,1219,25,23, - 50,1221,106,76,77,108,3269,1227,1297,1262, - 1340,1307,1399,1350,408,1438,580,1409,1102,1446, - 1456,143,1459,4643,1791,149,144,2836,35,939, - 32,1863,2627,27,30,31,992,994,26,28, - 1219,25,23,50,1221,106,76,77,108,932, - 1227,1297,1262,1340,1307,1399,1350,1616,1438,1881, - 1409,1102,1446,1456,143,1911,4647,2280,148,144, - 2836,35,939,32,2344,2627,27,30,31,992, - 994,26,28,1219,25,23,50,1221,106,76, - 77,108,2044,1227,1297,1262,1340,1307,1399,1350, - 150,1438,2156,1409,2963,1446,1456,143,2696,1355, - 1502,147,144,2836,35,939,32,400,2627,27, - 30,31,992,994,26,28,1219,25,23,50, - 1221,106,76,77,108,56,1227,1297,1262,1340, - 1307,1399,1350,150,1438,472,1409,2900,1446,1456, - 143,1825,1975,2168,146,144,2836,35,939,32, - 2381,2627,27,30,31,992,994,26,28,1219, - 25,23,50,1221,106,76,77,108,2124,1227, - 1297,1262,1340,1307,1399,1350,150,1438,2420,1409, - 3109,1446,1456,143,1002,2500,2082,145,144,2836, - 35,939,32,2454,2627,27,30,31,992,994, - 26,28,1219,25,23,50,1221,106,76,77, - 108,2484,1227,1297,1262,1340,1307,1399,1350,150, - 1438,2485,1409,984,1446,1456,143,2491,2452,2567, - 159,144,2836,35,939,32,2516,2627,27,30, - 31,992,994,26,28,1219,25,23,50,1221, - 106,76,77,108,2387,1227,1297,1262,1340,1307, - 1399,1350,150,1438,2423,1409,2338,1446,1456,143, - 2518,2551,2347,140,144,2953,35,939,32,2486, - 2627,27,30,31,992,994,26,28,1219,25, - 23,50,1221,106,76,77,108,1323,1227,1297, - 1262,1340,1307,1399,1350,150,1438,1010,1409,3187, - 1446,1456,143,1995,35,277,189,144,3070,35, - 939,32,1621,2627,27,30,31,992,994,26, - 28,1219,25,23,50,1221,106,76,77,108, - 1103,1227,1297,1262,1340,1307,1399,1350,1897,1438, - 2525,1409,4305,1446,1497,164,3070,35,939,32, - 402,2627,27,30,31,992,994,26,28,1219, - 25,23,50,1221,106,76,77,108,2515,1227, - 1297,1262,1340,1307,1399,1350,2637,1438,3818,1409, - 498,1446,1497,164,2131,35,939,32,1795,2583, - 40,30,31,992,994,2094,3070,35,939,32, - 292,2627,27,30,31,992,994,26,28,1219, - 25,23,50,1221,106,76,77,108,1341,1227, - 1297,1262,1340,1307,1399,1350,150,1438,2005,1409, - 1275,1446,1497,164,3070,35,939,32,422,2627, - 27,30,31,992,994,26,28,1219,25,23, - 50,1221,106,76,77,108,4208,1227,1297,1262, - 1340,1307,1399,1350,150,1438,1179,1409,734,1446, - 1497,164,2131,35,939,32,1795,2064,2604,30, - 31,992,994,2094,3125,35,939,32,425,2627, - 27,30,31,992,994,26,28,1219,25,23, - 50,1221,106,76,77,108,2276,1227,1297,1262, - 1340,1307,1399,1350,150,1438,3698,1409,3511,1446, - 1497,164,3070,35,939,32,3143,2627,27,30, - 31,992,994,26,28,1219,25,23,50,1221, - 106,76,77,108,389,1227,1297,1262,1340,1307, - 1399,1350,150,1438,1795,1409,3514,1835,1987,35, - 939,32,2590,4854,27,30,31,992,994,58, - 28,2094,3070,35,939,32,2925,2627,27,30, - 31,992,994,26,28,1219,25,23,50,1221, - 106,76,77,108,2824,1227,1297,1262,1340,1307, - 1399,1350,1010,1438,1982,1807,3070,35,939,32, - 525,2627,27,30,31,992,994,26,28,1219, - 25,23,50,1221,106,76,77,108,2081,1227, - 1297,1262,1340,1307,1399,1350,497,1799,3070,35, - 939,32,2560,2627,27,30,31,992,994,26, - 28,1219,25,23,50,1221,106,76,77,108, - 2591,1227,1297,1262,1340,1307,1399,1800,1608,35, - 939,32,3224,4598,27,30,31,992,994,339, - 28,502,35,3041,2563,460,1638,35,939,32, - 736,2768,27,30,31,992,994,339,28,2243, - 1341,1232,1367,502,35,1001,388,3464,1719,35, - 939,32,2962,2768,27,30,31,992,994,339, - 28,150,1577,1982,2064,2926,332,319,1388,321, - 1795,314,1191,502,35,1499,276,452,391,427, - 351,2618,2552,343,313,319,1388,321,2064,314, - 1191,502,35,1001,388,350,1577,2584,4402,69, - 333,352,730,232,2094,2182,2857,319,1388,321, - 2824,314,1191,843,35,453,509,352,4719,344, - 585,861,349,352,2632,434,524,722,244,230, - 231,284,306,310,594,346,585,861,349,1564, - 2585,344,585,861,349,502,35,1499,278,2433, - 2131,35,939,32,3261,285,2806,30,31,992, - 994,3070,35,939,32,2643,2627,27,30,31, - 992,994,26,28,1219,25,23,50,1221,106, - 76,77,108,2050,1227,1297,1262,1340,1792,3070, - 35,939,32,413,2627,27,30,31,992,994, - 26,28,1219,25,23,50,1221,106,76,77, - 108,366,1227,1297,1262,1340,1798,1729,35,1997, - 32,3224,4598,27,30,31,992,994,339,28, - 3070,35,939,32,2353,2627,27,30,31,992, - 994,26,28,1219,25,23,50,1221,106,76, - 77,108,1751,1227,1297,1262,1739,1216,35,1001, - 388,2623,1982,757,35,1001,388,502,35,1499, - 1970,1577,406,2619,1102,332,319,1388,321,4693, - 314,1191,1048,450,2510,2631,150,1995,35,280, - 3707,49,1962,1264,322,150,2625,273,2654,1275, - 1567,2128,3544,3070,35,939,32,4402,2627,27, - 30,31,992,994,26,28,1219,25,23,50, - 1221,106,76,77,108,156,1227,1297,1262,1747, - 3070,35,939,32,3000,2627,27,30,31,992, - 994,26,28,1219,25,23,50,1221,106,76, - 77,108,3403,1227,1297,1262,1749,3070,35,939, - 32,1972,2627,27,30,31,992,994,26,28, - 1219,25,23,50,1221,106,76,77,108,72, - 1227,1704,417,419,1979,1503,35,939,32,3224, - 2768,27,30,31,992,994,339,28,587,35, - 1001,388,3070,35,939,32,2022,2627,27,30, - 31,992,994,26,28,1219,25,23,50,1221, - 106,76,77,108,1982,1227,1297,1262,1755,259, - 1982,1982,49,537,2377,1326,2353,87,1275,1982, - 3464,1567,2040,1010,319,1388,321,2656,314,1191, - 2730,228,1982,2416,2346,3036,4137,1275,2799,156, - 2064,313,24,1876,156,2735,1,180,3413,2824, - 537,69,200,4205,299,203,215,4566,202,212, - 213,214,216,156,68,169,2736,2155,228,1577, - 150,876,162,332,1275,168,156,183,167,170, - 171,172,173,174,180,3413,2824,2737,173,307, - 310,594,203,215,4566,202,212,213,214,216, - 156,182,169,1246,2213,2968,459,297,1275,1825, - 1015,1954,168,181,184,167,170,171,172,173, - 174,1899,35,939,32,736,2768,27,30,31, - 992,994,339,28,160,2688,3180,35,1001,388, - 1380,4508,352,1892,2629,1460,35,939,32,237, - 4598,27,30,31,992,994,339,28,2744,2723, - 344,585,861,349,4738,232,2651,2719,342,1010, - 273,2926,1806,1338,1375,1321,2926,3464,2037,4531, - 319,1388,321,3464,314,1191,1982,2382,2836,343, - 247,230,231,2064,2396,1102,352,526,232,1577, - 4754,2976,232,333,319,1388,321,351,315,1191, - 1010,4312,662,2553,344,585,861,349,53,1795, - 352,1982,527,235,230,231,1577,250,230,231, - 332,5427,1577,287,274,3145,333,5427,346,585, - 861,349,2159,35,293,5427,502,35,1001,388, - 352,2502,4159,87,242,245,248,251,1126,2824, - 296,2081,2935,360,2434,1964,5427,1090,344,585, - 861,349,328,335,5427,376,2433,2801,1592,1620, - 273,1498,3315,3283,2411,2893,2930,3071,4493,3070, - 35,939,32,51,2627,27,30,31,992,994, - 26,28,1219,25,23,50,1221,106,76,77, - 108,1010,1227,1297,1757,3070,35,939,32,1338, - 2627,27,30,31,992,994,26,28,1219,25, - 23,50,1221,106,76,77,108,345,1227,1297, - 1764,537,1102,232,340,5427,2186,4758,415,35, - 1626,2553,2693,1010,88,1338,5427,102,1458,228, - 3591,442,2926,456,5427,5427,5427,156,253,230, - 231,393,427,5427,431,180,3413,2824,537,374, - 2396,3145,49,203,215,4566,202,212,213,214, - 216,1567,2391,169,97,5427,228,1015,1954,502, - 35,1001,388,168,156,2933,167,170,171,172, - 173,174,180,3413,2824,2064,5427,3145,3604,335, - 203,215,4566,202,212,213,214,216,517,1982, - 169,2139,537,433,1326,2926,98,1249,5427,3464, - 168,2926,178,167,170,171,172,173,174,505, - 228,1982,2062,2396,334,335,945,4708,156,2396, - 5427,52,2308,2081,535,603,180,3413,2824,537, - 504,2353,2353,2064,203,215,4566,202,212,213, - 214,216,304,2224,169,1458,2345,228,1577,2926, - 2926,503,332,3381,168,156,176,167,170,171, - 172,173,174,180,3413,2824,239,2396,2396,221, - 303,203,215,4566,202,212,213,214,216,689, - 287,169,361,537,4415,150,541,3922,360,3696, - 5427,168,1982,177,167,170,171,172,173,174, - 382,228,3241,1592,1620,502,35,1001,388,156, - 5427,2458,1964,5427,2949,232,775,180,3413,2824, - 537,2159,2467,293,2262,203,215,4566,202,212, - 213,214,216,392,427,169,505,505,228,432, - 240,230,231,5427,2553,168,156,187,167,170, - 171,172,173,174,180,3413,2824,504,504,44, - 1868,3315,203,215,4566,202,212,213,214,216, - 5427,5427,169,502,35,1499,281,1631,502,502, - 429,1231,168,2353,2964,167,170,171,172,173, - 174,1869,35,939,32,3224,2768,27,30,31, - 992,994,339,28,2352,1223,35,939,32,2587, - 2768,27,30,31,992,994,339,28,617,2509, - 1249,179,2353,861,2926,2186,42,537,1233,35, - 1499,276,5427,5427,502,35,1001,388,502,2086, - 1499,74,2396,403,5427,228,502,35,1001,388, - 319,1388,321,156,314,1191,502,35,1001,388, - 198,180,3413,2824,316,1936,321,313,49,203, - 215,4566,202,212,213,214,216,1567,1128,169, - 273,1338,2213,947,1338,89,1275,537,102,168, - 49,192,167,170,171,172,173,174,1795,1567, - 2013,1233,35,1499,2099,228,502,35,1499,2370, - 2240,360,160,156,150,306,310,594,3051,5427, - 1033,180,3413,2824,537,3322,1592,1620,42,203, - 215,4566,202,212,213,214,216,4295,3871,169, - 522,5427,228,3145,275,1982,3145,5427,2643,168, - 156,186,167,170,171,172,173,174,180,3413, - 2824,150,5427,3407,1878,3253,203,215,4566,202, - 212,213,214,216,150,2094,169,90,802,3219, - 3730,335,5427,3764,335,1982,168,559,194,167, - 170,171,172,173,174,3070,35,939,32,5427, - 2627,27,30,31,992,994,26,28,1219,25, - 23,50,1221,106,76,77,108,3722,1227,1706, - 3070,35,939,32,5427,2627,27,30,31,992, - 994,26,28,1219,25,23,50,1221,106,76, - 77,108,522,1714,3070,35,939,32,5427,2627, - 27,30,31,992,994,26,28,1219,25,23, - 50,1221,106,76,77,108,1566,1721,150,2377, - 2926,1982,3706,537,5427,150,1827,1338,2062,2926, - 2926,2213,150,4708,5427,1275,3276,5427,228,1549, - 150,3873,150,1795,1322,5427,817,343,228,156, - 150,5427,150,67,1082,1982,1275,180,3413,5427, - 1982,160,205,215,4566,204,212,213,214,216, - 2857,2353,205,215,4566,204,212,213,214,216, - 507,1326,156,2824,150,195,3464,66,1178,3145, - 5427,3701,65,206,208,210,294,295,1886,376, - 217,207,209,206,208,210,294,295,1886,197, - 217,207,209,1816,35,1997,32,3224,2768,27, - 30,31,992,994,339,28,330,335,3921,1102, - 2949,2830,1914,4222,4766,1577,2926,1706,150,4841, - 1102,2983,3812,4222,150,4783,5427,5427,3456,2353, - 3070,35,939,32,228,2627,27,30,31,992, - 994,26,28,1219,25,23,50,1221,106,76, - 77,85,319,1388,321,1982,314,1191,205,215, - 4566,204,212,213,214,216,150,302,150,1264, - 3263,150,3558,150,2348,962,430,3421,2911,5427, - 4684,196,5427,3824,873,5427,5427,64,2353,206, - 208,210,294,295,1886,5427,217,207,209,3070, - 1524,939,1585,94,2627,27,30,31,992,994, - 26,28,1219,25,23,50,1221,106,76,77, - 84,1982,502,35,1001,388,201,3205,5427,4222, - 3070,35,939,32,5427,2627,27,30,31,992, - 994,26,28,1219,25,23,50,1221,106,76, - 77,83,5427,55,5427,1982,49,5427,418,419, - 1979,3070,35,939,32,46,2627,27,30,31, - 992,994,26,28,1219,25,23,50,1221,106, - 76,77,82,3070,35,939,32,54,2627,27, - 30,31,992,994,26,28,1219,25,23,50, - 1221,106,76,77,81,3070,35,939,32,5427, - 2627,27,30,31,992,994,26,28,1219,25, - 23,50,1221,106,76,77,80,3070,35,939, - 32,5427,2627,27,30,31,992,994,26,28, - 1219,25,23,50,1221,106,76,77,79,3070, - 35,939,32,5427,2627,27,30,31,992,994, - 26,28,1219,25,23,50,1221,106,76,77, - 78,2898,35,939,32,5427,2627,27,30,31, - 992,994,26,28,1219,25,23,50,1221,106, - 76,77,104,3070,35,939,32,5427,2627,27, - 30,31,992,994,26,28,1219,25,23,50, - 1221,106,76,77,110,3070,35,939,32,5427, - 2627,27,30,31,992,994,26,28,1219,25, - 23,50,1221,106,76,77,109,3070,35,939, - 32,5427,2627,27,30,31,992,994,26,28, - 1219,25,23,50,1221,106,76,77,107,3070, - 35,939,32,5427,2627,27,30,31,992,994, - 26,28,1219,25,23,50,1221,106,76,77, - 105,3015,35,939,32,1982,2627,27,30,31, - 992,994,26,28,1219,25,23,50,1221,86, - 76,77,2001,1982,1805,2353,2926,1982,1982,2353, - 1982,150,1653,1982,1982,2926,2926,101,5427,5427, - 5427,5427,1740,5427,228,1982,2926,5427,5427,5427, - 5427,5427,5427,343,228,3262,529,150,5427,451, - 378,1275,3309,199,228,3346,3453,298,205,215, - 4566,204,212,213,214,216,2857,2264,205,215, - 4566,204,212,213,214,216,1628,156,205,215, - 4566,204,212,213,214,216,3735,5427,2353,206, - 208,210,294,295,1886,1982,520,207,209,206, - 208,210,294,295,1886,2353,519,207,209,206, - 208,210,294,295,1886,2088,218,207,209,2926, - 150,1982,1982,5427,1275,2175,2823,2440,5427,2926, - 150,5427,2353,5427,1275,5427,5427,228,5427,5427, - 5427,5427,5427,222,5427,5427,5427,228,5427,5427, - 156,5427,5427,4322,3550,5427,5427,5427,5427,3740, - 156,205,215,4566,204,212,213,214,216,3855, - 193,205,215,4566,204,212,213,214,216,1503, - 35,939,32,3224,2768,27,30,31,992,994, - 339,28,206,208,210,294,295,1886,5427,305, - 207,209,206,208,210,294,295,1886,5427,499, - 207,209,1695,35,939,32,5427,4598,27,30, - 31,992,994,339,28,1695,35,939,32,5427, - 4598,27,30,31,992,994,339,28,319,1388, - 321,5427,314,1191,5427,5427,5427,2213,5427,5427, - 5427,1275,5427,5427,5427,2632,5427,5427,5427,5427, - 5427,5427,5427,5427,5427,2562,1577,5427,5427,2926, - 333,319,1388,321,5427,317,1191,160,5427,1577, - 5427,5427,5427,333,319,1388,321,343,315,1191, - 1503,35,939,32,3224,2768,27,30,31,992, - 994,339,28,3229,35,1001,388,5427,4508,5427, - 3874,5427,5427,150,5427,5427,238,2926,587,35, - 1001,388,5427,5427,5427,1181,5427,5427,5427,2926, - 4849,5427,5427,5427,5427,343,5427,273,5427,5427, - 5427,1806,5427,5427,3955,2926,3464,228,5427,319, - 1388,321,49,314,1191,5427,5427,5427,2857,5427, - 5427,1567,1583,2396,5427,232,2956,5427,1635,5427, - 5427,1271,407,3435,5427,3476,1956,35,939,32, - 2378,2768,27,30,31,992,994,339,28,5427, - 236,230,231,1286,5427,1577,5427,2926,4849,332, - 5427,274,408,409,410,294,295,1886,587,35, - 1001,388,5427,5427,2213,228,5427,5427,1275,5427, - 5427,243,246,249,252,1126,5427,1884,5427,5427, - 5427,2412,360,5427,1090,316,1936,321,5427,1271, - 407,3435,49,5427,160,5427,2801,1592,1620,5427, - 5427,1567,3540,929,35,1001,388,587,35,1001, - 388,5427,4285,150,5427,3036,5427,1275,5427,5427, - 408,409,410,294,295,1886,5427,5427,5427,1385, - 35,1001,388,929,35,1001,388,49,411,413, - 5427,49,5427,156,2425,1884,1567,47,537,5427, - 1567,47,3101,929,35,1001,388,5427,5427,5427, - 2657,4185,2187,49,742,4583,343,49,587,35, - 1001,388,1567,2216,156,5427,1567,2409,5427,587, - 35,1001,388,188,3407,5427,3476,49,5427,4480, - 2633,5427,5427,5427,5427,5427,1567,47,587,35, - 1001,388,49,5427,5427,5427,411,414,5427,5427, - 2520,1567,47,49,1602,35,1001,388,587,35, - 1001,388,1567,47,5427,627,587,35,1001,388, - 5427,5427,49,5427,150,5427,2413,5427,537,5427, - 5427,1567,47,1618,35,1001,388,190,49,5427, - 5427,5427,49,5427,5427,2461,343,1567,47,5427, - 49,1567,47,150,156,5427,5427,537,150,1567, - 47,1394,537,2800,2213,3189,5427,49,1275,2857, - 5427,5427,5427,3335,5427,343,1567,47,5427,2794, - 343,5427,5427,156,502,35,1001,388,156,5427, - 1402,2067,2822,5427,160,5427,3464,2800,2857,502, - 35,1001,388,2857,502,35,1001,388,2809,5427, - 5427,5427,2219,3011,4278,5427,2926,5427,49,502, - 35,1001,388,5427,5427,5427,5427,1567,1118,5427, - 5427,5427,5427,49,343,5427,150,150,49,5427, - 537,2926,1567,2410,530,1577,150,1567,2128,4841, - 537,150,5427,49,5427,2926,150,2857,343,343, - 537,4207,1567,663,5427,150,156,533,343,2926, - 150,5427,5427,343,1275,188,156,5427,343,5427, - 150,4480,2857,5427,2926,188,156,343,5427,5427, - 5427,4480,1653,5427,5427,188,2857,5427,5427,5427, - 156,4480,343,5427,5427,5427,1669,5427,5427,4311, - 2857,5427,5427,5427,5427,5427,5427,5427,5427,5427, - 3615,5427,5427,5427,5427,2857,5427,5427,5427,5427, - 5427,5427,5427,96,5427,534,5427,5427,5427,4210, - 5427,5427,5427,5427,5427,5427,5427,5427,5427,4213, - 5427,5427,5427,5427,5427,5427,5427,5427,5427,4214, - 5427,5427,5427,5427,5427,5427,5427,5427,5427,5427, - 5427,5427,5427,5427,5427,5427,5427,5427,5427,5427, - 5427,5427,5427,5427,5427,5427,5427,5427,5427,5427, - 5427,5427,5427,5427,5427,5427,5427,5427,5427,5427, - 5427,5427,5427,5427,5427,5427,5427,5427,5427,5427, - 4204,5427,0,575,1,0,819,1,0,39, - 1,5442,0,39,1,5441,0,1405,1,0, - 39,5442,0,39,5441,0,1489,318,0,1532, - 29,0,440,1575,0,454,1618,0,5442,48, - 0,5441,48,0,38,737,0,38,5442,0, - 38,5441,0,5433,1,0,5432,1,0,283, - 394,0,283,286,0,5661,241,0,5660,241, - 0,5765,241,0,5764,241,0,5688,241,0, - 5687,241,0,5686,241,0,5685,241,0,5684, - 241,0,5683,241,0,5682,241,0,5681,241, - 0,5699,241,0,5698,241,0,5697,241,0, - 5696,241,0,5695,241,0,5694,241,0,5693, - 241,0,5692,241,0,5691,241,0,5690,241, - 0,5689,241,0,39,241,5442,0,39,241, - 5441,0,5465,241,0,1532,387,0,2700,126, - 0,35,33,0,1,444,0,458,2312,0, - 457,2813,0,47,37,0,5465,1,0,39, - 1,0,1348,91,0,32,34,0,39,737, - 0,1,724,0,1,5699,0,1,5698,0, - 1,5697,0,1,5696,0,1,5695,0,1, - 5694,0,1,5693,0,1,5692,0,1,5691, - 0,1,5690,0,1,5689,0,43,5463,0, - 43,37,0,501,1885,0,5465,1,229,0, - 39,1,229,0,229,416,0,5442,37,0, - 5441,37,0,237,2894,0,388,32,0,387, - 29,0,2700,128,0,2700,127,0,331,445, - 0,5437,405,0,5436,405,0,1,4369,0, - 1,2957,0,1,737,0,229,415,0,1, - 92,0,5463,45,0,37,45,0,1,331, - 0,2,5442,37,0,2,5441,37,0,5442, - 36,0,5441,36,0,501,4212,0,1,229, - 0,229,220,0,331,95,0,35,73,0, - 229,219,0,278,3711,0,5439,1,0,5435, - 1,0,1,229,2668,0,5436,229,0,2807, - 229,0,5439,383,0,5438,383,0,2878,229, - 0,10,12,0,8,10,12,0,185,3513, - 0,2977,383,0,8,12,0 + 135,127,127,198,198,174,174,1119,35,1749, + 1739,1101,4562,27,30,31,800,802,26,28, + 1721,25,23,50,1262,106,76,77,108,245, + 1264,1307,1297,1409,1386,1454,1446,675,1481,761, + 1456,273,1524,1534,143,415,35,396,158,144, + 1174,1472,35,790,32,2074,4673,27,30,31, + 800,802,57,28,1725,3070,35,790,32,232, + 2673,27,30,31,800,802,26,28,1254,25, + 23,50,1262,106,76,77,108,1392,1264,1307, + 1297,1409,1386,1835,235,230,231,502,35,945, + 388,3070,35,790,32,274,2673,27,30,31, + 800,802,26,28,1254,25,23,50,1262,106, + 76,77,108,1160,1757,242,245,248,251,1126, + 354,431,1350,2311,35,277,4508,64,2050,1783, + 35,790,32,386,4673,27,30,31,800,802, + 56,28,1714,567,3000,3147,3228,3402,3504,4522, + 2253,35,790,32,2972,2673,27,30,31,800, + 802,26,28,1254,25,23,50,1262,106,76, + 77,108,343,1264,1307,1297,1409,1386,1454,1446, + 61,1481,1927,1456,1178,1524,1534,143,2887,150, + 2346,517,144,3477,2845,3104,502,1592,1585,34, + 502,35,3072,2971,2559,518,2253,35,790,32, + 2972,2673,27,30,31,800,802,26,28,1254, + 25,23,50,1262,106,76,77,108,343,1264, + 1307,1297,1409,1386,1454,1446,150,1481,312,1456, + 2440,1524,1534,143,155,35,453,517,144,4702, + 1635,3104,502,35,945,388,1648,182,2086,1139, + 1809,518,1895,513,1979,35,790,32,60,4861, + 27,30,31,800,802,26,28,2523,511,415, + 35,396,1885,2847,1886,2320,452,2253,35,790, + 32,2972,2673,27,30,31,800,802,26,28, + 1254,25,23,50,1262,106,76,77,108,343, + 1264,1307,1297,1409,1386,1454,1446,443,1481,513, + 1456,3517,1524,1534,143,155,35,279,517,144, + 4787,356,3104,353,1995,35,277,2047,1893,531, + 1886,3797,518,2461,35,790,32,2972,2673,27, + 30,31,800,802,26,28,1254,25,23,50, + 1262,106,76,77,108,343,1264,1307,1297,1409, + 1386,1454,1446,2419,1481,1775,1456,2972,1524,1534, + 143,155,35,279,517,144,4869,569,3104,415, + 35,396,150,42,1921,343,2976,228,518,2553, + 513,1979,35,790,32,2070,4861,27,30,31, + 800,802,59,28,446,2681,2689,2902,877,1911, + 2412,1886,2596,35,790,32,494,2673,27,30, + 31,800,802,26,28,1254,25,23,50,1262, + 106,76,77,108,3073,1264,1307,1297,1409,1386, + 1454,1446,243,1481,447,1456,514,1524,1534,143, + 502,3815,3758,379,144,2322,35,790,32,413, + 2673,27,30,31,800,802,26,28,1254,25, + 23,50,1262,106,76,77,108,322,1264,1307, + 1297,1409,1386,1454,1446,2240,1481,1635,1456,438, + 1524,1534,143,502,2007,3758,379,144,2159,2098, + 3070,35,790,32,93,2673,27,30,31,800, + 802,26,28,1254,25,23,50,1262,106,76, + 77,108,1499,1264,1307,1297,1409,1386,1454,1446, + 2492,1481,2559,1456,1927,1524,1567,164,1704,2005, + 913,385,2272,502,35,282,2528,35,790,32, + 2094,2673,27,30,31,800,802,26,28,1254, + 25,23,50,1262,106,76,77,108,1876,1264, + 1307,1297,1409,1386,1454,1446,1908,1481,381,1456, + 3562,1524,1534,143,386,2272,3758,379,144,502, + 35,2314,423,70,2836,35,790,32,3851,2673, + 27,30,31,800,802,26,28,1254,25,23, + 50,1262,106,76,77,108,288,1264,1307,1297, + 1409,1386,1454,1446,2363,1481,2428,1456,2037,1524, + 1534,143,2435,4366,2220,373,144,2836,35,790, + 32,2222,2673,27,30,31,800,802,26,28, + 1254,25,23,50,1262,106,76,77,108,355, + 1264,1307,1297,1409,1386,1454,1446,531,1481,2469, + 1456,386,1524,1534,143,377,2272,1627,373,144, + 2154,2320,2836,35,790,32,333,2673,27,30, + 31,800,802,26,28,1254,25,23,50,1262, + 106,76,77,108,1475,1264,1307,1297,1409,1386, + 1454,1446,2624,1481,585,1456,324,1524,1534,143, + 329,421,372,373,144,2836,35,790,32,1579, + 2673,27,30,31,800,802,26,28,1254,25, + 23,50,1262,106,76,77,108,2247,1264,1307, + 1297,1409,1386,1454,1446,325,1481,236,1456,150, + 1524,1534,143,690,2994,371,158,144,2664,35, + 790,32,322,2673,27,30,31,800,802,26, + 28,1254,25,23,50,1262,106,76,77,108, + 2847,1264,1307,1297,1409,1386,1454,1446,150,1481, + 386,1456,1275,1524,1567,164,2394,35,790,32, + 369,2673,27,30,31,800,802,26,28,1254, + 25,23,50,1262,106,76,77,108,3556,1264, + 1307,1297,1409,1386,1454,1446,2075,1481,2050,1456, + 3312,1524,1534,143,502,35,293,142,144,1790, + 447,327,502,35,293,2078,35,790,32,846, + 2346,41,30,31,800,802,2836,35,790,32, + 1714,2673,27,30,31,800,802,26,28,1254, + 25,23,50,1262,106,76,77,108,71,1264, + 1307,1297,1409,1386,1454,1446,1236,1481,2559,1456, + 1102,1524,1534,143,1360,4844,142,155,144,2836, + 35,790,32,2517,2673,27,30,31,800,802, + 26,28,1254,25,23,50,1262,106,76,77, + 108,1251,1264,1307,1297,1409,1386,1454,1446,150, + 1481,386,1456,746,1524,1534,143,1919,3805,494, + 154,144,2836,35,790,32,3921,2673,27,30, + 31,800,802,26,28,1254,25,23,50,1262, + 106,76,77,108,214,1264,1307,1297,1409,1386, + 1454,1446,150,1481,1379,1456,827,1524,1534,143, + 3022,502,3086,153,144,2836,35,790,32,2658, + 2673,27,30,31,800,802,26,28,1254,25, + 23,50,1262,106,76,77,108,1500,1264,1307, + 1297,1409,1386,1454,1446,323,1481,523,1456,1102, + 1524,1534,143,531,3431,2495,152,144,2836,35, + 790,32,1328,2673,27,30,31,800,802,26, + 28,1254,25,23,50,1262,106,76,77,108, + 2287,1264,1307,1297,1409,1386,1454,1446,150,1481, + 2388,1456,4545,1524,1534,143,1789,1627,1333,151, + 144,2836,35,790,32,1271,2673,27,30,31, + 800,802,26,28,1254,25,23,50,1262,106, + 76,77,108,1446,1264,1307,1297,1409,1386,1454, + 1446,380,1481,523,1456,1102,1524,1534,143,2052, + 3435,1716,150,144,2836,35,790,32,1377,2673, + 27,30,31,800,802,26,28,1254,25,23, + 50,1262,106,76,77,108,418,1264,1307,1297, + 1409,1386,1454,1446,150,1481,590,1456,3379,1524, + 1534,143,848,1822,1907,149,144,2836,35,790, + 32,2249,2673,27,30,31,800,802,26,28, + 1254,25,23,50,1262,106,76,77,108,3343, + 1264,1307,1297,1409,1386,1454,1446,150,1481,3269, + 1456,3007,1524,1534,143,408,580,1459,148,144, + 2836,35,790,32,1791,2673,27,30,31,800, + 802,26,28,1254,25,23,50,1262,106,76, + 77,108,1863,1264,1307,1297,1409,1386,1454,1446, + 150,1481,932,1456,3118,1524,1534,143,1616,2126, + 1881,147,144,2836,35,790,32,1911,2673,27, + 30,31,800,802,26,28,1254,25,23,50, + 1262,106,76,77,108,2280,1264,1307,1297,1409, + 1386,1454,1446,2344,1481,2044,1456,404,1524,1534, + 143,2156,2696,1355,146,144,2836,35,790,32, + 1502,2673,27,30,31,800,802,26,28,1254, + 25,23,50,1262,106,76,77,108,400,1264, + 1307,1297,1409,1386,1454,1446,150,1481,56,1456, + 2937,1524,1534,143,472,1825,1975,145,144,2836, + 35,790,32,2168,2673,27,30,31,800,802, + 26,28,1254,25,23,50,1262,106,76,77, + 108,2381,1264,1307,1297,1409,1386,1454,1446,150, + 1481,2124,1456,3178,1524,1534,143,2420,1002,2500, + 159,144,2836,35,790,32,2082,2673,27,30, + 31,800,802,26,28,1254,25,23,50,1262, + 106,76,77,108,2454,1264,1307,1297,1409,1386, + 1454,1446,150,1481,2484,1456,3614,1524,1534,143, + 2485,2491,2452,140,144,2953,35,790,32,2567, + 2673,27,30,31,800,802,26,28,1254,25, + 23,50,1262,106,76,77,108,2516,1264,1307, + 1297,1409,1386,1454,1446,150,1481,2387,1456,817, + 1524,1534,143,1995,35,280,189,144,3070,35, + 790,32,1621,2673,27,30,31,800,802,26, + 28,1254,25,23,50,1262,106,76,77,108, + 2171,1264,1307,1297,1409,1386,1454,1446,1897,1481, + 1795,1456,4341,1524,1567,164,3070,35,790,32, + 402,2673,27,30,31,800,802,26,28,1254, + 25,23,50,1262,106,76,77,108,2698,1264, + 1307,1297,1409,1386,1454,1446,2423,1481,3618,1456, + 1618,1524,1567,164,2131,35,790,32,1795,2518, + 40,30,31,800,802,2570,3070,35,790,32, + 292,2673,27,30,31,800,802,26,28,1254, + 25,23,50,1262,106,76,77,108,1103,1264, + 1307,1297,1409,1386,1454,1446,150,1481,1962,1456, + 1275,1524,1567,164,3070,35,790,32,422,2673, + 27,30,31,800,802,26,28,1254,25,23, + 50,1262,106,76,77,108,3771,1264,1307,1297, + 1409,1386,1454,1446,150,1481,1139,1456,3271,1524, + 1567,164,2131,35,790,32,1795,2064,2487,30, + 31,800,802,2094,3125,35,790,32,425,2673, + 27,30,31,800,802,26,28,1254,25,23, + 50,1262,106,76,77,108,1341,1264,1307,1297, + 1409,1386,1454,1446,150,1481,3031,1456,3319,1524, + 1567,164,3070,35,790,32,3537,2673,27,30, + 31,800,802,26,28,1254,25,23,50,1262, + 106,76,77,108,389,1264,1307,1297,1409,1386, + 1454,1446,150,1481,1795,1456,3732,1884,1987,35, + 790,32,1795,4861,27,30,31,800,802,58, + 28,2094,3070,35,790,32,3057,2673,27,30, + 31,800,802,26,28,1254,25,23,50,1262, + 106,76,77,108,730,1264,1307,1297,1409,1386, + 1454,1446,3850,1481,2551,1868,3070,35,790,32, + 3800,2673,27,30,31,800,802,26,28,1254, + 25,23,50,1262,106,76,77,108,1982,1264, + 1307,1297,1409,1386,1454,1446,1010,1843,3070,35, + 790,32,2064,2673,27,30,31,800,802,26, + 28,1254,25,23,50,1262,106,76,77,108, + 497,1264,1307,1297,1409,1386,1454,1850,1608,35, + 790,32,4555,2814,27,30,31,800,802,339, + 28,2347,502,35,945,388,1638,35,790,32, + 2851,2507,27,30,31,800,802,339,28,1806, + 2486,1323,2525,2972,4366,2131,35,790,32,284, + 1982,3071,30,31,800,802,434,1627,1010,326, + 1795,2396,502,35,945,388,332,319,1230,321, + 1249,314,1191,150,2972,1010,1010,2972,502,35, + 1585,276,350,2693,313,319,1230,321,1627,314, + 1191,1795,2396,2637,1367,343,273,332,4457,4366, + 730,352,724,1719,35,790,32,2409,2507,27, + 30,31,800,802,339,28,525,2353,3104,344, + 585,798,349,502,35,945,388,653,509,2981, + 360,730,306,310,594,351,1982,587,35,945, + 388,498,1982,1627,2910,1669,1671,524,587,35, + 945,388,333,2583,3237,406,1010,433,460,459, + 340,360,319,1230,321,2695,314,1191,322,352, + 1179,49,2590,2560,4173,3268,1669,1671,352,2506, + 1626,2128,49,502,35,1585,278,346,585,798, + 349,1626,1628,2591,2432,535,344,585,798,349, + 502,35,1585,2099,2420,2905,2618,3070,35,790, + 32,366,2673,27,30,31,800,802,26,28, + 1254,25,23,50,1262,106,76,77,108,2552, + 1264,1307,1297,1409,1841,3070,35,790,32,4195, + 2673,27,30,31,800,802,26,28,1254,25, + 23,50,1262,106,76,77,108,541,1264,1307, + 1297,1409,1842,1729,35,2411,32,4555,2814,27, + 30,31,800,802,339,28,3070,35,790,32, + 2584,2673,27,30,31,800,802,26,28,1254, + 25,23,50,1262,106,76,77,108,1564,1264, + 1307,1297,1792,1216,35,945,388,502,35,945, + 388,2585,1627,843,35,453,2139,69,4702,2623, + 2972,332,319,1230,321,2619,314,1191,502,35, + 1585,281,1233,35,1585,276,1631,49,2396,1080, + 825,432,502,2463,1585,74,1626,2216,1982,3070, + 35,790,32,4457,2673,27,30,31,800,802, + 26,28,1254,25,23,50,1262,106,76,77, + 108,2625,1264,1307,1297,1798,3070,35,790,32, + 24,2673,27,30,31,800,802,26,28,1254, + 25,23,50,1262,106,76,77,108,2654,1264, + 1307,1297,1800,3070,35,790,32,361,2673,27, + 30,31,800,802,26,28,1254,25,23,50, + 1262,106,76,77,108,87,1264,1755,417,419, + 2410,1503,35,790,32,4555,2507,27,30,31, + 800,802,339,28,587,35,945,388,3070,35, + 790,32,2022,2673,27,30,31,800,802,26, + 28,1254,25,23,50,1262,106,76,77,108, + 1665,1264,1307,1297,1807,259,2213,1102,49,537, + 1275,1326,4677,450,2681,2689,4366,1626,1035,2523, + 319,1230,321,1010,314,1191,2276,228,150,150, + 1048,2432,3429,3501,2656,156,160,313,1233,35, + 1585,2523,1,180,3357,730,537,502,35,1585, + 2563,203,215,4654,2730,202,212,213,214,216, + 1627,169,2553,2735,228,502,35,945,388,332, + 1982,168,156,183,167,170,171,172,173,174, + 180,3357,730,2736,2553,307,310,594,203,215, + 4654,2094,202,212,213,214,216,2081,169,273, + 2377,2981,1747,3184,1275,2737,51,2308,168,181, + 184,167,170,171,172,173,174,1899,35,790, + 32,2851,2507,27,30,31,800,802,339,28, + 156,413,3180,35,945,388,1249,2518,200,3919, + 2972,1460,35,790,32,237,2814,27,30,31, + 800,802,339,28,415,35,1678,1388,2396,2924, + 3381,2243,2412,275,1321,1806,273,1338,3005,2972, + 4366,150,3517,239,2062,744,319,1230,321,4685, + 314,1191,150,173,2882,150,3763,2396,49,1275, + 1627,150,352,526,232,3742,351,1626,740,333, + 319,1230,321,88,315,1191,102,390,427,1341, + 344,585,798,349,1627,156,352,2688,527,235, + 230,231,232,332,2863,89,2094,360,102,3708, + 274,2353,2502,1795,346,585,798,349,1892,352, + 2868,3468,1669,1671,44,1921,2629,240,230,231, + 242,245,248,251,1126,2464,360,344,585,798, + 349,2744,1009,2050,2155,2420,3011,335,4451,299, + 2910,1669,1671,730,2182,2651,3313,1375,1338,3000, + 3147,3228,3402,3504,4522,3070,35,790,32,376, + 2673,27,30,31,800,802,26,28,1254,25, + 23,50,1262,106,76,77,108,1232,1264,1307, + 1825,3070,35,790,32,1982,2673,27,30,31, + 800,802,26,28,1254,25,23,50,1262,106, + 76,77,108,345,1264,1307,1833,537,2081,352, + 3708,2869,429,1982,1982,2382,5510,69,757,35, + 945,388,150,5510,5510,228,4832,344,585,798, + 349,5510,5510,156,150,342,2543,2064,1231,232, + 431,180,3357,730,537,68,53,328,335,203, + 215,4654,273,202,212,213,214,216,1246,169, + 5510,2064,228,374,244,230,231,2353,1982,168, + 156,3078,167,170,171,172,173,174,180,3357, + 730,2159,35,293,5510,517,203,215,4654,537, + 202,212,213,214,216,2219,169,1982,1982,2972, + 87,1338,5510,1010,285,221,168,228,178,167, + 170,171,172,173,174,156,2391,343,391,427, + 232,2262,603,180,3357,730,537,530,297,52, + 2174,203,215,4654,72,202,212,213,214,216, + 3104,169,1795,2723,228,247,230,231,4722,1338, + 533,168,156,176,167,170,171,172,173,174, + 180,3357,730,3708,5510,2353,5510,689,203,215, + 4654,537,202,212,213,214,216,2719,169,150, + 1458,2972,730,2859,2972,2186,97,2353,168,228, + 177,167,170,171,172,173,174,156,376,343, + 3382,335,2396,303,775,180,3357,730,537,1015, + 2007,3708,150,203,215,4654,1082,202,212,213, + 214,216,662,169,150,179,228,42,1448,2159, + 2650,293,1380,168,156,187,167,170,171,172, + 173,174,180,3357,730,5510,5510,2064,3394,335, + 203,215,4654,5510,202,212,213,214,216,2081, + 169,929,35,945,388,587,35,945,388,2262, + 168,505,3117,167,170,171,172,173,174,1869, + 35,790,32,4555,2507,27,30,31,800,802, + 339,28,504,3759,232,49,2416,2213,1982,49, + 1275,1275,3631,5510,1626,47,861,1458,1626,47, + 537,2972,42,503,296,5510,5510,5510,2013,250, + 230,231,1093,5510,5510,5510,156,160,228,2396, + 2224,2081,287,2186,1498,162,156,5510,319,1230, + 321,522,314,1191,180,3357,730,502,35,945, + 388,5510,203,215,4654,313,202,212,213,214, + 216,947,169,2352,2086,537,5510,1010,5510,393, + 427,442,168,456,192,167,170,171,172,173, + 174,49,1102,228,1102,5510,1982,4737,1463,4748, + 46,156,1102,5510,3267,5510,232,4767,505,180, + 3357,730,150,306,310,594,2972,203,215,4654, + 2064,202,212,213,214,216,1033,169,90,504, + 537,253,230,231,343,4241,522,168,1982,186, + 167,170,171,172,173,174,2695,5510,228,1982, + 502,392,427,1982,1015,2007,156,3104,150,1982, + 98,1982,3848,1102,180,3357,730,507,4772,5510, + 3349,150,203,215,4654,3397,202,212,213,214, + 216,67,169,1549,4245,66,5510,304,5510,5510, + 580,65,168,64,194,167,170,171,172,173, + 174,3070,35,790,32,5510,2673,27,30,31, + 800,802,26,28,1254,25,23,50,1262,106, + 76,77,108,2064,1264,1756,3070,35,790,32, + 5510,2673,27,30,31,800,802,26,28,1254, + 25,23,50,1262,106,76,77,108,1338,1764, + 3070,35,790,32,2353,2673,27,30,31,800, + 802,26,28,1254,25,23,50,1262,106,76, + 77,108,1566,1782,1982,2377,2972,287,5510,537, + 1982,5510,1827,2062,1982,2213,2972,2213,4685,1275, + 382,1275,198,5510,228,1982,5510,3856,150,1805, + 2353,5510,3683,1338,228,156,55,1982,3207,2086, + 3708,1982,54,180,3357,160,101,160,205,215, + 4654,5510,204,212,213,214,216,3335,205,215, + 4654,529,204,212,213,214,216,1326,197,451, + 150,195,4366,378,3482,2353,5510,334,335,206, + 208,210,294,295,1936,2353,217,207,209,206, + 208,210,294,295,1936,3708,217,207,209,1816, + 35,2411,32,4555,2507,27,30,31,800,802, + 339,28,3734,302,3740,3313,1627,3231,1914,4258, + 150,1706,2972,201,962,4755,150,3417,5510,4258, + 3449,2213,330,335,5510,1275,3070,35,790,32, + 228,2673,27,30,31,800,802,26,28,1254, + 25,23,50,1262,106,76,77,85,319,1230, + 321,160,314,1191,205,215,4654,5510,204,212, + 213,214,216,2348,5510,1080,5510,2957,5510,5510, + 5510,430,5510,5510,5510,5510,4795,196,966,2353, + 5510,2353,5510,5510,2353,206,208,210,294,295, + 1936,5510,217,207,209,3070,1592,790,1653,94, + 2673,27,30,31,800,802,26,28,1254,25, + 23,50,1262,106,76,77,84,199,3744,298, + 1982,1982,3466,3580,5510,4258,3070,35,790,32, + 5510,2673,27,30,31,800,802,26,28,1254, + 25,23,50,1262,106,76,77,83,5510,5510, + 5510,1982,3337,3374,418,419,2410,3070,35,790, + 32,5510,2673,27,30,31,800,802,26,28, + 1254,25,23,50,1262,106,76,77,82,3070, + 35,790,32,3476,2673,27,30,31,800,802, + 26,28,1254,25,23,50,1262,106,76,77, + 81,3070,35,790,32,5510,2673,27,30,31, + 800,802,26,28,1254,25,23,50,1262,106, + 76,77,80,3070,35,790,32,5510,2673,27, + 30,31,800,802,26,28,1254,25,23,50, + 1262,106,76,77,79,3070,35,790,32,5510, + 2673,27,30,31,800,802,26,28,1254,25, + 23,50,1262,106,76,77,78,2898,35,790, + 32,5510,2673,27,30,31,800,802,26,28, + 1254,25,23,50,1262,106,76,77,104,3070, + 35,790,32,5510,2673,27,30,31,800,802, + 26,28,1254,25,23,50,1262,106,76,77, + 110,3070,35,790,32,5510,2673,27,30,31, + 800,802,26,28,1254,25,23,50,1262,106, + 76,77,109,3070,35,790,32,5510,2673,27, + 30,31,800,802,26,28,1254,25,23,50, + 1262,106,76,77,107,3070,35,790,32,5510, + 2673,27,30,31,800,802,26,28,1254,25, + 23,50,1262,106,76,77,105,3015,35,790, + 32,1982,2673,27,30,31,800,802,26,28, + 1254,25,23,50,1262,86,76,77,2001,150, + 1982,2353,2972,1275,1982,1982,5510,5510,1653,2353, + 5510,2213,2972,2430,5510,1275,5510,5510,1740,5510, + 228,5510,2972,5510,5510,5510,5510,5510,5510,156, + 228,5510,2461,5510,5510,5510,4249,3586,1878,222, + 228,160,5510,5510,205,215,4654,193,204,212, + 213,214,216,5510,205,215,4654,5510,204,212, + 213,214,216,5510,205,215,4654,5510,204,212, + 213,214,216,5510,5510,206,208,210,294,295, + 1936,5510,520,207,209,206,208,210,294,295, + 1936,5510,519,207,209,206,208,210,294,295, + 1936,2088,218,207,209,2972,150,5510,3767,5510, + 1275,2175,5510,5510,5510,2972,5510,5510,5510,5510, + 5510,150,5510,228,5510,2972,502,35,945,388, + 5510,5510,5510,228,5510,5510,156,5510,150,5510, + 5510,5510,1275,343,5510,3609,5510,205,215,4654, + 5510,204,212,213,214,216,5510,205,215,4654, + 49,204,212,213,214,216,3104,5510,156,1626, + 673,5510,5510,5510,5510,5510,1696,3613,206,208, + 210,294,295,1936,5510,305,207,209,206,208, + 210,294,295,1936,5510,499,207,209,1503,35, + 790,32,4555,2507,27,30,31,800,802,339, + 28,1326,5510,5510,5510,5510,4366,1695,35,790, + 32,5510,2814,27,30,31,800,802,339,28, + 1695,35,790,32,5510,2814,27,30,31,800, + 802,339,28,1503,35,790,32,4555,2507,27, + 30,31,800,802,339,28,5510,319,1230,321, + 1627,314,1191,5510,5510,5510,1627,5510,1326,332, + 5510,5510,5510,4366,2506,333,319,1230,321,1627, + 317,1191,3229,35,945,388,5510,2518,333,319, + 1230,321,5510,315,1191,238,5510,5510,5510,5510, + 5510,2464,319,1230,321,1181,314,1191,5510,2972, + 4856,5510,5510,5510,5510,1326,273,1627,5510,3115, + 4366,5510,1385,35,945,388,332,228,5510,1223, + 35,790,32,2633,2507,27,30,31,800,802, + 339,28,5510,5510,232,5510,5510,5510,5510,5510, + 1286,1799,407,4569,2972,4856,49,5510,1178,5510, + 5510,5510,5510,5510,1627,1626,2866,403,5510,236, + 230,231,228,332,5510,5510,5510,5510,5510,2905, + 274,5510,408,409,410,294,295,1936,316,1997, + 321,5510,5510,5510,5510,5510,1799,407,4569,5510, + 243,246,249,252,1126,4470,5510,1928,5510,5510, + 5510,5510,5510,2050,1956,35,790,32,2378,2507, + 27,30,31,800,802,339,28,408,409,410, + 294,295,1936,929,35,945,388,929,35,945, + 388,5510,5510,5510,5510,587,35,945,388,5510, + 5510,5510,1928,5510,5510,5510,5510,5510,5510,5510, + 5510,5510,587,35,945,388,5510,49,411,413, + 5510,49,5510,316,1997,321,1626,3001,5510,49, + 1626,47,587,35,945,388,5510,2706,1626,47, + 3188,5510,2187,5510,2415,4590,49,1602,35,945, + 388,5510,627,5510,5510,1626,47,5510,587,35, + 945,388,5510,411,414,2067,49,5510,5510,792, + 4366,5510,5510,5510,5510,1626,47,587,35,945, + 388,49,1618,35,945,388,5510,5510,5510,2392, + 1626,47,49,5510,5510,5510,5510,502,35,945, + 388,1626,47,5510,1394,2425,150,5510,150,537, + 537,49,537,5510,1627,2493,49,5510,5510,5510, + 1626,47,2706,4755,5510,1626,47,343,343,5510, + 343,49,5510,5510,2677,156,156,5510,156,1402, + 1626,874,2345,5510,188,2718,2972,3183,150,5510, + 4483,3104,537,3104,502,35,945,388,5510,5510, + 5510,2512,5510,3155,2396,5510,502,35,945,388, + 343,502,35,945,388,5510,5510,5510,156,502, + 35,945,388,5510,5510,5510,5510,2718,49,5510, + 150,5510,5510,3104,537,150,5510,1626,2040,537, + 49,5510,150,3238,5510,49,537,96,190,1626, + 3049,5510,343,49,1626,2216,5510,343,5510,5510, + 156,5510,1626,663,343,156,150,150,5510,188, + 2972,2972,156,505,188,4483,5510,5510,5510,150, + 4483,188,150,2972,5510,5510,2972,4483,343,343, + 5510,150,5510,150,504,2972,2562,1275,5510,5510, + 2972,343,5510,5510,343,150,5510,5510,5510,1275, + 150,3104,3104,343,1275,502,5510,5510,343,5510, + 5510,1706,1712,156,3104,3924,150,3104,5510,5510, + 1275,5510,3619,3960,1713,156,3104,3598,3961,5510, + 156,3903,5510,5510,3621,3991,534,5510,5510,3273, + 5510,5510,5510,5510,5510,2668,156,5510,5510,5510, + 5510,5510,5510,5510,5510,4244,5510,5510,5510,5510, + 5510,5510,5510,5510,5510,5510,5510,5510,5510,5510, + 5510,5510,5510,5510,5510,5510,5510,5510,5510,5510, + 5510,5510,5510,5510,5510,5510,5510,5510,5510,5510, + 5510,5510,5510,5510,5510,5510,5510,5510,5510,5510, + 5510,5510,5510,5510,5510,5510,5510,5510,5510,5510, + 5510,5510,5510,5510,5510,5510,5510,5510,5510,5510, + 5510,5510,5510,5510,5510,5510,5510,5510,5510,5510, + 5510,5510,5510,5510,5510,5510,5510,5510,5510,5510, + 5510,5510,5510,5510,5510,5510,5510,5510,5510,5510, + 5510,5510,5510,5510,5510,5510,5510,5510,5510,5510, + 5510,5510,5510,5510,5510,5510,5510,5510,5510,5510, + 5510,5510,5510,5510,5510,5510,5510,5510,5510,5510, + 5510,5510,5510,4240,5510,0,575,1,0,819, + 1,0,39,1,5525,0,39,1,5524,0, + 1405,1,0,39,5525,0,39,5524,0,932, + 318,0,1309,29,0,440,1489,0,454,1532, + 0,5525,48,0,5524,48,0,38,736,0, + 38,5525,0,38,5524,0,5516,1,0,5515, + 1,0,283,394,0,283,286,0,5744,241, + 0,5743,241,0,5848,241,0,5847,241,0, + 5771,241,0,5770,241,0,5769,241,0,5768, + 241,0,5767,241,0,5766,241,0,5765,241, + 0,5764,241,0,5782,241,0,5781,241,0, + 5780,241,0,5779,241,0,5778,241,0,5777, + 241,0,5776,241,0,5775,241,0,5774,241, + 0,5773,241,0,5772,241,0,39,241,5525, + 0,39,241,5524,0,5548,241,0,1309,387, + 0,2746,126,0,35,33,0,1,444,0, + 458,2445,0,457,2446,0,47,37,0,5548, + 1,0,39,1,0,1348,91,0,32,34, + 0,39,736,0,1,1450,0,1,5782,0, + 1,5781,0,1,5780,0,1,5779,0,1, + 5778,0,1,5777,0,1,5776,0,1,5775, + 0,1,5774,0,1,5773,0,1,5772,0, + 43,5546,0,43,37,0,501,1929,0,5548, + 1,229,0,39,1,229,0,229,416,0, + 5525,37,0,5524,37,0,237,2846,0,388, + 32,0,387,29,0,2746,128,0,2746,127, + 0,331,445,0,5520,405,0,5519,405,0, + 1,4438,0,1,3347,0,1,736,0,229, + 415,0,1,92,0,5546,45,0,37,45, + 0,1,331,0,2,5525,37,0,2,5524, + 37,0,5525,36,0,5524,36,0,501,4248, + 0,1,229,0,229,220,0,331,95,0, + 35,73,0,229,219,0,278,3745,0,5522, + 1,0,5518,1,0,1,229,2768,0,5519, + 229,0,2795,229,0,5522,383,0,5521,383, + 0,3023,229,0,10,12,0,8,10,12, + 0,185,3531,0,3185,383,0,8,12,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1463,348 +1479,348 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface TermAction { public final static char termAction[] = {0, - 5427,5392,5368,5368,5368,5368,5368,5368,5408,5368, + 5510,5475,5451,5451,5451,5451,5451,5451,5491,5451, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5396,1,1,1,1, + 1,1,1,1,1,5479,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5427,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5427,1,1,1,1540, - 5602,1,1080,301,2272,1,1,5438,286,5122, - 5122,5434,283,5727,1044,2856,3751,2194,3452,2666, - 3127,2835,1140,2820,2804,2817,10,5411,5411,5411, - 5411,5411,5411,5411,5411,5411,5411,5411,5411,5411, - 5411,5411,5411,5411,5411,5411,5411,5411,5411,5411, - 5411,5411,5411,5411,5411,5411,5411,5411,5411,5411, - 5411,5411,5411,5411,5411,5411,5411,1932,5411,5411, - 5411,5411,5411,5411,5411,5411,5411,5411,5411,5411, - 5411,135,5411,5411,5411,5411,5411,5411,5411,1, - 5411,5411,5411,5411,5427,5083,5080,5411,5465,2877, - 5411,5411,5411,5411,5411,5411,5411,5411,5411,5411, - 5411,5411,8,5414,5414,5414,5414,5414,5414,5414, - 5414,5414,5414,5414,5414,5414,5414,5414,5414,5414, - 5414,5414,5414,5414,5414,5414,5414,5414,5414,5414, - 5414,5414,5414,5414,5414,5414,5414,5414,5414,5414, - 5414,5414,5414,137,5414,5414,5414,5414,5414,5414, - 5414,5414,5414,5414,5414,5414,5414,439,5414,5414, - 5414,5414,5414,5414,5414,115,5414,5414,5414,5414, - 2316,3674,5427,5414,5427,4803,5414,5414,5414,5414, - 5414,5414,5414,5414,5414,5414,5414,5414,5427,5392, - 5368,5368,5368,5368,5368,5368,5399,5368,1,1, + 1,5510,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5510,1,1,1,1541, + 5685,1,1184,301,2542,1,1,5521,286,5205, + 5205,5517,283,5810,2264,2923,3760,2194,3714,2741, + 3173,2903,1000,2894,2940,2874,10,5494,5494,5494, + 5494,5494,5494,5494,5494,5494,5494,5494,5494,5494, + 5494,5494,5494,5494,5494,5494,5494,5494,5494,5494, + 5494,5494,5494,5494,5494,5494,5494,5494,5494,5494, + 5494,5494,5494,5494,5494,5494,5494,1932,5494,5494, + 5494,5494,5494,5494,5494,5494,5494,5494,5494,5494, + 5494,135,5494,5494,5494,5494,5494,5494,5494,1, + 5494,5494,5494,5494,5510,5166,5163,5494,5548,2945, + 5494,5494,5494,5494,5494,5494,5494,5494,5494,5494, + 5494,5494,8,5497,5497,5497,5497,5497,5497,5497, + 5497,5497,5497,5497,5497,5497,5497,5497,5497,5497, + 5497,5497,5497,5497,5497,5497,5497,5497,5497,5497, + 5497,5497,5497,5497,5497,5497,5497,5497,5497,5497, + 5497,5497,5497,137,5497,5497,5497,5497,5497,5497, + 5497,5497,5497,5497,5497,5497,5497,439,5497,5497, + 5497,5497,5497,5497,5497,115,5497,5497,5497,5497, + 2316,3710,5510,5497,5510,4798,5497,5497,5497,5497, + 5497,5497,5497,5497,5497,5497,5497,5497,5510,5475, + 5451,5451,5451,5451,5451,5451,5482,5451,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5396,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,776, + 1,1,1,5479,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,729, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,2282,1,1,1,1540,5602,1, - 1080,5427,2272,1,1,5438,3468,3650,631,5862, - 5863,5864,1044,2856,3751,2194,3452,2666,3127,2835, - 1140,2820,2804,2817,5427,5392,5368,5368,5368,5368, - 5368,5368,5399,5368,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5396, + 1,1,1,2282,1,1,1,1541,5685,1, + 1184,5510,2542,1,1,5521,2712,3686,631,5945, + 5946,5947,2264,2923,3760,2194,3714,2741,3173,2903, + 1000,2894,2940,2874,5510,5475,5451,5451,5451,5451, + 5451,5451,5482,5451,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5479, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,331,1,1,1,1, 1,1,1,1,1,1,1,1,1,136, - 1,1,1,1540,5602,1,1080,117,2272,1, - 1,5438,395,3674,397,5441,5442,5427,1044,2856, - 3751,2194,3452,2666,3127,2835,1140,2820,2804,2817, - 5427,5392,5368,5368,5368,5368,5368,5368,5399,5368, + 1,1,1,1541,5685,1,1184,117,2542,1, + 1,5521,395,3710,397,5524,5525,5510,2264,2923, + 3760,2194,3714,2741,3173,2903,1000,2894,2940,2874, + 5510,5475,5451,5451,5451,5451,5451,5451,5482,5451, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5396,1,1,1,1, + 1,1,1,1,1,5479,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,138,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1893,1,1,1,1540, - 5602,1,1080,384,2272,1,1,5438,2316,3650, - 631,5427,5441,5442,1044,2856,3751,2194,3452,2666, - 3127,2835,1140,2820,2804,2817,5427,5392,5368,5368, - 5368,5368,5368,5368,5399,5368,1,1,1,1, + 1,1,1,1,1,1954,1,1,1,1541, + 5685,1,1184,384,2542,1,1,5521,2316,3686, + 631,5510,5524,5525,2264,2923,3760,2194,3714,2741, + 3173,2903,1000,2894,2940,2874,5510,5475,5451,5451, + 5451,5451,5451,5451,5482,5451,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5396,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5427,1,1, + 1,5479,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5510,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,2282,1,1,1,1540,5602,1,1080,116, - 2272,1,1,5438,111,3674,5427,5101,5098,5427, - 1044,2856,3751,2194,3452,2666,3127,2835,1140,2820, - 2804,2817,5427,5392,5368,5368,5368,5368,5368,5368, - 5399,5368,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5396,1,1, + 1,2282,1,1,1,1541,5685,1,1184,116, + 2542,1,1,5521,111,3710,5510,5184,5181,5510, + 2264,2923,3760,2194,3714,2741,3173,2903,1000,2894, + 2940,2874,5510,5475,5451,5451,5451,5451,5451,5451, + 5482,5451,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5479,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5427,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1911,1,1, - 1,1540,5602,1,1080,5427,2272,1,1,5438, - 5427,3650,631,4093,508,4115,1044,2856,3751,2194, - 3452,2666,3127,2835,1140,2820,2804,2817,5427,5392, - 5368,5368,5368,5368,5368,5368,5399,5368,1,1, + 1,1,1,5510,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1964,1,1, + 1,1541,5685,1,1184,5510,2542,1,1,5521, + 5510,3686,631,4129,508,4151,2264,2923,3760,2194, + 3714,2741,3173,2903,1000,2894,2940,2874,5510,5475, + 5451,5451,5451,5451,5451,5451,5482,5451,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5396,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5427, + 1,1,1,5479,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5510, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,2431,1,1,1,1540,5602,1, - 1080,5427,2272,1,1,5438,5427,5441,5442,5427, - 506,3468,1044,2856,3751,2194,3452,2666,3127,2835, - 1140,2820,2804,2817,5427,5392,5368,5368,5368,5368, - 5368,5368,5399,5368,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5396, + 1,1,1,2443,1,1,1,1541,5685,1, + 1184,5510,2542,1,1,5521,5510,5524,5525,5510, + 506,2712,2264,2923,3760,2194,3714,2741,3173,2903, + 1000,2894,2940,2874,5510,5475,5451,5451,5451,5451, + 5451,5451,5482,5451,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5479, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5427,1,1,1,1, - 1,1,1,1,1,1,1,1,1,3705, - 1,1,1,1540,5602,1,1080,5427,2272,1, - 1,5438,5427,5083,5080,121,5465,5427,1044,2856, - 3751,2194,3452,2666,3127,2835,1140,2820,2804,2817, - 5427,5392,5368,5368,5368,5368,5368,5368,5399,5368, + 1,1,1,1,1,5510,1,1,1,1, + 1,1,1,1,1,1,1,1,1,3572, + 1,1,1,1541,5685,1,1184,5510,2542,1, + 1,5521,5510,5166,5163,121,5548,5510,2264,2923, + 3760,2194,3714,2741,3173,2903,1000,2894,2940,2874, + 5510,5475,5451,5451,5451,5451,5451,5451,5482,5451, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5396,1,1,1,1, + 1,1,1,1,1,5479,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5427,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1921,1,1,1,1540, - 5602,1,1080,5427,2272,1,1,5438,48,5101, - 5098,125,3079,3105,1044,2856,3751,2194,3452,2666, - 3127,2835,1140,2820,2804,2817,5427,5392,5368,5368, - 5368,5368,5368,5368,5399,5368,1,1,1,1, + 1,5510,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1970,1,1,1,1541, + 5685,1,1184,5510,2542,1,1,5521,48,5184, + 5181,125,3125,3151,2264,2923,3760,2194,3714,2741, + 3173,2903,1000,2894,2940,2874,5510,5475,5451,5451, + 5451,5451,5451,5451,5482,5451,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5396,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5427,1,1, + 1,5479,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5510,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5427,1,1,1,1540,5602,1,1080,5427, - 2272,1,1,5438,290,5441,5442,5431,3079,3105, - 1044,2856,3751,2194,3452,2666,3127,2835,1140,2820, - 2804,2817,5427,2668,1,1,1,1,1,1, - 2807,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5436,1,1, + 1,5510,1,1,1,1541,5685,1,1184,5510, + 2542,1,1,5521,290,5524,5525,5514,3125,3151, + 2264,2923,3760,2194,3714,2741,3173,2903,1000,2894, + 2940,2874,5510,2768,1,1,1,1,1,1, + 2795,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5519,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5828,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5427,1,1, - 1,1540,5602,1,1080,5427,2272,1,1,5438, - 5427,39,37,5223,5223,5465,1044,2856,3751,2194, - 3452,2666,3127,2835,1140,2820,2804,2817,39,5083, - 5080,4774,1405,3899,3983,2957,5430,4005,921,5691, - 5689,5698,5697,5693,5694,5692,5695,5696,5699,5690, - 5687,5764,5765,5463,5681,5688,5684,5660,5686,5685, - 5682,5683,5661,3961,3930,4049,4027,5825,5446,370, - 3830,1043,1184,5448,1166,4181,1174,5449,5447,1009, - 5443,5444,5445,5427,2469,5826,5827,368,5427,1356, - 5427,5290,5290,229,5286,229,229,229,5294,229, + 1,1,1,5911,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5510,1,1, + 1,1541,5685,1,1184,5510,2542,1,1,5521, + 5510,39,37,5306,5306,5548,2264,2923,3760,2194, + 3714,2741,3173,2903,1000,2894,2940,2874,39,5166, + 5163,4796,1405,3935,4019,3347,5513,4041,921,5774, + 5772,5781,5780,5776,5777,5775,5778,5779,5782,5773, + 5770,5847,5848,5546,5764,5771,5767,5743,5769,5768, + 5765,5766,5744,3997,3966,4085,4063,5908,5529,370, + 3866,1174,1219,5531,1176,4217,1182,5532,5530,992, + 5526,5527,5528,5510,2687,5909,5910,368,5510,1356, + 5510,5373,5373,229,5369,229,229,229,5377,229, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,229,1,1,1,1, - 1,1,1,1,1,5427,5441,5442,2048,1, - 5062,5283,1,5073,5069,5327,5077,5333,1187,5330, - 5437,224,36,5362,5359,131,1,1,1,3032, - 5839,653,667,3148,595,225,1232,5436,1,5427, - 133,416,229,5687,5764,5765,363,5681,5688,5684, - 5660,5686,5685,5682,5683,5661,5927,5687,5764,5765, - 510,5681,5688,5684,5660,5686,5685,5682,5683,5661, - 4071,825,5862,5863,5864,5427,5290,5290,229,5286, - 229,229,229,5336,229,1,1,1,1,1, + 1,1,1,1,1,5510,5524,5525,2048,1, + 5145,5366,1,5156,5152,5410,5160,5416,1187,5413, + 5520,224,36,5445,5442,131,1,1,1,3251, + 5922,617,667,3350,595,225,1232,5519,1,5510, + 133,416,229,5770,5847,5848,363,5764,5771,5767, + 5743,5769,5768,5765,5766,5744,6010,5770,5847,5848, + 510,5764,5771,5767,5743,5769,5768,5765,5766,5744, + 4107,915,5945,5946,5947,5510,5373,5373,229,5369, + 229,229,229,5419,229,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 229,1,1,1,1,1,1,1,1,1, - 1,363,29,2965,1,39,5283,33,5113,5465, - 5211,331,47,5211,331,5211,5211,336,363,804, - 37,1,1,1,3032,5839,5427,667,2348,444, - 1,1,5211,1,134,5214,415,229,5214,129, - 5764,5765,5211,5211,5211,5211,345,39,39,2965, - 5465,5927,331,2443,185,331,396,1532,139,226, - 387,5463,5211,1318,5427,5101,5098,5862,5863,5864, - 5211,5427,5427,5116,424,5211,5211,5211,5211,5211, - 5211,5687,5764,5765,5427,5681,5688,5684,5660,5686, - 5685,5682,5683,5661,5211,5211,5211,5211,5211,5211, - 5211,5211,5211,5211,5211,5211,5211,5211,5211,1318, - 931,1532,5211,5211,5211,5211,5211,5211,5211,5211, - 5211,5211,5211,5211,5211,5427,5211,1846,5235,4071, - 825,5235,2348,5235,5235,2559,2531,1,114,345, - 5083,5080,2418,1405,737,331,2957,5063,331,5427, - 5235,5427,5083,5080,5427,1405,5238,2894,2957,2232, - 5235,5235,5235,5235,2860,1803,1760,1717,1674,1631, - 1588,1545,1502,1459,1416,5418,5066,227,567,139, - 5235,132,1,5073,5069,4369,5077,737,5235,2957, - 595,5427,941,5235,5235,5235,5235,5235,5235,5687, - 5764,5765,1318,5681,5688,5684,5660,5686,5685,5682, - 5683,5661,5235,5235,5235,5235,5235,5235,5235,5235, - 5235,5235,5235,5235,5235,5235,5235,4093,5427,4115, - 5235,5235,5235,5235,5235,5235,5235,5235,5235,5235, - 5235,5235,5235,5427,5235,5427,5368,5368,229,5368, - 229,229,229,5371,229,1,1,1,1,1, + 1,363,29,3004,1,39,5366,33,5196,5548, + 5294,331,47,5294,331,5294,5294,336,363,804, + 37,1,1,1,3251,5922,5510,667,2348,444, + 1,1,5294,1,134,5297,415,229,5297,129, + 5847,5848,5294,5294,5294,5294,345,39,39,3004, + 5548,6010,331,2448,185,331,396,1309,139,226, + 387,5546,5294,1318,5510,5184,5181,5945,5946,5947, + 5294,5510,5510,5199,424,5294,5294,5294,5294,5294, + 5294,5770,5847,5848,5510,5764,5771,5767,5743,5769, + 5768,5765,5766,5744,5294,5294,5294,5294,5294,5294, + 5294,5294,5294,5294,5294,5294,5294,5294,5294,1318, + 929,1309,5294,5294,5294,5294,5294,5294,5294,5294, + 5294,5294,5294,5294,5294,5510,5294,1846,5318,4107, + 915,5318,2348,5318,5318,2605,2577,1,114,345, + 5166,5163,2473,1405,736,331,3347,5146,331,5510, + 5318,5510,5166,5163,5510,1405,5321,2846,3347,2232, + 5318,5318,5318,5318,4239,1803,1760,1717,1674,1631, + 1588,1545,1502,1459,1416,5501,5149,227,559,139, + 5318,132,1,5156,5152,4438,5160,736,5318,3347, + 595,5510,941,5318,5318,5318,5318,5318,5318,5770, + 5847,5848,1318,5764,5771,5767,5743,5769,5768,5765, + 5766,5744,5318,5318,5318,5318,5318,5318,5318,5318, + 5318,5318,5318,5318,5318,5318,5318,4129,5510,4151, + 5318,5318,5318,5318,5318,5318,5318,5318,5318,5318, + 5318,5318,5318,5510,5318,5510,5451,5451,229,5451, + 229,229,229,5454,229,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 229,1,1,8694,1,1,1,1,1,1, - 2232,5427,8654,8649,1,2860,5365,309,5073,5069, - 4369,5077,737,5348,2957,124,5348,5427,8654,8649, - 5427,1,1,1,3351,5638,5427,1080,5437,2272, - 1,4315,1790,3148,29,5756,220,367,5073,5069, - 2418,5077,737,1,2957,5436,1,43,5280,5280, - 5427,5927,5427,5368,5368,229,5368,229,229,229, + 229,1,1,8777,1,1,1,1,1,1, + 2232,5510,8737,8732,1,4239,5448,309,5156,5152, + 4438,5160,736,5431,3347,124,5431,5510,8737,8732, + 5510,1,1,1,3399,5721,5510,1184,5520,2542, + 1,4351,1350,3350,29,1221,220,367,5156,5152, + 2473,5160,736,1,3347,5519,1,43,5363,5363, + 5510,6010,5510,5451,5451,229,5451,229,229,229, 229,229,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,229,1,1, - 8694,1,1,1,1,1,1,5427,5277,5089, - 3793,1,5427,5365,331,5083,5080,4369,1405,737, - 1318,2957,3079,3105,3720,5427,1144,1928,1,1, - 1,3351,5638,5435,1080,362,2272,5427,1,5073, - 5069,2418,5077,737,311,2957,5113,2136,5427,5073, - 5069,4369,5077,737,5348,2957,5427,5348,5927,5427, - 5368,5368,229,5368,229,229,229,5380,229,1, + 8777,1,1,1,1,1,1,5510,5360,5172, + 3829,1,5510,5448,331,5166,5163,4438,1405,736, + 1318,3347,3125,3151,3204,5510,1144,1972,1,1, + 1,3399,5721,5518,1184,362,2542,5510,1,5156, + 5152,2473,5160,736,311,3347,5196,2136,5510,5156, + 5152,4438,5160,736,5431,3347,5510,5431,6010,5510, + 5451,5451,229,5451,229,229,229,5463,229,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,229,1,1,8694,1,1, - 1,1,1,1,91,1005,5434,5232,1,5427, - 5365,1318,5427,5083,5080,3221,1405,5238,5427,2957, - 113,5116,733,1096,5427,1,1,1,3351,5638, - 1050,1080,5439,2272,5427,1,5229,5229,440,5226, - 219,331,5433,363,331,1,5073,5069,4369,5077, - 737,5427,2957,2268,5427,5927,5427,5368,5368,229, - 5368,229,229,229,5371,229,1,1,1,1, + 1,1,1,1,229,1,1,8777,1,1, + 1,1,1,1,91,1005,5517,5315,1,5510, + 5448,1318,5510,5166,5163,2686,1405,5321,5510,3347, + 113,5199,796,1096,5510,1,1,1,3399,5721, + 1050,1184,5522,2542,5510,1,5312,5312,440,5309, + 219,331,5516,363,331,1,5156,5152,4438,5160, + 736,5510,3347,2268,5510,6010,5510,5451,5451,229, + 5451,229,229,229,5454,229,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,229,1,1,8694,1,1,1,1,1, - 1,5438,112,5092,5427,1,5427,5365,1,5073, - 5069,4369,5077,737,4930,2957,309,5432,363,4093, - 123,4115,1,1,1,3351,5638,1050,1080,1927, - 2272,5427,5939,309,454,363,1,220,1,5073, - 5069,2418,5077,737,5386,2957,157,394,5119,5119, - 122,283,5927,5427,5368,5368,229,5368,229,229, - 229,5371,229,1,1,1,1,1,1,1, + 1,229,1,1,8777,1,1,1,1,1, + 1,5521,112,5175,5510,1,5510,5448,1,5156, + 5152,4438,5160,736,4941,3347,309,5515,363,4129, + 123,4151,1,1,1,3399,5721,1050,1184,1971, + 2542,5510,6022,309,454,363,1,220,1,5156, + 5152,2473,5160,736,5469,3347,157,394,5202,5202, + 122,283,6010,5510,5451,5451,229,5451,229,229, + 229,5454,229,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,229,1, - 1,8694,1,1,1,1,1,1,283,5095, - 5427,4093,1,4115,5365,1,5073,5069,5327,5077, - 5333,1318,5330,5438,5427,5427,2948,3079,3105,1, - 1,1,3351,5638,515,1080,1889,2272,5427,5083, - 5080,5427,1405,737,220,2957,5427,5083,5080,5433, - 1405,737,5427,2957,5427,5300,5297,3079,3105,5927, - 5427,5368,5368,229,5368,229,229,229,229,229, + 1,8777,1,1,1,1,1,1,283,5178, + 5510,4129,1,4151,5448,1,5156,5152,5410,5160, + 5416,1318,5413,5521,5510,5510,3101,3125,3151,1, + 1,1,3399,5721,515,1184,1889,2542,5510,5166, + 5163,5510,1405,736,220,3347,5510,5166,5163,5516, + 1405,736,5510,3347,5510,5383,5380,3125,3151,6010, + 5510,5451,5451,229,5451,229,229,229,229,229, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,229,1,1,8694,1, - 1,1,1,1,1,5463,445,39,39,1, - 5465,5365,5318,130,883,5318,92,1,1,395, - 1,358,5339,388,5432,5339,1,1,1,3351, - 5638,39,1080,5427,2272,5465,95,39,39,387, - 5465,5435,5374,347,126,5374,875,38,5110,5107, - 428,5427,5104,1037,2957,348,5927,5427,5368,5368, - 229,5368,229,229,229,229,229,1,1,1, + 1,1,1,1,1,229,1,1,8777,1, + 1,1,1,1,1,5546,445,39,39,1, + 5548,5448,5401,130,883,5401,92,1,1,395, + 1,358,5422,388,5515,5422,1,1,1,3399, + 5721,39,1184,5510,2542,5548,95,39,39,387, + 5548,5518,5457,347,126,5457,776,38,5193,5190, + 428,5510,5187,937,3347,348,6010,5510,5451,5451, + 229,5451,229,229,229,229,229,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,229,1,1,8694,1,1,1,1, - 1,1,1929,5427,5205,405,1,3252,5365,2772, - 5427,5441,5442,5321,5434,737,1318,2957,1,2559, - 2531,5784,5208,1,1,1,3351,5638,1318,1080, - 5324,2272,3242,318,1,128,5086,2965,5427,5441, - 5442,5427,341,5862,5863,5864,5439,5427,2673,2600, - 5427,8657,8657,5927,5427,5368,5368,229,5368,229, + 1,1,229,1,1,8777,1,1,1,1, + 1,1,1979,5510,5288,405,1,2947,5448,2818, + 5510,5524,5525,5404,5517,736,1318,3347,1,2605, + 2577,5867,5291,1,1,1,3399,5721,1318,1184, + 5407,2542,3014,318,1,128,5169,3004,5510,5524, + 5525,5510,341,5945,5946,5947,5522,5510,2719,2646, + 5510,8740,8740,6010,5510,5451,5451,229,5451,229, 229,229,229,229,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,229, - 1,1,8694,1,1,1,1,1,1,5427, - 2772,5463,1,1,5427,5365,1318,1318,1,301, - 161,320,341,5312,341,5438,5433,341,5786,5727, - 1,1,1,3351,5638,5868,1080,5427,2272,37, - 5223,5223,37,5223,5223,331,118,5223,237,2673, - 2600,5303,1,5073,5069,4774,5077,3899,3983,2957, - 5927,4005,5241,5268,5274,5247,5250,5262,5259,5265, - 5256,5253,5244,5271,341,37,5223,5223,2985,120, - 5463,3625,2727,3531,1318,161,458,3961,3930,4049, - 4027,5432,5446,5427,3830,1043,1184,5448,1166,4181, - 1174,5449,5447,1009,5443,5444,5445,45,5345,5345, - 5427,5355,5351,1356,3625,2727,3458,39,39,448, - 516,39,5083,5080,4774,1405,3899,3983,2957,5421, - 4005,724,5691,5689,5698,5697,5693,5694,5692,5695, - 5696,5699,5690,119,1,1,5427,1,5342,5217, - 1027,5463,5427,5389,5063,528,3961,3930,4049,4027, - 5437,5446,5427,3830,1043,1184,5448,1166,4181,1174, - 5449,5447,1009,5443,5444,5445,1,5436,3625,2727, - 5427,8,1356,5066,5437,567,291,457,5405,5424, - 5427,784,5434,141,5083,5080,4774,1405,3899,3983, - 2957,5436,4005,724,5691,5689,5698,5697,5693,5694, - 5692,5695,5696,5699,5690,1,5434,4211,1,5427, - 528,4915,289,163,1,2656,5427,5427,3961,3930, - 4049,4027,191,5446,5427,3830,1043,1184,5448,1166, - 4181,1174,5449,5447,1009,5443,5444,5445,5882,191, - 5220,5427,5424,5427,1356,2018,3732,5427,39,39, - 1,5073,5069,4774,5077,3899,3983,2957,5427,4005, - 5241,5268,5274,5247,5250,5262,5259,5265,5256,5253, - 5244,5271,4503,5427,5427,5427,4237,4310,163,4887, - 5427,420,792,4320,5427,3961,3930,4049,4027,5427, - 5446,395,3830,1043,1184,5448,1166,4181,1174,5449, - 5447,1009,5443,5444,5445,5427,375,5427,1489,4202, - 3711,1356,100,4901,99,39,39,39,5083,5080, - 4774,1405,3899,3983,2957,5402,4005,724,5691,5689, - 5698,5697,5693,5694,5692,5695,5696,5699,5690,1532, - 5427,5427,103,4437,1928,4604,1532,2056,532,426, - 2106,1,3961,3930,4049,4027,5427,5446,5427,3830, - 1043,1184,5448,1166,4181,1174,5449,5447,1009,5443, - 5444,5445,5427,35,449,4653,1270,2144,1356,5427, - 278,4203,2452,5383,5405,39,5083,5080,4774,1405, - 3899,3983,2957,5402,4005,724,5691,5689,5698,5697, - 5693,5694,5692,5695,5696,5699,5690,5427,308,2451, - 4862,3712,5427,75,5427,4814,3512,5427,5427,3708, - 3961,3930,4049,4027,2877,5446,73,3830,1043,1184, - 5448,1166,4181,1174,5449,5447,1009,5443,5444,5445, - 5427,4225,3820,5427,2483,5427,1356,521,4886,5427, - 5489,5490,5405,39,5083,5080,4774,1405,3899,3983, - 2957,5431,4005,724,5691,5689,5698,5697,5693,5694, - 5692,5695,5696,5699,5690,48,2665,5427,2755,5442, - 48,5377,5427,2,5441,127,3164,3820,3961,3930, - 4049,4027,575,5446,5427,3830,1043,1184,5448,1166, - 4181,1174,5449,5447,1009,5443,5444,5445,1,1975, - 5427,2314,39,5896,5890,3218,5465,5894,581,5427, - 1,819,4896,567,5427,5427,5427,3699,4906,4455, - 5442,5427,669,5427,3132,5441,4920,5427,37,5427, - 2772,5427,5963,5888,5889,5919,5920,5427,5427,3255, - 5897,5427,5427,5315,5427,5427,5427,5427,5427,5427, - 2176,5427,5427,5899,5427,2877,5427,5427,5427,5427, - 5430,2007,5427,1534,1542,5427,5900,5898,5921,2673, - 2600,5427,5427,5427,5427,5427,5427,5427,5427,5427, - 5427,5427,5427,5427,5427,5910,5909,5922,5427,5427, - 5891,5892,5915,5916,5913,5914,5893,5895,5917,5918, - 5427,5427,5427,5923,5427,5903,5904,5905,5901,5902, - 5911,5912,5907,5906,5908,39,5083,5080,4774,1405, - 3899,3983,2957,5427,4005,724,5691,5689,5698,5697, - 5693,5694,5692,5695,5696,5699,5690,5427,5427,5427, - 5427,5427,5427,5427,5427,5427,5427,5427,5427,5427, - 3961,3930,4049,4027,5427,5446,5427,3830,1043,1184, - 5448,1166,4181,1174,5449,5447,1009,5443,5444,5445, - 5427,5427,5427,5427,5427,5427,1356,39,5083,5080, - 4774,1405,3899,3983,2957,5427,4005,724,5691,5689, - 5698,5697,5693,5694,5692,5695,5696,5699,5690,5427, - 5427,5427,5427,5427,5427,5427,5427,5427,5427,5427, - 5427,5427,3961,3930,4049,4027,5427,5446,5427,3830, - 1043,1184,5448,1166,4181,1174,5449,5447,1009,5443, - 5444,5445,39,5083,5080,4774,1405,3899,3983,2957, - 2959,4005,724,5691,5689,5698,5697,5693,5694,5692, - 5695,5696,5699,5690,5427,5427,5427,5427,5427,5427, - 5427,5427,5427,5427,5427,5427,5427,3961,3930,4049, - 4027,5427,5446,5427,3830,1043,1184,5448,1166,4181, - 1174,5449,5447,1009,5443,5444,5445,5427,5427,5427, - 5427,5427,5427,1356,39,5083,5080,4808,1405,3899, - 3983,2957,5427,4005,724,5691,5689,5698,5697,5693, - 5694,5692,5695,5696,5699,5690,5427,5427,5427,5427, - 5427,5427,5427,5427,5427,5427,5427,5427,5427,3961, - 3930,4049,4027,5427,5446,5427,3830,1043,1184,5448, - 1166,4181,1174,5449,5447,1009,5443,5444,5445,39, - 5083,5080,4774,1405,3899,3983,2957,5427,4005,724, - 5691,5689,5698,5697,5693,5694,5692,5695,5696,5699, - 5690,5427,5427,5427,5427,5427,5427,5427,5427,5427, - 5427,5427,5427,5427,3961,3930,4049,4027,5427,5446, - 5427,3830,1043,1184,5448,1166,4181,1174,5449,5447, - 1009,5443,5444,5445,39,5083,5080,4774,1405,3899, - 3983,2957,5427,4005,724,5691,5689,5698,5697,5693, - 5694,5692,5695,5696,5699,5690,5427,5427,5427,5427, - 5427,5427,5427,5427,5427,5427,5427,5427,5427,3961, - 3930,4049,4027,5427,5446,5427,3830,1043,1184,5448, - 1166,4181,1174,5449,5447,1009,5443,5444,5445,5427, - 5083,5080,5427,5465,5427,5427,5427,5427,5427,795, - 5691,5689,5698,5697,5693,5694,5692,5695,5696,5699, - 5690,5687,5764,5765,5427,5681,5688,5684,5660,5686, - 5685,5682,5683,5661,5427,5427,5427,5427,5825,5427, - 5427,5427,5427,5427,5427,5427,5427,5427,241,5198, - 5194,5427,5202,5427,5427,2469,5826,5827,795,5185, - 5191,5164,5167,5179,5176,5182,5173,5170,5161,5188, - 5140,5134,5131,5427,5158,5137,5149,5128,5143,5146, - 5155,5152,5125,5427,5427,5427,5427,5825,29,387, - 387,5309,387,387,5309,387,5309,5309,5427,5427, - 5427,5427,5427,5427,2469,5826,5827,5427,5427,5427, - 387,387,387,5309,387,387,387,387,387,387, - 387,387,387,5427,5427,5427,5427,5427,5427,5427, - 5427,5427,5427,5427,5427,5427,5427,5427,5427,5427, - 5427,5427,5427,5089,5427,5427,5427,5427,5427,5427, - 5427,5309,5427,5427,5427,5427,5427,5427,5427,5427, - 5427,5309,32,388,388,5306,388,388,5306,388, - 5306,5306,5427,5427,5427,5427,5427,5427,5427,5427, - 5427,5427,5427,5427,388,388,388,5306,388,388, - 388,388,388,388,388,388,388,5427,5427,5427, - 223,5427,5427,5427,5427,5427,5427,5427,5427,5427, - 5427,5691,5689,5698,5697,5693,5694,5692,5695,5696, - 5699,5690,5687,5764,5765,5306,5681,5688,5684,5660, - 5686,5685,5682,5683,5661,5306 + 1,1,8777,1,1,1,1,1,1,5510, + 2818,5546,1,1,5510,5448,1318,1318,1,301, + 161,320,341,5395,341,5521,5516,341,5869,5810, + 1,1,1,3399,5721,5951,1184,5510,2542,37, + 5306,5306,37,5306,5306,331,118,5306,237,2719, + 2646,5386,1,5156,5152,4796,5160,3935,4019,3347, + 6010,4041,5324,5351,5357,5330,5333,5345,5342,5348, + 5339,5336,5327,5354,341,37,5306,5306,3552,120, + 5546,3661,2773,2878,1318,161,458,3997,3966,4085, + 4063,5515,5529,5510,3866,1174,1219,5531,1176,4217, + 1182,5532,5530,992,5526,5527,5528,45,5428,5428, + 5510,5438,5434,1356,3661,2773,2702,39,39,448, + 516,39,5166,5163,4796,1405,3935,4019,3347,5504, + 4041,1450,5774,5772,5781,5780,5776,5777,5775,5778, + 5779,5782,5773,119,1,1,5510,1,5425,5300, + 1027,5546,5510,5472,5146,528,3997,3966,4085,4063, + 5520,5529,5510,3866,1174,1219,5531,1176,4217,1182, + 5532,5530,992,5526,5527,5528,1,5519,3661,2773, + 5510,8,1356,5149,5520,559,291,457,5488,5507, + 5510,784,5517,141,5166,5163,4796,1405,3935,4019, + 3347,5519,4041,1450,5774,5772,5781,5780,5776,5777, + 5775,5778,5779,5782,5773,1,5517,4361,1,5510, + 528,4932,289,163,1,1491,5510,5510,3997,3966, + 4085,4063,191,5529,5510,3866,1174,1219,5531,1176, + 4217,1182,5532,5530,992,5526,5527,5528,5965,191, + 5303,5510,5507,5510,1356,2018,4346,5510,39,39, + 1,5156,5152,4796,5160,3935,4019,3347,5510,4041, + 5324,5351,5357,5330,5333,5345,5342,5348,5339,5336, + 5327,5354,4916,5510,5510,5510,4378,4943,163,4917, + 5510,420,1043,4955,5510,3997,3966,4085,4063,5510, + 5529,395,3866,1174,1219,5531,1176,4217,1182,5532, + 5530,992,5526,5527,5528,5510,375,5510,932,4238, + 3745,1356,100,4929,99,39,39,39,5166,5163, + 4796,1405,3935,4019,3347,5485,4041,1450,5774,5772, + 5781,5780,5776,5777,5775,5778,5779,5782,5773,1309, + 5510,5510,103,3747,1972,3861,1309,2056,532,426, + 2106,1,3997,3966,4085,4063,5510,5529,5510,3866, + 1174,1219,5531,1176,4217,1182,5532,5530,992,5526, + 5527,5528,5510,35,449,4960,1322,2144,1356,5510, + 278,3755,2599,5466,5488,39,5166,5163,4796,1405, + 3935,4019,3347,5485,4041,1450,5774,5772,5781,5780, + 5776,5777,5775,5778,5779,5782,5773,5510,308,2576, + 3265,3192,5510,75,5510,4251,3467,5510,5510,3743, + 3997,3966,4085,4063,2945,5529,73,3866,1174,1219, + 5531,1176,4217,1182,5532,5530,992,5526,5527,5528, + 5510,4221,3623,5510,2683,5510,1356,521,4880,5510, + 5572,5573,5488,39,5166,5163,4796,1405,3935,4019, + 3347,5514,4041,1450,5774,5772,5781,5780,5776,5777, + 5775,5778,5779,5782,5773,48,3025,5510,2801,5525, + 48,5460,5510,2,5524,127,3210,3623,3997,3966, + 4085,4063,575,5529,5510,3866,1174,1219,5531,1176, + 4217,1182,5532,5530,992,5526,5527,5528,1,1975, + 5510,2338,39,5979,5973,3255,5548,5977,581,5510, + 1,819,4885,559,5510,5510,5510,3735,4892,4946, + 5525,5510,669,5510,3554,5524,4976,5510,37,5510, + 2818,5510,6046,5971,5972,6002,6003,5510,5510,3292, + 5980,5510,5510,5398,5510,5510,5510,5510,5510,5510, + 2540,5510,5510,5982,5510,2945,5510,5510,5510,5510, + 5513,2428,5510,1610,1620,5510,5983,5981,6004,2719, + 2646,5510,5510,5510,5510,5510,5510,5510,5510,5510, + 5510,5510,5510,5510,5510,5993,5992,6005,5510,5510, + 5974,5975,5998,5999,5996,5997,5976,5978,6000,6001, + 5510,5510,5510,6006,5510,5986,5987,5988,5984,5985, + 5994,5995,5990,5989,5991,39,5166,5163,4796,1405, + 3935,4019,3347,5510,4041,1450,5774,5772,5781,5780, + 5776,5777,5775,5778,5779,5782,5773,5510,5510,5510, + 5510,5510,5510,5510,5510,5510,5510,5510,5510,5510, + 3997,3966,4085,4063,5510,5529,5510,3866,1174,1219, + 5531,1176,4217,1182,5532,5530,992,5526,5527,5528, + 5510,5510,5510,5510,5510,5510,1356,39,5166,5163, + 4796,1405,3935,4019,3347,5510,4041,1450,5774,5772, + 5781,5780,5776,5777,5775,5778,5779,5782,5773,5510, + 5510,5510,5510,5510,5510,5510,5510,5510,5510,5510, + 5510,5510,3997,3966,4085,4063,5510,5529,5510,3866, + 1174,1219,5531,1176,4217,1182,5532,5530,992,5526, + 5527,5528,39,5166,5163,4796,1405,3935,4019,3347, + 2526,4041,1450,5774,5772,5781,5780,5776,5777,5775, + 5778,5779,5782,5773,5510,5510,5510,5510,5510,5510, + 5510,5510,5510,5510,5510,5510,5510,3997,3966,4085, + 4063,5510,5529,5510,3866,1174,1219,5531,1176,4217, + 1182,5532,5530,992,5526,5527,5528,5510,5510,5510, + 5510,5510,5510,1356,39,5166,5163,4838,1405,3935, + 4019,3347,5510,4041,1450,5774,5772,5781,5780,5776, + 5777,5775,5778,5779,5782,5773,5510,5510,5510,5510, + 5510,5510,5510,5510,5510,5510,5510,5510,5510,3997, + 3966,4085,4063,5510,5529,5510,3866,1174,1219,5531, + 1176,4217,1182,5532,5530,992,5526,5527,5528,39, + 5166,5163,4796,1405,3935,4019,3347,5510,4041,1450, + 5774,5772,5781,5780,5776,5777,5775,5778,5779,5782, + 5773,5510,5510,5510,5510,5510,5510,5510,5510,5510, + 5510,5510,5510,5510,3997,3966,4085,4063,5510,5529, + 5510,3866,1174,1219,5531,1176,4217,1182,5532,5530, + 992,5526,5527,5528,39,5166,5163,4796,1405,3935, + 4019,3347,5510,4041,1450,5774,5772,5781,5780,5776, + 5777,5775,5778,5779,5782,5773,5510,5510,5510,5510, + 5510,5510,5510,5510,5510,5510,5510,5510,5510,3997, + 3966,4085,4063,5510,5529,5510,3866,1174,1219,5531, + 1176,4217,1182,5532,5530,992,5526,5527,5528,5510, + 5166,5163,5510,5548,5510,5510,5510,5510,5510,865, + 5774,5772,5781,5780,5776,5777,5775,5778,5779,5782, + 5773,5770,5847,5848,5510,5764,5771,5767,5743,5769, + 5768,5765,5766,5744,5510,5510,5510,5510,5908,5510, + 5510,5510,5510,5510,5510,5510,5510,5510,241,5281, + 5277,5510,5285,5510,5510,2687,5909,5910,865,5268, + 5274,5247,5250,5262,5259,5265,5256,5253,5244,5271, + 5223,5217,5214,5510,5241,5220,5232,5211,5226,5229, + 5238,5235,5208,5510,5510,5510,5510,5908,29,387, + 387,5392,387,387,5392,387,5392,5392,5510,5510, + 5510,5510,5510,5510,2687,5909,5910,5510,5510,5510, + 387,387,387,5392,387,387,387,387,387,387, + 387,387,387,5510,5510,5510,5510,5510,5510,5510, + 5510,5510,5510,5510,5510,5510,5510,5510,5510,5510, + 5510,5510,5510,5172,5510,5510,5510,5510,5510,5510, + 5510,5392,5510,5510,5510,5510,5510,5510,5510,5510, + 5510,5392,32,388,388,5389,388,388,5389,388, + 5389,5389,5510,5510,5510,5510,5510,5510,5510,5510, + 5510,5510,5510,5510,388,388,388,5389,388,388, + 388,388,388,388,388,388,388,5510,5510,5510, + 223,5510,5510,5510,5510,5510,5510,5510,5510,5510, + 5510,5774,5772,5781,5780,5776,5777,5775,5778,5779, + 5782,5773,5770,5847,5848,5389,5764,5771,5767,5743, + 5769,5768,5765,5766,5744,5389 }; }; public final static char termAction[] = TermAction.termAction; @@ -1812,60 +1828,61 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface Asb { public final static char asb[] = {0, - 752,481,373,87,87,391,478,478,391,720, - 720,631,553,720,621,608,391,45,562,562, - 170,94,95,157,157,84,765,765,680,765, - 84,142,569,1081,1009,1020,546,1020,149,1020, - 610,1020,1004,1020,1083,84,1081,571,87,465, - 373,373,373,373,1083,465,29,144,46,46, - 46,46,46,46,46,46,46,768,774,779, - 776,783,781,788,786,790,789,791,213,792, - 45,45,210,806,575,575,373,765,310,310, - 762,210,675,765,765,310,84,1085,998,675, - 675,573,553,84,261,375,151,419,152,1083, - 84,84,420,621,573,478,29,720,720,720, - 720,84,634,675,675,29,916,719,998,29, - 768,895,895,634,45,46,46,46,46,46, - 46,46,46,46,46,46,46,46,46,46, - 46,46,46,46,45,45,45,45,45,45, - 45,45,45,45,45,45,46,575,575,310, - 310,1081,210,210,310,997,82,675,100,564, - 84,262,758,375,84,545,616,369,420,546, - 467,84,420,84,81,675,675,632,632,632, - 632,420,675,45,46,424,431,1027,1027,1083, - 144,210,719,45,675,81,83,81,675,210, - 776,776,774,774,774,781,781,781,781,779, - 779,786,783,783,789,788,790,912,791,675, - 675,632,631,632,762,632,1085,84,472,815, - 997,262,758,485,84,375,912,152,373,422, - 362,902,375,545,370,545,545,420,467,467, - 84,84,84,465,465,465,465,84,84,45, - 84,998,46,720,772,264,675,83,998,45, - 472,534,29,997,472,758,757,998,856,546, - 632,373,81,544,904,78,465,545,545,545, - 545,84,467,485,483,484,45,45,45,45, - 465,465,420,82,675,772,1081,1085,84,82, - 472,534,474,758,82,856,856,489,391,82, - 545,545,78,811,46,912,305,301,1081,545, - 545,848,485,46,84,675,675,675,675,634, - 634,84,772,773,772,45,264,367,768,1085, - 474,536,474,812,485,956,958,253,465,152, - 526,856,856,391,82,545,546,1083,904,46, - 46,78,549,747,849,84,675,675,1062,772, - 634,46,210,367,474,536,465,488,253,956, - 166,1083,485,631,812,546,9,549,84,465, - 848,84,1083,1083,84,773,675,210,576,489, - 856,812,304,811,675,1083,84,489,914,10, - 1083,84,634,84,84,84,565,856,45,105, - 78,812,84,84,914,9,912,46,912,812, - 8,465,465,465,10,465,84,220,812,812, - 84,546,675,84,84,720,485,675,485,546, - 84,812,1,465,1,10,912,10,29,29, - 27,678,29,812,812,308,914,485,105,812, - 815,10,675,78,675,27,253,465,675,914, - 105,675,675,1075,10,308,10,812,253,45, - 10,7,484,546,546,1077,45,8,634,812, - 675,810,104,10,675,812,810,810,10 + 616,486,427,1,1,390,483,483,390,812, + 812,769,600,812,759,660,390,332,609,609, + 189,8,9,117,117,371,854,854,772,854, + 371,102,621,1069,997,1008,551,1008,109,1008, + 699,1008,992,1008,1071,371,1069,623,1,475, + 427,427,427,427,1071,475,316,104,333,333, + 333,333,333,333,333,333,333,857,863,868, + 865,872,870,877,875,879,878,880,232,881, + 332,332,229,895,627,627,427,854,130,130, + 851,229,746,854,854,130,371,1073,986,746, + 746,625,600,371,280,374,111,418,112,1071, + 371,371,419,759,625,483,316,812,812,812, + 812,371,705,746,746,316,904,811,986,316, + 857,593,593,705,332,333,333,333,333,333, + 333,333,333,333,333,333,333,333,333,333, + 333,333,333,333,332,332,332,332,332,332, + 332,332,332,332,332,332,333,627,627,130, + 130,1069,229,229,130,985,369,746,14,611, + 371,281,849,847,374,371,550,283,423,419, + 551,429,371,419,371,368,746,746,770,770, + 770,770,419,746,332,333,434,441,1015,1015, + 1071,104,229,811,332,746,368,370,368,746, + 229,865,865,863,863,863,870,870,870,870, + 868,868,875,872,872,878,877,879,1085,880, + 746,746,770,769,770,851,770,1073,371,477, + 666,985,281,847,490,371,374,1085,112,427, + 421,182,1075,374,550,424,550,550,419,429, + 429,371,371,371,475,475,475,475,371,371, + 332,371,986,333,812,861,18,746,370,986, + 332,477,539,316,985,477,847,847,986,554, + 551,770,427,368,549,1077,365,475,550,550, + 550,550,371,429,490,488,489,332,332,332, + 332,475,475,419,369,746,861,1069,1073,371, + 369,477,539,479,846,847,369,554,554,494, + 390,369,550,550,365,900,333,1085,59,55, + 1069,550,550,749,490,333,371,746,746,746, + 746,705,705,371,861,862,861,332,18,187, + 857,1073,479,541,479,847,901,490,944,946, + 272,475,112,531,554,554,390,369,550,551, + 1071,1077,333,333,365,662,839,750,371,746, + 746,1050,861,705,333,229,187,479,541,475, + 493,272,944,126,1071,490,769,901,551,296, + 662,371,475,749,371,1071,1071,371,862,746, + 229,628,494,554,901,58,900,746,1071,371, + 494,844,297,1071,371,705,371,371,371,612, + 554,332,65,365,901,371,371,844,296,1085, + 333,1085,901,295,475,475,475,297,475,371, + 239,901,901,371,551,746,371,371,812,490, + 746,490,551,371,901,288,475,288,297,1085, + 297,316,316,314,757,316,901,901,62,844, + 490,65,901,666,297,746,365,746,314,272, + 475,746,844,65,746,746,1063,297,62,297, + 901,272,332,297,294,489,551,551,1065,332, + 295,705,901,746,899,64,297,746,901,899, + 899,297 }; }; public final static char asb[] = Asb.asb; @@ -1873,115 +1890,115 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface Asr { public final static byte asr[] = {0, - 86,102,103,104,41,72,118,121,71,60, - 74,62,59,64,76,78,84,82,75,80, - 81,83,85,67,77,79,25,8,26,39, - 23,56,27,28,29,30,31,32,33,57, - 34,58,22,24,61,65,66,10,44,48, - 46,43,51,12,21,11,17,15,16,18, - 19,14,13,20,52,53,54,40,50,45, - 49,37,38,35,36,42,47,9,6,3, - 4,7,5,1,2,0,68,69,70,120, - 1,2,0,3,68,69,70,120,63,8, - 73,90,0,71,61,37,38,9,6,35, + 68,69,70,120,1,2,0,3,68,69, + 70,120,63,8,73,90,0,91,89,35, + 36,92,93,87,88,68,94,95,96,97, + 98,99,100,101,106,90,107,108,109,110, + 111,112,113,114,115,116,117,73,71,1, + 2,4,9,6,72,63,55,3,8,70, + 25,69,0,71,61,37,38,9,6,35, 36,42,47,3,4,52,53,54,40,50, 45,49,12,21,11,17,15,16,18,19, 14,13,20,10,44,48,46,43,51,67, 8,7,5,1,2,66,65,0,41,4, 72,1,2,67,8,0,74,3,68,72, - 90,70,73,25,63,8,67,69,0,65, - 66,3,10,44,48,46,43,51,12,21, - 11,17,15,16,18,19,14,13,20,52, - 53,54,40,50,45,49,5,7,4,37, - 38,9,6,35,36,42,47,1,2,117, - 8,0,68,72,90,70,117,73,71,11, - 12,43,65,13,44,45,14,15,16,66, - 46,17,18,47,48,49,61,50,51,10, - 19,20,21,52,53,54,40,37,38,35, - 36,42,8,25,5,7,1,2,4,3, - 9,6,0,91,89,35,36,92,93,87, - 88,68,94,95,96,97,98,99,100,101, - 106,90,107,108,109,110,111,112,113,114, - 115,116,117,73,71,1,2,4,9,6, - 72,63,55,3,8,70,25,69,0,26, + 90,70,73,25,63,8,67,69,0,26, 11,12,39,23,43,65,13,44,56,27, 28,45,14,29,30,15,16,31,66,32, 46,17,18,47,33,48,57,49,61,50, 34,51,58,19,22,20,24,21,52,53, 54,40,3,37,38,9,6,35,36,42, - 68,7,1,2,4,10,5,0,4,8, - 72,67,55,0,86,59,7,102,103,104, - 62,8,3,9,6,5,72,71,25,60, - 26,11,12,39,23,13,56,27,28,14, - 29,30,15,16,31,32,17,18,33,57, - 34,10,58,19,22,20,24,21,4,1, - 2,41,0,8,72,117,73,25,70,0, + 68,7,1,2,4,10,5,0,65,66, + 3,10,44,48,46,43,51,12,21,11, + 17,15,16,18,19,14,13,20,52,53, + 54,40,50,45,49,5,7,4,37,38, + 9,6,35,36,42,47,1,2,117,8, + 0,68,72,90,70,117,73,71,11,12, + 43,65,13,44,45,14,15,16,66,46, + 17,18,47,48,49,61,50,51,10,19, + 20,21,52,53,54,40,37,38,35,36, + 42,8,25,5,7,1,2,4,3,9, + 6,0,4,8,72,67,0,86,102,103, + 104,41,72,118,121,71,60,74,62,59, + 64,76,78,84,82,75,80,81,83,85, + 67,77,79,25,8,26,39,23,56,27, + 28,29,30,31,32,33,57,34,58,22, + 24,61,65,66,10,44,48,46,43,51, + 12,21,11,17,15,16,18,19,14,13, + 20,52,53,54,40,50,45,49,37,38, + 35,36,42,47,9,6,3,4,7,5, + 1,2,0,86,59,7,102,103,104,62, + 8,3,9,6,5,72,71,25,60,26, + 11,12,39,23,13,56,27,28,14,29, + 30,15,16,31,32,17,18,33,57,34, + 10,58,19,22,20,24,21,4,1,2, + 41,0,4,8,72,67,55,0,1,2, + 8,71,0,8,72,117,73,25,70,0, 26,11,12,23,13,27,28,14,29,30, 15,16,31,7,32,17,18,33,34,19, 22,20,24,21,1,2,8,63,9,6, - 5,4,73,25,3,0,1,2,8,71, - 0,23,24,61,8,90,73,68,70,69, - 120,0,69,70,71,8,0,67,39,23, - 13,56,27,14,29,30,15,16,31,32, - 17,18,33,57,34,58,19,22,20,24, - 21,12,11,26,8,3,9,6,25,62, - 64,86,28,60,41,7,1,2,5,4, - 10,59,0,23,24,61,3,68,90,69, - 70,73,25,74,72,67,8,0,8,67, - 70,0,9,6,3,7,5,63,4,1, - 2,68,69,90,73,8,70,0,5,7, - 3,63,6,9,90,26,11,12,23,13, - 56,27,28,14,29,30,15,16,31,32, - 17,18,33,57,34,10,58,19,22,20, - 24,21,1,2,4,73,8,39,0,4, - 8,67,1,2,0,4,8,72,67,0, - 8,73,120,1,2,9,6,4,3,63, - 70,68,0,11,12,43,65,13,44,45, - 14,15,16,66,7,46,17,18,47,48, - 49,61,50,51,10,19,20,21,52,53, - 54,40,1,2,3,37,38,9,6,35, - 36,5,42,4,73,8,0,75,0,66, - 65,35,36,6,92,93,98,9,99,5, - 42,69,55,68,110,111,107,108,109,115, - 114,116,88,87,112,113,96,97,94,95, - 100,101,37,38,70,89,105,63,3,26, - 11,12,39,23,13,56,27,28,14,29, + 5,4,73,25,3,0,23,24,61,8, + 90,73,68,70,69,120,0,69,70,71, + 8,0,67,39,23,13,56,27,14,29, 30,15,16,31,32,17,18,33,57,34, - 10,58,19,20,24,21,1,2,4,22, - 0,39,10,41,60,0,61,23,7,24, - 5,1,2,4,74,67,120,119,105,37, - 38,63,3,91,89,6,92,93,35,36, - 88,87,55,94,95,96,97,9,98,99, - 100,68,90,73,69,107,108,109,110,111, - 112,113,114,115,116,72,117,101,106,71, - 70,25,8,0,26,11,12,39,23,13, - 56,27,28,14,29,30,15,16,31,32, - 17,18,33,57,34,10,58,19,22,20, - 24,21,1,2,4,90,0,22,1,2, - 4,102,103,104,0,64,26,11,12,39, - 23,13,56,27,86,28,14,29,30,15, - 16,31,59,32,17,18,33,57,34,10, - 58,19,62,22,20,24,21,8,3,9, - 6,71,25,60,7,4,41,5,1,2, - 0,25,8,3,7,5,9,6,4,1, - 2,72,0,118,0,65,66,37,38,9, - 6,35,36,5,42,47,3,4,7,52, - 53,54,50,45,49,12,21,11,17,15, - 16,18,19,14,13,20,10,44,48,46, - 43,51,63,1,2,40,0,39,23,13, - 56,27,14,29,30,15,16,31,32,17, - 18,33,57,34,10,58,19,22,20,24, - 21,12,11,26,8,3,9,25,62,59, - 64,86,28,60,55,4,6,7,5,41, - 1,2,0,10,56,39,57,58,12,21, - 11,17,15,16,18,19,14,13,20,74, - 72,90,117,71,67,120,119,91,105,89, - 37,38,35,36,92,93,87,88,55,68, - 94,95,96,97,98,99,100,101,106,69, - 107,108,109,110,111,112,113,114,115,116, - 70,26,23,27,28,29,30,31,32,33, - 34,22,24,25,8,73,3,63,7,5, - 9,6,1,2,4,0 + 58,19,22,20,24,21,12,11,26,8, + 3,9,6,25,62,64,86,28,60,41, + 7,1,2,5,4,10,59,0,23,24, + 61,3,68,90,69,70,73,25,74,72, + 67,8,0,64,26,11,12,39,23,13, + 56,27,86,28,14,29,30,15,16,31, + 59,32,17,18,33,57,34,10,58,19, + 62,22,20,24,21,8,3,9,6,71, + 25,60,7,4,41,5,1,2,0,9, + 6,3,7,5,63,4,1,2,68,69, + 90,73,8,70,0,39,10,41,60,0, + 5,7,3,63,6,9,90,26,11,12, + 23,13,56,27,28,14,29,30,15,16, + 31,32,17,18,33,57,34,10,58,19, + 22,20,24,21,1,2,4,73,8,39, + 0,8,67,70,0,26,11,12,39,23, + 13,56,27,28,14,29,30,15,16,31, + 32,17,18,33,57,34,10,58,19,22, + 20,24,21,1,2,4,90,0,4,8, + 67,1,2,0,11,12,43,65,13,44, + 45,14,15,16,66,7,46,17,18,47, + 48,49,61,50,51,10,19,20,21,52, + 53,54,40,1,2,3,37,38,9,6, + 35,36,5,42,4,73,8,0,22,1, + 2,4,102,103,104,0,75,0,8,73, + 120,1,2,9,6,4,3,63,70,68, + 0,66,65,35,36,6,92,93,98,9, + 99,5,42,69,55,68,110,111,107,108, + 109,115,114,116,88,87,112,113,96,97, + 94,95,100,101,37,38,70,89,105,63, + 3,26,11,12,39,23,13,56,27,28, + 14,29,30,15,16,31,32,17,18,33, + 57,34,10,58,19,20,24,21,1,2, + 4,22,0,118,0,61,23,24,7,5, + 1,2,4,74,67,120,119,105,37,38, + 63,3,91,89,6,92,93,35,36,88, + 87,55,94,95,96,97,9,98,99,100, + 68,90,73,69,107,108,109,110,111,112, + 113,114,115,116,72,117,101,106,71,70, + 25,8,0,65,66,37,38,9,6,35, + 36,5,42,47,3,4,7,52,53,54, + 50,45,49,12,21,11,17,15,16,18, + 19,14,13,20,10,44,48,46,43,51, + 63,1,2,40,0,39,23,13,56,27, + 14,29,30,15,16,31,32,17,18,33, + 57,34,10,58,19,22,20,24,21,12, + 11,26,8,3,9,25,62,59,64,86, + 28,60,55,4,6,7,5,41,1,2, + 0,10,56,39,57,58,12,21,11,17, + 15,16,18,19,14,13,20,74,72,90, + 117,71,67,120,119,91,105,89,37,38, + 35,36,92,93,87,88,55,68,94,95, + 96,97,98,99,100,101,106,69,107,108, + 109,110,111,112,113,114,115,116,70,26, + 23,27,28,29,30,31,32,33,34,22, + 24,25,8,73,3,63,7,5,9,6, + 1,2,4,0,25,8,3,7,5,9, + 6,4,1,2,72,0 }; }; public final static byte asr[] = Asr.asr; @@ -1989,60 +2006,61 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface Nasb { public final static char nasb[] = {0, - 203,12,12,15,15,215,12,12,181,41, - 41,12,111,5,187,12,181,67,12,12, - 88,23,23,23,23,240,12,12,174,12, - 135,170,110,128,254,255,159,255,81,255, - 120,255,248,12,10,135,128,186,15,12, - 12,12,12,12,118,12,271,135,67,67, - 236,67,67,67,67,67,67,12,12,12, - 12,12,12,12,12,12,12,12,67,12, - 67,67,93,12,215,215,12,12,215,215, - 27,93,277,12,12,215,11,12,32,277, - 277,178,164,135,12,215,199,118,78,118, - 135,11,12,104,178,12,271,41,41,41, - 41,135,161,277,277,1,67,56,32,271, - 12,17,17,161,141,67,67,67,67,67, - 67,67,67,67,67,67,67,67,67,67, - 67,67,67,67,67,67,67,67,67,67, - 67,67,67,67,67,141,67,181,181,36, - 36,128,93,93,36,44,170,277,12,12, - 135,130,215,257,200,60,60,12,264,159, - 215,264,101,200,169,277,277,12,12,12, - 12,31,277,67,67,12,12,12,12,10, - 135,93,41,95,277,169,135,169,277,93, + 114,12,12,13,13,269,12,12,111,39, + 39,12,123,5,186,12,111,74,12,12, + 93,21,21,21,21,239,12,12,209,12, + 132,177,122,140,253,254,161,254,90,254, + 144,254,247,12,10,132,140,185,13,12, + 12,12,12,12,130,12,275,132,74,74, + 235,74,74,74,74,74,74,12,12,12, + 12,12,12,12,12,12,12,12,74,12, + 74,74,98,12,269,269,12,12,269,269, + 25,98,207,12,12,269,11,12,30,207, + 207,108,171,132,12,269,181,130,85,130, + 132,11,12,116,108,12,275,39,39,39, + 39,132,153,207,207,1,74,65,30,275, + 12,15,15,153,150,74,74,74,74,74, + 74,74,74,74,74,74,74,74,74,74, + 74,74,74,74,74,74,74,74,74,74, + 74,74,74,74,74,150,74,111,111,34, + 34,140,98,98,34,51,177,207,12,12, + 132,142,142,142,256,182,80,80,12,215, + 161,269,215,59,182,176,207,207,12,12, + 12,12,29,207,74,74,12,12,12,12, + 10,132,98,39,100,207,176,132,176,207, + 98,12,12,12,12,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,277, - 277,12,12,12,106,12,12,11,215,181, - 219,12,184,152,135,146,12,196,12,12, - 34,209,257,60,60,215,215,101,215,241, - 11,200,135,12,12,12,12,200,11,67, - 135,32,67,41,215,98,277,132,32,67, - 215,215,36,44,184,215,184,32,215,159, - 12,12,118,215,123,113,12,215,215,62, - 62,200,241,152,12,12,141,141,141,141, - 12,12,30,200,277,48,106,12,240,200, - 184,184,215,184,170,222,215,243,215,264, - 215,84,166,146,67,12,86,12,128,62, - 62,205,152,67,241,277,277,277,277,161, - 161,200,215,191,12,141,106,133,12,12, - 215,215,54,146,152,12,243,210,12,78, - 34,243,222,181,170,84,193,50,113,67, - 67,166,12,118,73,264,277,277,12,48, - 161,67,93,133,54,54,12,158,123,12, - 12,118,152,12,146,193,151,12,264,12, - 232,264,118,118,11,191,277,93,275,243, - 215,146,25,12,277,118,264,243,215,138, - 50,11,161,11,264,264,277,222,95,65, - 113,146,264,197,217,154,12,67,12,146, - 12,12,12,12,155,12,241,144,146,146, - 241,75,277,11,11,41,152,277,215,159, - 197,146,13,12,12,155,12,155,279,279, - 227,12,279,146,146,12,215,152,215,146, - 41,155,277,113,277,267,215,12,277,217, - 65,277,277,215,155,12,155,146,113,141, - 155,13,152,75,75,111,67,12,148,146, - 277,58,64,155,277,146,58,12,155 + 207,207,12,12,12,118,12,12,11,269, + 111,82,12,269,43,132,169,12,202,12, + 12,32,263,256,80,80,269,269,59,269, + 240,11,182,132,12,12,12,12,182,11, + 74,132,30,74,39,269,62,207,199,30, + 74,269,269,34,51,190,142,190,30,269, + 161,12,12,130,269,135,125,12,269,269, + 165,165,182,240,43,12,12,150,150,150, + 150,12,12,28,182,207,55,118,12,239, + 182,190,190,269,190,269,177,221,269,242, + 269,215,269,57,173,169,74,12,88,12, + 140,165,165,192,43,74,240,207,207,207, + 207,153,153,182,269,163,12,150,118,200, + 12,12,269,269,45,190,169,43,12,242, + 264,12,85,32,242,221,111,177,57,196, + 47,125,74,74,173,12,130,67,215,207, + 207,12,55,153,74,98,200,45,45,12, + 160,135,12,12,130,43,12,169,196,42, + 12,215,12,231,215,130,130,11,163,207, + 98,205,242,269,169,23,12,207,130,215, + 242,269,147,47,11,153,11,215,215,207, + 221,100,72,125,169,215,203,213,156,12, + 74,12,169,12,12,12,12,157,12,240, + 167,169,169,240,105,207,11,11,39,43, + 207,269,161,203,169,103,12,12,157,12, + 157,279,279,226,12,279,169,169,12,269, + 43,269,169,39,157,207,125,207,271,269, + 12,207,213,72,207,207,269,157,12,157, + 169,125,150,157,103,43,105,105,123,74, + 12,218,169,207,69,71,157,207,169,69, + 12,157 }; }; public final static char nasb[] = Nasb.nasb; @@ -2051,33 +2069,33 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface Nasr { public final static char nasr[] = {0, 3,13,10,9,152,150,122,149,148,5, - 2,0,114,0,108,0,5,2,9,10, - 139,0,75,0,184,0,4,195,0,2, - 136,65,0,156,0,5,10,9,2,13, - 4,45,0,65,138,137,0,143,0,172, - 5,171,0,127,0,175,0,162,0,109, - 0,110,0,67,130,40,5,10,9,2, - 13,0,193,0,40,56,0,40,1,0, - 153,188,0,159,0,191,0,13,2,9, - 10,5,83,0,4,30,0,4,177,0, - 2,65,0,95,94,54,5,58,0,32, - 95,94,64,2,9,10,4,5,0,153, - 183,0,4,10,9,2,64,5,90,54, - 0,2,116,0,44,2,0,48,40,179, - 4,39,0,4,39,38,0,4,178,0, - 4,67,0,67,39,48,68,4,40,0, - 4,97,0,95,94,54,64,58,5,10, - 9,2,0,4,45,196,0,54,5,90, - 4,22,0,62,0,32,94,95,4,0, - 141,0,40,160,0,40,104,0,44,2, - 3,0,174,0,5,102,192,0,38,5, - 2,9,10,158,4,0,161,0,65,54, - 0,117,4,48,82,0,39,4,22,181, - 0,5,102,168,0,5,10,9,13,3, - 1,0,4,48,82,84,0,2,5,122, - 118,119,120,13,87,0,4,48,82,102, - 46,5,0,2,57,0,45,4,180,0, - 4,45,39,0,45,4,32,0,4,45, + 2,0,108,0,5,2,9,10,139,0, + 75,0,184,0,4,195,0,2,136,65, + 0,156,0,5,10,9,2,13,4,45, + 0,4,67,0,127,0,172,5,171,0, + 65,138,137,0,143,0,159,0,2,65, + 0,4,177,0,175,0,193,0,162,0, + 67,130,40,5,10,9,2,13,0,109, + 0,65,49,0,40,1,0,191,0,153, + 188,0,13,2,9,10,5,83,0,4, + 30,0,114,0,40,56,0,49,5,90, + 4,22,0,174,0,95,94,49,5,58, + 0,32,95,94,64,2,9,10,4,5, + 0,44,2,0,4,10,9,2,64,5, + 90,49,0,153,183,0,48,40,179,4, + 39,0,4,97,0,67,39,48,68,4, + 40,0,141,0,110,0,4,39,38,0, + 95,94,49,64,58,5,10,9,2,0, + 44,2,3,0,32,94,95,4,0,62, + 0,5,102,192,0,40,160,0,2,116, + 0,40,104,0,45,4,32,0,4,45, + 196,0,161,0,2,57,0,4,178,0, + 117,4,48,82,0,39,4,22,181,0, + 5,102,168,0,5,10,9,13,3,1, + 0,4,48,82,84,0,2,5,122,118, + 119,120,13,87,0,4,48,82,102,46, + 5,0,38,5,2,9,10,158,4,0, + 45,4,180,0,4,45,39,0,4,45, 103,0 }; }; @@ -2134,18 +2152,18 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopePrefix { public final static char scopePrefix[] = { - 159,584,603,308,535,551,562,573,367,266, - 280,302,315,328,42,291,387,425,167,592, - 478,20,51,71,80,85,90,130,195,297, - 321,336,341,144,272,286,506,27,144,377, - 341,611,27,217,245,1,14,61,76,106, - 346,356,360,443,471,500,527,531,621,625, - 629,97,7,97,405,421,434,455,519,232, - 116,116,434,542,558,569,580,207,489,56, - 56,156,222,225,56,240,261,225,225,56, - 364,468,475,156,56,644,110,350,409,449, - 462,56,350,396,177,104,447,633,640,633, - 640,65,415,137,104,104,250 + 159,585,604,309,536,552,563,574,368,267, + 281,303,316,329,42,292,388,426,167,593, + 479,20,51,71,80,85,90,130,195,298, + 322,337,342,144,273,287,507,27,144,378, + 342,612,27,217,246,1,14,61,76,106, + 347,357,361,444,472,501,528,532,622,626, + 630,97,7,97,406,422,435,456,520,116, + 116,232,435,543,559,570,581,207,490,56, + 56,156,222,225,56,241,262,225,225,56, + 365,469,476,156,56,645,110,351,410,450, + 463,56,351,397,177,104,448,634,641,634, + 641,65,416,137,104,104,251 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2153,18 +2171,18 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopeSuffix { public final static char scopeSuffix[] = { - 18,5,5,135,5,5,5,5,374,135, - 95,135,135,334,48,277,393,431,173,67, - 484,25,25,25,59,59,95,135,200,135, - 326,326,334,149,277,101,511,38,152,382, - 598,616,32,211,211,5,18,5,59,95, - 326,95,95,135,243,5,5,5,5,5, - 243,642,11,101,374,374,374,459,511,236, - 120,125,438,546,546,546,546,211,493,59, - 59,5,5,228,230,243,5,264,264,230, - 95,5,243,5,504,5,113,353,412,452, - 465,523,514,399,180,95,95,635,635,637, - 637,67,417,139,202,187,252 + 18,5,5,135,5,5,5,5,375,135, + 95,135,135,335,48,278,394,432,173,67, + 485,25,25,25,59,59,95,135,200,135, + 327,327,335,149,278,101,512,38,152,383, + 599,617,32,211,211,5,18,5,59,95, + 327,95,95,135,244,5,5,5,5,5, + 244,643,11,101,375,375,375,460,512,120, + 125,236,439,547,547,547,547,211,494,59, + 59,5,5,228,230,244,5,265,265,230, + 95,5,244,5,505,5,113,354,413,453, + 466,524,515,400,180,95,95,636,636,638, + 638,67,418,139,202,187,253 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2173,13 +2191,13 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopeLhs { public final static char scopeLhs[] = { 46,17,17,120,17,17,17,17,71,86, - 47,80,120,119,77,52,71,70,46,17, + 47,80,120,119,77,53,71,70,46,17, 19,3,7,8,168,168,164,118,46,81, - 119,119,121,129,53,47,139,112,129,71, + 119,119,121,129,54,47,139,112,129,71, 17,17,112,96,59,135,74,171,168,164, - 121,182,50,56,143,18,17,17,17,17, - 17,12,114,164,71,70,70,37,139,58, - 131,131,70,17,17,17,17,96,19,172, + 121,182,51,56,143,18,17,17,17,17, + 17,12,114,164,71,70,70,37,139,131, + 131,58,70,17,17,17,17,96,19,172, 168,184,94,101,61,75,60,158,76,121, 72,144,143,175,139,16,164,121,103,69, 21,139,139,71,46,164,66,137,44,137, @@ -2197,8 +2215,8 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 1,1,1,71,1,1,4,68,70,25, 1,1,68,73,73,73,118,73,1,25, 1,25,25,71,117,73,73,73,73,73, - 117,1,73,1,73,73,73,72,4,6, - 1,1,73,68,68,68,68,73,3,1, + 117,1,73,1,73,73,73,72,4,1, + 1,6,73,68,68,68,68,73,3,1, 1,73,73,3,1,117,73,1,1,1, 25,73,117,73,5,73,1,41,69,72, 73,1,41,75,74,25,25,4,4,4, @@ -2216,8 +2234,8 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 146,146,146,297,78,76,101,313,297,86, 234,234,313,305,150,46,86,26,53,62, 146,22,78,29,56,234,234,234,234,234, - 234,214,6,62,86,86,86,266,101,106, - 146,146,86,234,234,234,234,305,234,26, + 234,214,6,62,86,86,86,266,101,146, + 146,106,86,234,234,234,234,305,234,26, 53,24,305,307,150,301,150,59,155,146, 86,50,56,104,101,234,62,146,1,86, 235,101,101,86,76,62,11,98,122,98, @@ -2252,48 +2270,48 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 0,203,0,0,215,0,227,126,3,0, 126,0,0,0,0,0,227,126,3,216, 0,223,3,0,212,126,0,208,0,146, - 0,176,166,127,0,10,0,0,0,214, - 63,0,125,0,227,126,3,182,0,182, - 0,2,0,0,126,0,0,0,0,0, - 198,3,0,201,0,237,126,162,40,28, - 0,179,127,59,62,0,196,128,0,128, - 179,127,278,62,0,179,127,278,62,0, - 179,127,69,123,59,0,237,126,162,59, - 0,237,126,162,226,59,0,276,126,162, - 123,305,56,0,276,126,162,305,56,0, - 179,127,275,56,0,135,0,187,179,127, - 275,244,0,136,0,179,127,275,244,0, - 187,166,127,10,0,166,127,10,0,166, - 127,0,93,136,0,268,126,144,0,268, - 126,170,0,161,84,0,300,160,302,303, - 3,81,0,126,171,0,302,303,3,81, - 0,128,0,126,171,0,161,3,75,190, - 80,0,126,128,0,190,80,0,108,2, - 131,126,128,0,225,3,75,0,198,167, - 0,33,169,0,167,0,175,33,169,0, - 225,3,85,0,190,154,225,3,83,0, - 62,171,0,225,3,83,0,126,171,62, - 171,0,301,126,162,0,161,0,214,77, - 0,30,171,0,161,106,158,0,30,169, - 0,177,3,0,126,149,0,219,3,0, - 214,63,265,0,161,63,0,177,3,297, - 66,127,0,126,0,0,0,0,297,66, - 127,0,2,145,126,0,0,0,0,177, - 3,47,0,147,0,125,41,166,127,0, - 31,147,0,93,136,31,147,0,220,179, - 127,0,146,31,147,0,177,3,51,0, - 161,3,51,0,161,3,68,177,55,43, - 0,177,55,43,0,20,2,131,126,0, - 161,3,68,177,55,46,0,177,55,46, - 0,161,3,68,177,55,48,0,177,55, - 48,0,161,3,68,177,55,44,0,177, - 55,44,0,219,3,125,187,166,127,10, - 0,125,187,166,127,10,0,136,2,0, - 126,0,219,3,124,258,166,127,10,0, - 258,166,127,10,0,135,2,0,126,0, - 219,3,135,0,219,3,139,0,161,63, - 139,0,260,0,31,0,31,139,0,165, - 0,134,0,161,3,0 + 0,171,166,127,0,10,0,0,0,0, + 214,63,0,125,0,227,126,3,182,0, + 182,0,2,0,0,126,0,0,0,0, + 0,198,3,0,201,0,237,126,162,40, + 28,0,179,127,59,62,0,196,128,0, + 128,179,127,278,62,0,179,127,278,62, + 0,179,127,69,123,59,0,237,126,162, + 59,0,237,126,162,226,59,0,276,126, + 162,123,305,56,0,276,126,162,305,56, + 0,179,127,275,56,0,135,0,187,179, + 127,275,244,0,136,0,179,127,275,244, + 0,187,166,127,10,0,166,127,10,0, + 166,127,0,93,136,0,268,126,144,0, + 268,126,170,0,161,84,0,300,160,302, + 303,3,81,0,126,171,0,302,303,3, + 81,0,128,0,126,171,0,161,3,75, + 190,80,0,126,128,0,190,80,0,108, + 2,131,126,128,0,225,3,75,0,198, + 167,0,33,169,0,167,0,175,33,169, + 0,225,3,85,0,190,154,225,3,83, + 0,62,171,0,225,3,83,0,126,171, + 62,171,0,301,126,162,0,161,0,214, + 77,0,30,171,0,161,106,158,0,30, + 169,0,177,3,0,126,149,0,219,3, + 0,214,63,265,0,161,63,0,177,3, + 297,66,127,0,126,0,0,0,0,297, + 66,127,0,2,145,126,0,0,0,0, + 177,3,47,0,147,0,125,41,166,127, + 0,31,147,0,93,136,31,147,0,220, + 179,127,0,146,31,147,0,177,3,51, + 0,161,3,51,0,161,3,68,177,55, + 43,0,177,55,43,0,20,2,131,126, + 0,161,3,68,177,55,46,0,177,55, + 46,0,161,3,68,177,55,48,0,177, + 55,48,0,161,3,68,177,55,44,0, + 177,55,44,0,219,3,125,187,166,127, + 10,0,125,187,166,127,10,0,136,2, + 0,126,0,219,3,124,258,166,127,10, + 0,258,166,127,10,0,135,2,0,126, + 0,219,3,135,0,219,3,139,0,161, + 63,139,0,260,0,31,0,31,139,0, + 165,0,134,0,161,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2301,38 +2319,38 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopeState { public final static char scopeState[] = {0, - 4684,4906,4896,4886,0,1549,3558,559,3456,0, - 3550,3513,3453,3346,3309,3255,3218,3164,3127,2836, - 2799,3699,0,594,0,2483,784,0,3550,3513, - 2440,2264,3453,3346,3309,3255,3218,3164,1044,3127, - 2836,2799,3723,3009,0,1178,1082,802,0,3374, - 3003,0,3708,3242,0,817,734,0,4566,3435, - 0,4583,4515,0,4583,4515,3812,4315,4305,3706, - 4222,4212,4202,3696,0,4583,4515,3812,4315,4305, - 3706,4222,4212,4202,3696,3550,3513,3453,3346,3309, - 3255,3218,3164,3127,2836,2799,0,3252,733,0, - 669,581,0,825,0,2378,4415,4841,3224,4402, - 3761,2587,2968,2805,4531,2412,2935,2962,876,736, - 0,4783,4766,4758,4754,4738,4719,4708,4693,4869, - 4854,4849,4673,4669,4647,4643,4598,4834,3486,3138, - 3464,2627,4508,2768,0,537,4493,2926,0,4415, - 4566,4402,3435,2935,2911,3421,4480,2755,2378,3793, - 4369,2587,2418,2396,0,3335,3189,4783,4766,4758, - 2461,2413,4754,627,4738,4719,4708,3536,4693,3531, - 3468,3458,3403,2633,4869,2637,4854,2515,4849,3922, - 4673,4669,2443,4647,4643,2391,4598,4834,3476,3486, - 3138,3464,3036,2627,4508,4493,2768,737,2926,2520, - 2182,2094,1405,2911,3421,4480,2755,2378,4415,3793, - 4566,4402,4369,2587,3435,2268,941,804,669,581, - 2935,2418,2396,4181,4159,4137,2232,2282,2348,2316, - 2559,2531,595,3105,3079,2772,2700,2673,2600,3674, - 3650,631,3625,2727,4115,4093,4071,4049,4027,4005, - 3983,3961,3930,3899,3830,1975,2194,2144,2106,2056, + 4795,4892,4885,4880,0,1549,3482,1463,3397,0, + 3586,3531,3476,3374,3337,3292,3255,3210,3173,2882, + 2845,3735,0,594,0,2683,784,0,3586,3531, + 2461,2430,3476,3374,3337,3292,3255,3210,2264,3173, + 2882,2845,3312,3073,0,1448,1082,744,0,2924, + 2902,0,3743,3014,0,2859,817,0,4654,4569, + 0,4590,4545,0,4590,4545,3848,4351,4341,3742, + 4258,4248,4238,3732,0,4590,4545,3848,4351,4341, + 3742,4258,4248,4238,3732,3586,3531,3476,3374,3337, + 3292,3255,3210,3173,2882,2845,0,2947,796,0, + 669,581,0,915,0,2378,4470,4755,4555,4457, + 3797,2633,1178,4508,3005,2464,2981,2409,4451,2851, + 0,4772,4767,4748,4737,4722,4702,4685,4677,4869, + 4861,4856,4673,4562,3435,3431,2814,4844,4787,2994, + 4366,2673,2518,2507,0,537,4522,2972,0,4470, + 4654,4457,4569,2981,2957,3449,4483,2801,2378,3829, + 4438,2633,2473,2396,0,2677,2493,4772,4767,4748, + 2392,792,4737,627,4722,4702,4685,2887,4677,2878, + 2712,2702,2698,3188,4869,2570,4861,2553,4856,3517, + 4673,4562,2448,3435,3431,740,2814,4844,2905,4787, + 2994,4366,2432,2673,2518,4522,2507,736,2972,2415, + 2182,2094,1405,2957,3449,4483,2801,2378,4470,3829, + 4654,4457,4438,2633,4569,2268,941,804,669,581, + 2981,2473,2396,4217,4195,4173,2232,2282,2348,2316, + 2605,2577,595,3151,3125,2818,2746,2719,2646,3710, + 3686,631,3661,2773,4151,4129,4107,4085,4063,4041, + 4019,3997,3966,3935,3866,1975,2194,2144,2106,2056, 2018,1050,883,1932,1889,1275,827,746,690,1846, 1803,1760,1717,1674,1631,1588,1545,1502,1459,1416, 537,1232,1187,1356,1318,1144,1005,962,1096,0, - 1388,1191,861,585,2412,2935,2911,2965,2418,2857, - 2396,0,3276,3148,3275,3142,0 + 1230,1191,798,585,2464,2981,2957,3004,2473,3104, + 2396,0,4832,3350,3477,2453,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2350,7 +2368,7 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 146,149,148,151,150,155,153,157,61,158, 69,69,214,158,3,3,124,123,55,55, 167,63,3,65,66,55,179,165,166,223, - 198,126,212,127,176,162,310,275,305,275, + 198,126,212,127,171,162,310,275,305,275, 127,179,166,212,126,230,3,55,55,55, 55,127,3,177,161,126,65,66,166,3, 125,105,119,3,63,89,91,36,35,93, @@ -2358,42 +2376,43 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 96,99,98,100,116,115,114,113,112,111, 110,109,108,107,69,106,101,126,126,126, 126,126,63,63,126,4,187,227,228,229, - 127,166,6,126,166,230,125,124,127,123, - 162,127,166,41,69,177,161,177,177,177, - 177,166,219,126,154,267,135,125,124,10, - 127,63,297,3,177,41,127,41,219,161, - 146,146,145,145,145,148,148,148,148,147, - 147,150,149,149,153,151,155,161,157,227, - 227,254,256,254,212,254,260,187,154,70, - 166,176,126,309,127,168,224,59,41,204, - 62,170,312,125,124,231,231,179,162,126, - 179,187,127,68,68,68,68,187,258,70, - 127,166,205,3,298,167,152,179,166,72, - 154,154,70,4,126,6,184,166,162,226, - 55,41,278,280,126,3,182,231,231,126, - 126,187,126,276,123,277,3,3,3,3, - 125,124,166,41,177,126,126,220,5,41, - 126,126,221,126,187,126,162,68,55,127, - 74,126,212,311,72,289,198,124,126,126, - 126,72,276,69,70,161,161,161,161,3, - 3,187,154,262,265,63,180,4,123,125, - 221,221,126,128,237,28,41,170,64,59, - 62,239,126,126,179,126,281,72,70,72, - 69,212,314,224,22,127,219,219,125,126, - 3,63,161,4,126,126,61,40,126,3, - 123,59,237,295,128,281,162,293,127,294, - 70,127,22,315,179,262,219,214,3,126, - 162,268,248,279,40,69,127,68,282,126, - 70,179,3,179,127,127,320,126,3,69, - 70,154,127,179,126,301,79,77,1,161, - 8,85,83,81,80,75,82,84,78,76, - 59,74,219,179,179,70,237,152,162,252, - 179,226,283,118,8,72,214,72,3,3, - 3,190,3,123,161,123,178,126,162,226, - 3,72,225,167,225,303,144,75,225,126, - 126,90,319,167,154,198,154,302,126,3, - 154,283,308,154,154,126,69,190,160,268, - 161,189,70,121,300,154,189,8,154 + 127,166,9,6,126,166,230,125,124,127, + 123,162,127,166,41,69,177,161,177,177, + 177,177,166,219,126,154,267,135,125,124, + 10,127,63,297,3,177,41,127,41,219, + 161,146,146,145,145,145,148,148,148,148, + 147,147,150,149,149,153,151,155,161,157, + 227,227,254,256,254,212,254,260,187,154, + 70,166,171,171,309,127,168,224,59,41, + 204,62,170,312,125,124,231,231,179,162, + 126,179,187,127,68,68,68,68,187,258, + 70,127,166,205,3,298,167,152,179,166, + 72,154,154,70,4,126,6,126,166,162, + 226,55,41,278,280,126,3,182,231,231, + 126,126,187,126,276,123,277,3,3,3, + 3,125,124,166,41,177,126,126,220,5, + 41,126,126,221,184,171,187,126,162,68, + 55,127,74,126,212,311,72,289,198,124, + 126,126,126,72,276,69,70,161,161,161, + 161,3,3,187,154,262,265,63,180,4, + 123,125,221,221,126,126,128,237,28,41, + 170,64,59,62,239,126,126,179,126,281, + 72,70,72,69,212,314,224,22,127,219, + 219,125,126,3,63,161,4,126,126,61, + 40,126,3,123,59,237,295,128,281,162, + 293,127,294,70,127,22,315,179,262,219, + 214,3,126,162,268,248,279,40,69,127, + 68,282,126,70,179,3,179,127,127,320, + 126,3,69,70,154,127,179,126,301,79, + 77,1,161,8,85,83,81,80,75,82, + 84,78,76,59,74,219,179,179,70,237, + 152,162,252,179,226,283,118,8,72,214, + 72,3,3,3,190,3,123,161,123,178, + 126,162,226,3,72,225,167,225,303,144, + 75,225,126,126,90,319,167,154,198,154, + 302,126,3,154,283,308,154,154,126,69, + 190,160,268,161,189,70,121,300,154,189, + 8,154 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2668,20 +2687,20 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 539, + NUM_STATES = 542, NT_OFFSET = 122, - LA_STATE_OFFSET = 5963, + LA_STATE_OFFSET = 6046, MAX_LA = 2147483647, NUM_RULES = 536, NUM_NONTERMINALS = 202, NUM_SYMBOLS = 324, SEGMENT_SIZE = 8192, - START_STATE = 3142, + START_STATE = 2453, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 120, EOLT_SYMBOL = 120, - ACCEPT_ACTION = 5062, - ERROR_ACTION = 5427; + ACCEPT_ACTION = 5145, + ERROR_ACTION = 5510; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParser.java index a5dd5d9df34..0d6c7a070f2 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParser.java @@ -17,13 +17,16 @@ import lpg.lpgjavaruntime.*; import java.util.*; import org.eclipse.cdt.core.dom.ast.*; +import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter; +import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap; import org.eclipse.cdt.core.dom.lrparser.IParser; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.ITokenCollector; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack; - -import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; -import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; +import org.eclipse.cdt.core.parser.IScanner; +import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider; +import org.eclipse.cdt.core.index.IIndex; import org.eclipse.cdt.internal.core.dom.parser.c.CNodeFactory; import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction; @@ -32,7 +35,9 @@ import org.eclipse.cdt.core.dom.lrparser.action.c99.C99SecondaryParserFactory; import org.eclipse.cdt.core.dom.lrparser.action.gnu.GCCBuildASTParserAction; import org.eclipse.cdt.core.dom.lrparser.action.gnu.GCCSecondaryParserFactory; -public class GCCParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser< IASTTranslationUnit > +public class GCCParser extends PrsStream implements RuleAction, ITokenStream, + ITokenCollector, IParser< IASTTranslationUnit > + { private static ParseTable prs = new GCCParserprs(); private FixedBacktrackingParser btParser; @@ -170,7 +175,11 @@ public class GCCParser extends PrsStream implements RuleAction , IParserActionTo private C99BuildASTParserAction action; private IASTCompletionNode compNode; -public GCCParser() { // constructor + +public GCCParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Set options) { + initActions(options); + action.initializeTranslationUnit(scanner, builtinBindingsProvider, index); + CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap); } private void initActions(Set options) { @@ -194,17 +203,16 @@ public void addToken(IToken token) { } -public IASTTranslationUnit parse(Set options) { +public IASTTranslationUnit parse() { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(options); final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse super.resetTokenStream(); // allow tokens to be garbage collected compNode = action.getASTCompletionNode(); // the completion node may be null - return ( IASTTranslationUnit ) action.getParseResult(); + return ( IASTTranslationUnit ) action.getParseResult(); } @@ -227,25 +235,6 @@ public String getName() { } - -private ITokenMap tokenMap = null; - -public void setTokens(List tokens) { - resetTokenStream(); - addToken(new Token(null, 0, 0, 0)); // dummy token - for(IToken token : tokens) { - token.setKind(tokenMap.mapKind(token.getKind())); - addToken(token); - } - addToken(new Token(null, 0, 0, GCCParsersym.TK_EOF_TOKEN)); -} - -public GCCParser(IParserActionTokenProvider parser) { // constructor - tokenMap = new TokenMap(GCCParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols()); -} - - - private GCCBuildASTParserAction gnuAction; public void ruleAction(int ruleNumber) diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCSizeofExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCSizeofExpressionParser.java index af164baf569..bf776c7dbc0 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCSizeofExpressionParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCSizeofExpressionParser.java @@ -17,13 +17,20 @@ import lpg.lpgjavaruntime.*; import java.util.*; import org.eclipse.cdt.core.dom.ast.*; +import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter; +import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap; import org.eclipse.cdt.core.dom.lrparser.IParser; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.ITokenCollector; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack; +import org.eclipse.cdt.core.parser.IScanner; +import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider; +import org.eclipse.cdt.core.index.IIndex; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; +import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser; import org.eclipse.cdt.internal.core.dom.parser.c.CNodeFactory; import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction; @@ -32,7 +39,9 @@ import org.eclipse.cdt.core.dom.lrparser.action.c99.C99SecondaryParserFactory; import org.eclipse.cdt.core.dom.lrparser.action.gnu.GCCBuildASTParserAction; import org.eclipse.cdt.core.dom.lrparser.action.gnu.GCCSecondaryParserFactory; -public class GCCSizeofExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser< IASTExpression > +public class GCCSizeofExpressionParser extends PrsStream implements RuleAction, ITokenStream, + ITokenCollector, IParser< IASTExpression > + , ISecondaryParser< IASTExpression > { private static ParseTable prs = new GCCSizeofExpressionParserprs(); private FixedBacktrackingParser btParser; @@ -170,7 +179,11 @@ public class GCCSizeofExpressionParser extends PrsStream implements RuleAction , private C99BuildASTParserAction action; private IASTCompletionNode compNode; -public GCCSizeofExpressionParser() { // constructor + +public GCCSizeofExpressionParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Set options) { + initActions(options); + action.initializeTranslationUnit(scanner, builtinBindingsProvider, index); + CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap); } private void initActions(Set options) { @@ -194,10 +207,9 @@ public void addToken(IToken token) { } -public IASTExpression parse(Set options) { +public IASTExpression parse() { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(options); final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse @@ -240,12 +252,12 @@ public void setTokens(List tokens) { addToken(new Token(null, 0, 0, GCCSizeofExpressionParsersym.TK_EOF_TOKEN)); } -public GCCSizeofExpressionParser(IParserActionTokenProvider parser) { // constructor +public GCCSizeofExpressionParser(ITokenStream parser, Set options) { // constructor for creating secondary parser + initActions(options); tokenMap = new TokenMap(GCCSizeofExpressionParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols()); } - private GCCBuildASTParserAction gnuAction; public void ruleAction(int ruleNumber) diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParser.java index b9ec813c871..6969692b75c 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParser.java @@ -17,13 +17,16 @@ import lpg.lpgjavaruntime.*; import java.util.*; import org.eclipse.cdt.core.dom.ast.*; +import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter; +import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap; import org.eclipse.cdt.core.dom.lrparser.IParser; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.ITokenCollector; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack; - -import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; -import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; +import org.eclipse.cdt.core.parser.IScanner; +import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider; +import org.eclipse.cdt.core.index.IIndex; import org.eclipse.cdt.core.dom.ast.cpp.*; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPNodeFactory; @@ -33,7 +36,9 @@ import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPSecondaryParserFactory; import org.eclipse.cdt.core.dom.lrparser.action.gnu.GPPBuildASTParserAction; import org.eclipse.cdt.core.dom.lrparser.action.gnu.GPPSecondaryParserFactory; -public class GPPParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser< IASTTranslationUnit > +public class GPPParser extends PrsStream implements RuleAction, ITokenStream, + ITokenCollector, IParser< IASTTranslationUnit > + { private static ParseTable prs = new GPPParserprs(); private FixedBacktrackingParser btParser; @@ -171,7 +176,11 @@ public class GPPParser extends PrsStream implements RuleAction , IParserActionTo private CPPBuildASTParserAction action; private IASTCompletionNode compNode; -public GPPParser() { // constructor + +public GPPParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Set options) { + initActions(options); + action.initializeTranslationUnit(scanner, builtinBindingsProvider, index); + CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap); } private void initActions(Set options) { @@ -195,17 +204,16 @@ public void addToken(IToken token) { } -public IASTTranslationUnit parse(Set options) { +public IASTTranslationUnit parse() { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(options); final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse super.resetTokenStream(); // allow tokens to be garbage collected compNode = action.getASTCompletionNode(); // the completion node may be null - return ( IASTTranslationUnit ) action.getParseResult(); + return ( IASTTranslationUnit ) action.getParseResult(); } @@ -228,25 +236,6 @@ public String getName() { } - -private ITokenMap tokenMap = null; - -public void setTokens(List tokens) { - resetTokenStream(); - addToken(new Token(null, 0, 0, 0)); // dummy token - for(IToken token : tokens) { - token.setKind(tokenMap.mapKind(token.getKind())); - addToken(token); - } - addToken(new Token(null, 0, 0, GPPParsersym.TK_EOF_TOKEN)); -} - -public GPPParser(IParserActionTokenProvider parser) { // constructor - tokenMap = new TokenMap(GPPParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols()); -} - - - private GPPBuildASTParserAction gnuAction; public void ruleAction(int ruleNumber) @@ -2035,35 +2024,47 @@ private GPPBuildASTParserAction gnuAction; // case 579: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; } + + // + // Rule 580: typeof_type_specifier ::= typeof unary_expression + // + case 580: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break; + } + + // + // Rule 581: typeof_type_specifier ::= typeof ( type_id ) + // + case 581: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break; + } // - // Rule 584: declaration_specifiers ::= typeof_declaration_specifiers + // Rule 585: declaration_specifiers ::= typeof_declaration_specifiers // - case 584: { gnuAction.consumeDeclarationSpecifiersTypeof(); break; + case 585: { gnuAction.consumeDeclarationSpecifiersTypeof(); break; } // - // Rule 597: declarator ::= ptr_operator_seq attribute_or_decl_specifier_seq direct_declarator + // Rule 598: declarator ::= ptr_operator_seq attribute_or_decl_specifier_seq direct_declarator // - case 597: { action. consumeDeclaratorWithPointer(true); break; + case 598: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 599: simple_type_specifier ::= _Complex - // - case 599: { action. consumeToken(); break; - } - - // - // Rule 600: simple_type_specifier ::= _Imaginary + // Rule 600: simple_type_specifier ::= _Complex // case 600: { action. consumeToken(); break; } + + // + // Rule 601: simple_type_specifier ::= _Imaginary + // + case 601: { action. consumeToken(); break; + } // - // Rule 601: declaration_specifiers ::= simple_declaration_specifiers + // Rule 602: declaration_specifiers ::= simple_declaration_specifiers // - case 601: { gnuAction.consumeDeclarationSpecifiersSimple(); break; + case 602: { gnuAction.consumeDeclarationSpecifiersSimple(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParserprs.java index 44dfc63f158..3c3b0c5e16c 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParserprs.java @@ -95,554 +95,564 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym 4,3,1,2,1,3,4,4,6,1, 0,1,3,1,3,0,1,4,5,2, 4,2,4,3,3,5,3,4,3,2, - 1,2,2,2,1,1,2,2,3,2, - 2,3,1,1,1,1,4,1,1,1, - 2,-239,0,0,0,-2,0,0,0,0, + 4,1,2,2,2,1,1,2,2,3, + 2,2,3,1,1,1,1,4,1,1, + 1,2,-152,0,0,0,-2,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-254,0,0,0,0,0, - 0,0,-7,0,0,0,-300,0,0,0, - 0,0,-9,0,-121,0,0,0,0,-297, + 0,0,0,0,-200,0,0,0,0,0, + 0,0,-38,0,0,0,0,0,0,0, + 0,0,0,-7,0,-121,0,0,0,0, + -172,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-14,-77,-26,0,0,0,-400,0, - -16,0,0,0,0,0,0,-267,0,0, - 0,-17,0,0,0,0,0,0,0,0, - 0,0,-422,0,0,0,0,0,0,-59, - 0,0,0,0,0,0,0,0,-18,-58, - 0,0,0,0,-53,0,0,0,0,-3, - 0,-32,-10,0,0,0,-21,-522,0,0, - 0,0,0,0,0,0,0,-25,0,0, - 0,0,0,0,0,0,0,-36,0,0, - 0,0,0,0,0,-92,0,0,0,0, + 0,0,0,0,-15,-300,0,0,0,0, + 0,0,0,0,-9,0,0,0,0,0, + 0,-39,0,0,0,0,0,0,0,0, + 0,0,-59,0,-519,-256,0,-14,0,0, + -178,0,0,0,0,0,0,0,0,0, + 0,0,0,-10,0,0,0,0,-542,0, 0,0,0,0,0,0,0,0,0,0, - 0,-162,0,0,0,-37,0,0,0,0, - 0,0,0,0,-39,0,0,0,0,-139, + -3,-16,0,-45,0,0,0,0,0,0, + -303,0,0,0,-26,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-104,0,0,0,0,0,0,-296,0, + 0,0,-27,0,0,0,0,0,-90,0, + -139,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-567,-89,-126,-161,0,0,0, + 0,0,0,0,0,-251,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -131,0,0,0,0,0,0,0,-163,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-478,0,-181,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -61,-198,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-219,0,0,0, - -30,0,0,0,0,0,0,0,-35,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-366,0,0,0,0,0,0,0, - 0,-370,0,0,-90,-182,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-140, - 0,0,-401,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-150,0,0,0, - 0,0,0,0,0,0,0,-292,0,-218, - 0,0,-40,0,0,0,0,0,0,0, - 0,-345,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-169,0,0,0, - 0,0,0,0,0,0,-105,0,0,0, - 0,0,-388,0,0,0,-52,0,0,0, - 0,0,0,0,-301,-246,-12,0,0,0, - 0,0,-256,0,0,0,0,0,0,0, - 0,0,0,0,0,-95,0,0,0,0, - -480,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-13,-208,0,0, - 0,0,0,0,0,-42,0,0,0,0, - 0,0,-152,0,0,0,0,0,-568,0, - 0,0,-127,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-289,0,0,0,0,0,0,0,-93, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-43,0,0,0,-15,-344,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,-44,0,0,0,0, - 0,0,0,-165,0,0,0,0,0,0, - -51,-502,-175,0,0,0,-48,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-46, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-54,0,0,0,0,0, - 0,0,0,0,0,-172,-294,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-65,0,0,0,-214,0,0, - 0,0,0,0,0,0,0,0,-122,0, - 0,0,0,0,0,0,0,0,0,0, - -66,0,0,0,0,-149,0,0,0,-101, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-4,-80, - 0,0,-81,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-56,0,0,0, - -82,0,0,-395,0,0,0,0,0,0, + 0,0,0,0,-17,0,0,0,0,-197, + 0,-92,0,0,0,0,-131,0,0,0, + 0,0,0,-183,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,-141,0,0, - 0,0,0,0,-83,0,0,0,0,0, - 0,0,0,0,-112,0,0,-375,0,0, - 0,0,-273,-484,0,0,0,0,0,0, + 0,0,0,-32,0,0,0,0,0,0, + 0,0,0,0,0,0,-220,0,0,0, + 0,0,-35,0,0,0,-4,0,0,0, + 0,0,0,0,0,-211,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-127, + -485,0,0,0,0,-184,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-55,0,0,0,0,0, - 0,0,0,0,-153,-186,0,0,0,0, - 0,0,0,0,0,0,-63,0,0,0, - 0,0,0,-485,0,0,0,0,0,0, + 0,-150,-20,0,0,0,0,0,0,-18, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-235,0,0,0, - 0,0,0,0,-84,0,0,0,0,0, - 0,0,0,0,-343,0,0,-106,0,0, - 0,-19,-47,-491,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-86,-142,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-168,0,0,0, - 0,0,-382,0,0,-170,0,0,0,-87, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-64, - 0,0,0,0,0,0,-96,0,0,0, - 0,0,0,0,0,0,-232,0,0,0, + 0,0,0,0,-539,0,0,0,0,0, + -236,0,0,0,0,-25,0,0,-352,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -535,0,-496,-166,0,0,0,-62,0,0, - 0,0,0,0,0,0,0,-111,0,0, - 0,-100,0,0,0,-57,0,0,0,0, - 0,0,-332,0,0,0,-184,0,0,0, + 0,0,-95,-58,-19,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-46, + -314,0,0,0,0,0,0,0,0,0, + 0,-470,0,0,0,0,0,0,0,0, + -36,0,0,-164,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-366,0,0, + -487,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-107,-108,0, + 0,0,0,0,-140,0,0,-47,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-78,0,0,0,-109,0,0, - -333,0,0,0,-110,0,0,0,0,0, + 0,0,0,0,0,-574,0,0,-575,0, + 0,0,-52,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-37,-170,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-176, + -154,0,0,0,0,0,0,0,-12,-351, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-40,0,0,-42,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-13,-177,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-101,0,-61,-396,0,0, + 0,0,0,0,0,0,-112,0,0,0, + 0,0,0,-370,0,0,0,0,0,0, + 0,0,0,0,0,-43,-305,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -106,-297,0,0,0,0,-126,0,0,0, + -44,0,0,0,0,0,0,-48,-122,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-264,-266,0,0,0,-54, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-57,0,0, + 0,0,0,0,0,-409,0,0,0,0, + 0,0,0,0,0,0,-313,0,0,0, + -93,0,0,-404,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-60,0,0,-65,-573, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-163,0,0,0,0,0, + 0,0,-85,-491,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-246,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-142,-188,0,0,0,0, + 0,0,0,0,0,0,-431,0,0,0, + 0,0,-550,-492,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-474,0,-66,-120,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-247,-64,0,0,0,0, + 0,-136,0,-498,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-155,0,-218,0,0, + 0,0,0,-523,0,0,0,0,0,0, + 0,0,0,0,0,-418,0,0,0,0, + 0,0,0,0,0,0,-233,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-105,0,0,0, + 0,0,0,0,0,0,0,-257,0,0, + 0,0,0,0,-339,0,0,0,-53,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -189,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-390,0,0,0,-80, + 0,0,0,-340,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-471,0,0, + 0,0,0,-509,0,0,0,0,0,0, + 0,0,0,0,-483,0,0,0,-562,0, + 0,-341,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-81,0,-221,0,0,0,0, + 0,-158,0,0,0,0,0,0,0,0, + 0,0,-55,0,0,0,0,0,0,-342, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-123,0,-484,0,0,0,0,0,0, + 0,0,0,-529,0,0,0,0,0,0, + -62,0,0,0,0,0,0,-343,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-508, + 0,-82,0,0,0,0,0,-159,0,0, + 0,0,0,0,0,0,0,0,-526,0, + 0,0,-129,0,0,-344,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-147,0,-597, + 0,0,0,0,0,0,0,0,0,-566, + 0,0,0,0,0,0,-186,-192,0,-195, + 0,0,0,-345,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-83,0,-391,0,0, + -196,0,0,-160,0,0,0,0,0,0, + 0,0,0,0,0,0,-148,-84,0,0, + 0,-346,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,-88,0,0,0,0,0,0, - 0,-124,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-334,0, - 0,0,-125,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-128,-520,-285,0,0,0,0,0,-102, - 0,0,0,0,0,0,0,0,0,-160, - 0,0,0,0,0,0,-335,0,0,0, + 0,0,-102,-576,0,0,0,0,0,-347, + 0,0,0,-311,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-134, - -286,0,0,-104,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-103,0,0, - -154,0,0,0,-336,0,0,0,-123,0, + 0,-103,0,-86,-87,0,-198,0,0,-161, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-302,0,0, - 0,-113,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-173,0,0,0,0, - 0,0,-337,0,0,0,0,0,0,0, + 0,-89,-51,0,-96,0,0,-348,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-381,0,0,0,-114, + 0,0,0,0,0,0,0,0,0,-384, + 0,0,-100,0,-588,0,0,0,0,0, + 0,-187,0,0,0,0,0,0,-113,-603, + 0,-206,0,0,0,-349,0,0,0,-107, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-117,0,0,0,0,0,0, - -338,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-149,0,-108, + -255,0,-371,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-109,0,-312, + -168,0,0,-357,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-476,0,0,0,-119,0,0, - 0,0,0,0,0,-197,0,0,0,0, - 0,-203,0,0,0,-200,0,0,-339,0, - 0,0,-185,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-208,0,0, + 0,0,0,0,0,0,0,-110,0,0, + 0,0,0,0,-376,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-477,0,0,0,-137,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-213, - 0,0,0,0,0,0,-340,0,0,0, - -129,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-509, - 0,0,0,-215,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-383,0,0, - 0,0,0,0,-341,0,0,0,-245,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-550,0,0, - 0,-217,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-147,0,0,-205,-207, - 0,0,-342,0,0,0,-220,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-222,0,-591,0,0, - 0,0,0,-45,0,0,0,0,0,0, - 0,0,0,-449,0,0,0,0,0,0, - -354,0,0,0,-223,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-260,-265,-224,0,-225,0,0, - 0,-467,0,0,0,0,0,0,0,0, - 0,-226,0,0,-148,-417,0,0,-357,0, - 0,0,-190,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-206,0,0,-60,0,0,0,0,0, - 0,0,0,-202,0,0,0,0,0,-506, + 0,0,0,0,0,0,-426,0,-210,0, + 0,0,0,0,-124,0,0,0,0,0, + 0,0,0,0,0,0,0,-204,0,0, + 0,0,-201,-359,0,-511,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-227,-187,0,0,0, - 0,0,0,0,-228,0,0,0,0,0, - -164,-229,-85,0,0,0,0,0,-371,0, - -507,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,-114,-203,0,0, + 0,0,0,-512,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-120,0,0,0, - 0,0,0,0,0,-230,0,0,0,0, - 0,0,0,0,-199,0,0,0,-577,0, + 0,0,0,0,0,-117,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-611,0,-125,0,0, + 0,-581,0,0,0,-239,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-216,0,0,0,0,0,0,0,-270, + 0,0,0,-119,0,-271,-128,0,-605,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-275,0,0,0,0,-231,-501,-411, + 0,0,-137,-276,-307,0,0,0,0,-420, + 0,0,0,-427,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-397,0,0,0,0,0,0, + 0,0,0,-572,0,0,0,0,0,0, + -430,0,0,0,-240,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-237,0,0,0,0,0,0,0, - -174,0,0,0,0,0,0,0,0,0, - -421,0,0,0,0,0,0,0,0,0, + 0,0,-171,0,0,0,-215,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-542,0,0,-562,-233,0,0, - 0,0,0,0,0,-136,0,0,0,0, - 0,-193,-303,0,-508,0,0,0,0,0, - 0,-494,0,0,0,0,0,0,0,0, + 0,0,0,-241,-569,-298,0,0,0,0, + 0,-501,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-547,0,0,0,0,0, - 0,0,-194,0,0,0,0,0,0,0, - 0,0,-495,0,0,0,0,0,0,0, + 0,0,0,0,0,-554,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-569,-195, - 0,0,0,-196,0,0,0,0,0,0, - 0,0,0,-558,-234,-201,-571,0,0,0, - -236,-243,-250,-511,0,0,0,0,0,0, + 0,0,-502,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-251,0,0, - -204,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-561,0,0,0,0,0, + 0,0,0,0,-174,0,-134,0,-217,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-252, - -167,-309,0,0,0,0,0,0,0,-253, + 0,0,0,0,-282,-242,-156,-428,0,0, + 0,0,0,-514,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-393,0,0, + 0,0,0,-402,0,0,0,0,0,0, + 0,0,0,0,-568,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-219,0,-378,0, + 0,-258,0,0,-350,0,0,0,0,0, 0,0,0,0,0,-33,0,0,0,0, - 0,0,0,0,0,0,0,0,-459,0, - -604,-599,0,-5,0,0,0,-262,0,0, - 0,0,0,0,0,-367,0,0,-143,0, - -261,0,0,0,0,0,0,0,0,0, - 0,-296,-389,0,-355,-298,0,-238,0,0, + 0,0,0,0,0,0,0,0,-367,0, + -461,0,0,0,0,0,-199,-590,0,0, + 0,0,0,-111,0,0,0,-281,0,-286, + -299,0,0,0,-212,-394,0,-259,0,0, + -552,0,0,-202,0,0,-169,-606,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-207,-308, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-265,-270,0,0,0,0, + 0,-280,0,0,0,0,0,0,0,-5, + 0,0,0,-315,0,-399,0,-290,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-385,0,0,0,0,0, - 0,-264,0,0,0,-468,-450,0,0,0, - 0,-346,0,0,-600,0,0,0,0,0, - 0,0,0,0,0,-609,0,0,0,0, - 0,0,0,-271,0,-310,0,0,0,0, - 0,0,0,0,0,0,0,-266,0,0, - 0,-349,0,0,-274,-247,0,0,-287,0, + 0,0,0,0,0,0,0,0,0,-422, + 0,0,0,-496,-209,-222,-223,0,-613,0, 0,0,0,0,0,0,0,0,0,0, - -276,0,0,0,0,0,0,-299,-505,0, - 0,0,0,0,0,-582,-592,0,0,0, - 0,0,0,0,0,0,0,-331,0,0, + 0,-224,0,0,-309,0,0,-225,0,0, + -226,-97,0,0,0,-216,0,0,0,0, + 0,0,0,0,0,-227,0,-368,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-228,0,0, + -369,-302,0,-267,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-353,0,0,0,0,0,0,0,0, + 0,0,-269,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-229,0,0,0, + 0,0,0,-415,-578,0,0,0,-165,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-277,0,0,-329,0,0,0,0, + 0,-230,-338,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-594,0,-231, + 0,0,-304,0,0,0,-306,0,0,0, + -336,0,0,0,-232,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-20,0,0,0,-418,0,0,0, - 0,0,-487,0,0,0,0,0,0,0, - 0,0,0,0,0,-240,0,0,0,0, - -532,0,0,0,-288,-280,0,0,0,0, - -6,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-374,-282,0,-588,0,-555, + 0,0,0,0,0,-234,0,-22,0,0, + -310,0,0,0,0,0,0,-494,0,0, + 0,-235,0,0,0,0,0,0,0,0, + -237,0,0,0,0,-284,-248,-249,-250,0, + 0,0,0,0,0,-6,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-254,-559,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-565,0,0,0,0,-304,-387,0, - 0,-283,-22,0,-284,0,0,0,-241,0, - 0,0,0,0,-308,-543,-290,-305,0,-359, + 0,0,0,0,0,-373,0,-503,0,0, + 0,0,-598,0,0,0,-260,-261,-262,-166, + 0,0,0,0,0,0,-375,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-469,0,0,0,0,0,0, + -263,-238,0,0,0,-383,0,0,0,0, + 0,0,-385,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,-273,0, + -275,-277,0,0,0,0,-416,0,0,0, + 0,0,-333,0,0,0,-272,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-285,0,0,0,0,0, + 0,0,0,0,0,0,-56,0,0,0, + -287,-395,-400,-403,0,0,0,0,-412,0, + -429,0,0,-417,-8,-549,-553,0,0,-288, + -419,0,0,-425,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-291,0,0, + 0,0,0,0,-293,0,0,0,0,0, + 0,-500,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-599, + 0,0,0,-294,-467,0,0,0,0,0, + 0,0,0,-464,0,-465,0,0,0,0, + 0,-295,0,-544,0,0,0,-167,-301,-468, + -499,0,0,0,0,0,-472,0,0,-316, + -317,0,0,-505,0,0,0,0,0,0, + 0,0,0,0,0,0,-558,0,0,0, + 0,0,0,0,0,-473,0,0,0,0, + 0,0,-486,-30,-243,0,-488,-476,0,-477, + 0,0,-516,0,0,-520,0,-356,-358,0, + 0,0,0,-584,-360,0,0,0,0,0, + 0,0,0,-361,0,0,0,0,0,0, + 0,0,0,0,0,-91,-362,0,0,0, + -151,0,-363,0,0,0,0,0,0,0, + 0,0,0,0,0,-518,-365,-379,0,0, + 0,0,0,0,-386,-387,0,-388,0,0, + 0,0,0,0,0,-489,0,-524,-389,-405, + -406,0,0,0,0,0,0,0,0,-292, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-334,0,0,0,-413,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-522,0,-414,0,-398,-525, + 0,0,0,0,0,-63,0,0,0,0, + 0,0,0,-421,-490,0,-528,0,-533,-534, + 0,0,0,0,0,0,0,-546,-423,0, + 0,0,0,-34,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-537,-432,0,0,0,0,0,0, + 0,0,-335,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,-355,-181, + 0,0,0,0,0,0,0,0,-535,0, + 0,0,-564,-586,0,-593,0,0,-604,0, + 0,-132,0,0,0,0,0,-583,-434,0, + 0,0,0,-538,-435,-436,-536,0,0,-570, + 0,0,0,0,-437,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-438, + -545,0,0,-563,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -407,0,0,0,0,0,0,0,0,0, + 0,0,0,-517,0,0,0,0,0,0, + 0,0,0,0,0,0,-325,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-478,0, + 0,-571,0,0,0,0,0,0,0,-439, + -585,-440,0,0,0,-441,0,0,-589,-442, + -443,0,-444,-445,-446,0,0,0,-447,0, + 0,0,0,-602,0,0,0,0,0,0, + 0,-567,0,-448,-449,0,-450,-591,0,0, + 0,0,0,-326,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-592, + -601,0,0,-451,0,-327,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,-612,-453,0,0,-587,0,-328,0,0, + 0,-454,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-456, + 0,0,-457,-462,0,0,0,-466,0,-329, + 0,0,0,-480,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-479,0,-481,-482,0,-506,0,0,-507, 0,-330,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-390,0,-368,0,0, - 0,0,0,0,0,0,-155,0,0,-242, - 0,-176,0,0,0,0,0,0,0,0, - 0,0,0,0,-470,0,0,0,0,0, - -248,0,0,0,0,0,0,0,0,-23, - 0,0,0,0,0,0,0,-306,0,0, - 0,0,0,0,0,-545,0,-347,-386,0, - 0,0,0,0,0,0,0,0,0,-348, - 0,0,0,0,0,-471,0,0,0,0, - 0,-352,0,-326,0,0,0,-356,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-358, - 0,0,0,0,-8,0,0,-546,0,0, - -360,0,0,-416,0,0,0,0,0,0, - 0,0,0,0,0,0,-369,0,-593,0, - 0,0,-361,-406,0,0,0,0,0,0, - 0,-493,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-393,0, - 0,0,0,0,0,0,0,0,0,-362, - 0,0,-559,-24,0,0,0,-482,0,0, - 0,-391,0,-483,0,0,0,0,0,0, - 0,-410,0,0,0,0,0,0,0,0, - 0,-419,0,0,0,-221,0,0,0,0, - -249,-363,0,-498,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-394,0,-420, - -537,0,0,0,0,-365,0,0,0,0, - 0,0,-244,0,-403,-462,0,0,0,-409, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-426, - -463,-377,-255,0,0,0,0,0,-378,0, - 0,-379,0,0,0,0,0,0,0,0, - 0,-492,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-380,0, - 0,0,0,-584,0,0,0,0,0,0, - 0,0,0,0,-465,-481,0,-517,0,0, - -396,0,0,0,0,-397,0,-281,0,0, - 0,0,0,0,0,0,0,0,0,0, - -327,0,0,0,-404,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-405,-259,-269,-412,0,0,0, - 0,-414,0,-608,0,0,0,-427,0,0, - 0,0,0,0,0,0,-279,0,0,0, - 0,-428,0,0,0,0,0,0,0,-258, - 0,0,0,-429,0,0,0,0,0,0, - 0,0,-521,-430,0,-539,0,0,-431,0, - -554,-384,0,0,0,0,0,0,0,0, - -328,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-548,-432,-433,-434,0,0,0, - 0,-291,0,0,-435,0,-398,0,0,0, - 0,0,0,0,0,0,0,0,0,-34, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-318,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-457,-293,-295,-436, - 0,0,0,0,-376,0,0,0,0,0, - -407,-408,0,0,-575,-437,-438,0,0,0, - 0,0,0,-439,-440,0,0,0,0,0, - 0,0,-587,0,-594,0,0,-441,0,-442, - 0,0,0,-424,0,0,0,0,0,-319, + 0,0,0,-364,0,0,-521,0,-182,0, + 0,-527,0,-530,-540,0,-541,-24,-130,-543, + 0,0,0,0,-547,0,-556,-565,-577,-582, + -595,-596,0,0,0,0,-609,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-605,-466,0,-443,0,0,0,0, - -320,0,0,0,-479,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-530,0,-504,0,0,0,0, - 0,-321,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-444,-445,0,-446,0,0, - 0,0,-322,0,0,0,-513,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-27,0,0,0,-447, - 0,0,0,-323,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-364,-515,-519,-526, - 0,0,0,0,-188,-527,0,0,0,-448, - -451,-538,-528,-529,0,0,-452,-454,-455,0, - -460,-464,-473,-474,-475,-499,-500,0,0,0, - 0,0,-518,0,-453,-28,0,-580,0,0, - 0,0,-523,0,0,-533,-534,0,0,0, - 0,0,0,0,0,0,0,0,-536,0, - 0,0,0,-472,-540,-549,-563,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -456,0,0,-552,0,0,0,0,0,0, - 0,0,0,0,0,-574,0,0,0,-570, - -576,-578,0,0,-589,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-510,-564, - -581,-598,0,0,0,0,-590,-603,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-524,-556,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-512,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-583,0,0,-179,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-551,-585,-586,0,0,0,0,0, + 0,0,0,0,-455,-245,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,-597,-607,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-553,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-210,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-557,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-38,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-596,0,0,0,0,0,0,0, + 0,0,0,0,0,-458,0,-497,-190,0, + -21,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-531,0, - 0,0,0,0,0,0,0,0,-1,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-560,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-601,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-458,0,0,0,0,0,-595,0, - -606,0,0,-579,0,0,0,0,0,0, + 0,0,0,0,0,0,-513,-279,0,0, + 0,-401,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-179, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-531,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-515,-372,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-560,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-555,0, + 0,-410,0,0,-23,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-557, + -94,0,0,0,-424,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-504,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -561,-185,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-600,-475,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-1,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-607,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -78,0,0,0,0,0,0,0,-469,0, + -610,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-91,0,0,0,0,0,0, - 0,-97,0,0,0,-178,0,0,0,0, + 0,0,0,-548,0,0,0,0,0,0, + 0,-173,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-322,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-171,0,0, + 0,-331,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-313,0,0,0,0,0, + 0,-332,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-324,0,0, + 0,-31,0,0,0,-180,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-41, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-49,0,0,0,-244, + 0,0,0,0,0,0,0,0,-98,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-325,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -177,-41,0,0,0,0,0,-31,0,0, - 0,-132,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-98,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-415,0,0,0,0,0,0,0,0, - 0,0,-514,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-156,-118,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-189,-488, - 0,0,0,0,0,0,0,0,0,0, - -49,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-497,0, - 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-614, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-133,-118,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,-191,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-50,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-50,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-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,-193,0,0,0, + 0,0,0,0,0,-408,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, 0,0,-99,0,0,0,0,0,0,0, - -272,0,0,0,0,0,0,0,0,0, + 0,0,0,-283,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-314,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-315, + 0,0,0,0,0,0,0,0,-320,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-316,0,0,0,0,0,0,0, + 0,0,-321,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-317,0,0,0,0, + 0,0,0,0,0,0,-323,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-11,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-70,0,0, + -324,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-11,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -70,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-29, + 0,0,0,-29,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-71,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-72,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,-74,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-75,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-76,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-79,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-115, + 0,0,0,0,0,0,0,0,0,0, + -116,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-153,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-71,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-72,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 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,-74,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-75, + 0,0,0,0,-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,-76,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,-79,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-115,0,0,0,0, - 0,-566,0,0,0,0,-116,0,0,0, + 0,-318,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-319,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,-381,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-411,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,-67,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-151, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-311,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-312,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-353,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-372,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-402, - 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,-68,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, -69,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-253,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,-374,0,0,0,0,0,-493,0, + 0,0,0,0,-532,0,0,0,0,0, + -135,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-130,0,0,0,0,0,0, - 0,0,-209,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-135,0, - 0,0,0,0,0,-425,0,0,0,0, - 0,-486,0,0,0,0,0,0,0,-157, + 0,0,-77,0,0,0,0,0,0,0, + 0,0,0,-143,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-144,0,0,0,0,0,0,-608,0, + 0,0,0,0,0,0,0,-145,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-146,0,0,0, + 0,0,-380,0,0,0,0,0,-289,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-423,0,0,0,0,0,0, - 0,-94,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-138,0, + 0,0,0,0,-194,0,0,0,-252,0, + 0,0,0,0,0,0,0,0,-268,0, + 0,0,0,0,0,0,0,0,-274,0, + 0,0,-510,0,0,0,0,0,0,0, + 0,-551,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-579,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-157,-495,0,0,0,0, + 0,0,-580,0,0,0,0,-213,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-158,0,0,0,0,0,-183,0,0, - 0,0,0,0,0,0,0,0,-307,0, + 0,0,-205,0,0,0,0,0,0,0, + 0,0,0,0,0,-214,0,0,0,0, + 0,-459,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-399,0,0,0,-525, - 0,0,0,0,0,-159,0,-144,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-373, - 0,-145,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-146,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,-138,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-192,0,0, - 0,0,0,0,0,0,-257,0,0,0, - 0,0,0,0,0,0,0,0,0,-263, - 0,0,0,0,0,0,0,0,-350,0, - 0,0,0,-503,0,0,0,-516,0,0, - 0,0,0,0,0,0,0,0,0,-544, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-133,0,0,0,0,-180, - 0,0,-572,0,0,0,0,-211,0,0, - 0,0,-573,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-212,0,0,0,0,0,0,0,-268, - 0,0,0,0,0,0,0,0,0,-392, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-541,0,0, - 0,0,0,0,0,0,0,-461,0,-602, - 0,0,-489,0,-490,0,0,0,0,0, - 0,0,0,0,0,-610,0,0,0,0, + 0,0,0,0,0,-377,0,0,0,-460, + 0,0,0,0,0,0,0,-392,0,0, + 0,0,0,0,-463,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -653,16 +663,7 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,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; @@ -672,7 +673,7 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface BaseAction { public final static char baseAction[] = { - 188,4,125,89,89,31,31,81,81,45, + 188,4,125,89,89,30,30,81,81,45, 45,43,43,188,1,1,15,15,15,15, 15,15,15,16,16,16,14,11,11,6, 6,6,6,6,6,2,73,73,5,5, @@ -682,34 +683,34 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym 150,150,150,126,126,18,18,18,18,18, 18,18,18,18,18,18,18,18,19,19, 189,189,190,190,191,153,153,154,154,151, - 151,155,152,152,20,20,21,21,22,22, - 22,28,28,28,28,29,29,29,30,30, - 30,32,32,32,32,32,33,33,33,34, - 34,36,36,37,37,38,38,39,39,40, + 151,155,152,152,20,20,21,21,23,23, + 23,28,28,28,28,29,29,29,31,31, + 31,32,32,32,32,32,33,33,33,35, + 35,36,36,37,37,38,38,39,39,40, 40,47,47,46,46,46,46,46,46,46, - 46,46,46,46,46,46,44,35,156,156, + 46,46,46,46,46,46,44,34,156,156, 103,103,192,192,96,220,220,74,74,74, 74,74,74,74,74,74,75,75,75,72, - 72,54,54,193,193,76,76,76,110,110, + 72,51,51,193,193,76,76,76,110,110, 194,194,77,77,77,195,195,78,78,78, 78,78,79,79,90,90,90,90,90,90, 90,90,55,55,55,55,55,111,111,109, - 109,56,196,23,23,23,23,53,53,93, + 109,56,196,22,22,22,22,54,54,93, 93,93,93,93,162,162,163,163,163,163, 163,158,158,158,159,159,159,160,160,160, 161,161,161,94,94,94,94,94,95,95, 95,13,13,13,13,13,13,13,13,13, 13,13,104,130,130,130,130,130,130,128, 128,128,164,129,129,197,166,166,165,165, - 132,132,112,84,84,85,86,58,52,167, + 132,132,112,84,84,85,86,58,53,167, 167,59,92,92,168,168,157,157,133,134, - 134,135,71,71,169,169,66,66,66,62, - 62,61,67,67,87,87,69,69,69,64, - 97,97,106,105,105,70,70,63,63,65, - 65,48,107,107,107,99,99,99,100,100, + 134,135,71,71,169,169,66,66,66,63, + 63,62,67,67,87,87,69,69,69,65, + 97,97,106,105,105,70,70,64,64,61, + 61,48,107,107,107,99,99,99,100,100, 101,101,101,102,102,113,113,113,115,115, 114,114,221,221,98,98,199,199,199,199, - 199,137,51,51,171,198,198,138,138,138, + 199,137,52,52,171,198,198,138,138,138, 138,139,173,200,200,42,42,127,140,140, 140,140,202,117,116,116,131,131,131,174, 175,175,175,175,175,175,175,175,175,175, @@ -730,656 +731,657 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym 184,26,26,215,215,185,185,185,27,60, 216,216,217,217,186,186,186,146,146,146, 18,18,18,18,32,32,40,16,75,218, - 147,187,187,187,23,57,93,135,135,135, - 119,119,119,197,202,117,64,71,164,13, - 13,23,1545,35,3200,3188,1316,5889,27,30, - 31,776,748,26,28,3212,25,23,50,1600, - 106,76,77,108,2196,3230,586,533,534,535, - 2246,2225,2262,1270,2248,2345,2336,2853,2396,2352, - 2458,2528,143,1273,272,1399,35,292,158,144, - 1885,35,3522,32,5642,4793,27,30,31,776, - 748,337,28,77,2919,1687,35,278,1336,1182, - 1487,163,231,2744,536,533,534,535,2144,35, - 993,32,169,4572,27,30,31,776,748,337, - 28,3254,3478,1399,3078,234,229,230,1956,156, - 2846,2536,537,533,534,535,273,977,2265,255, - 2553,317,1160,319,1682,3010,312,756,2166,330, - 1896,1183,264,2846,1227,292,815,2274,3803,241, - 244,247,250,727,537,533,534,535,1491,317, - 1160,319,1542,2056,597,756,552,4402,1898,581, - 1593,536,533,534,535,388,1610,2542,2642,425, - 1178,2973,3063,3314,4578,901,1250,359,710,4642, - 417,3517,3253,35,993,32,2273,5867,27,30, - 31,776,748,57,28,1399,1745,1738,34,3906, - 2736,35,993,32,2744,1734,27,30,31,776, - 748,26,28,1567,25,23,50,1600,106,76, - 77,108,2196,341,164,725,2053,3116,2246,2225, - 2262,1336,2248,2345,2336,287,2396,2352,2458,2528, - 143,1399,35,5992,5958,1543,515,144,3346,3315, - 35,993,32,322,5867,27,30,31,776,748, - 56,28,160,3332,3407,516,2736,35,993,32, - 2744,1734,27,30,31,776,748,26,28,1567, - 25,23,50,1600,106,76,77,108,2196,341, - 88,1479,2374,102,2246,2225,2262,1107,2248,2345, - 2336,1686,2396,2352,2458,2528,143,1399,35,281, - 553,1918,515,144,3346,537,533,534,535,2332, - 35,993,32,511,238,41,30,31,776,748, - 3413,516,61,1399,3386,586,533,534,535,1377, - 1133,2177,1399,3892,2635,2604,2736,35,993,32, - 2744,1734,27,30,31,776,748,26,28,1567, - 25,23,50,1600,106,76,77,108,2196,341, - 1720,35,276,3558,2246,2225,2262,2744,2248,2345, - 2336,231,2396,2352,2458,2528,143,2164,520,511, - 221,3383,515,144,3346,2711,3478,379,2053,60, - 2008,3078,445,2706,239,229,230,2881,540,2026, - 2635,516,3084,35,993,32,2744,1734,27,30, - 31,776,748,26,28,1567,25,23,50,1600, - 106,76,77,108,2196,341,1661,2460,565,2405, - 2246,2225,2262,1517,2248,2345,2336,2720,2396,2352, - 2458,2528,143,1399,35,738,386,2882,515,144, - 3346,537,533,534,535,2853,991,154,182,511, - 2744,503,4701,2168,35,993,32,516,2118,27, - 30,31,776,748,59,28,1880,2943,539,341, - 2635,3152,35,993,32,450,1734,27,30,31, - 776,748,26,28,1567,25,23,50,1600,106, - 76,77,108,2196,1428,501,502,154,3082,2246, - 2225,2262,4789,2248,2345,2336,350,2396,2352,2458, - 2528,143,286,899,2440,512,496,377,144,2814, - 35,993,32,3010,1734,27,30,31,776,748, - 26,28,1567,25,23,50,1600,106,76,77, - 108,2196,1399,35,292,3058,3178,2246,2225,2262, - 2458,2248,2345,2336,551,2396,2352,2458,2528,143, - 541,2026,2440,389,2947,377,144,425,1307,3708, - 35,993,32,3897,1734,27,30,31,776,748, - 26,28,1567,25,23,50,1600,106,76,77, - 108,2196,586,533,534,535,261,2246,2225,2262, - 3028,2248,2345,2336,71,2396,2352,3880,1336,383, - 2844,1436,1543,2887,35,993,32,1380,1734,27, - 30,31,776,748,26,28,1567,25,23,50, - 1600,106,76,77,108,2196,3025,323,231,156, - 71,2246,2225,2262,4675,2248,2345,2336,2244,2396, - 2352,2458,2528,143,3274,1793,2440,384,2844,377, - 144,243,229,230,310,1107,2643,3016,35,993, - 32,3371,1734,27,30,31,776,748,26,28, - 1567,25,23,50,1600,106,76,77,108,2196, - 537,533,534,535,2984,2246,2225,2262,3373,2248, - 2345,2336,1056,2396,2352,2458,2528,143,554,2426, - 35,993,32,549,144,2583,30,31,776,748, - 436,246,537,533,534,535,3285,35,993,32, - 3078,1734,27,30,31,776,748,26,28,1567, - 25,23,50,1600,106,76,77,108,2196,1805, - 715,375,2844,2981,2246,2225,2262,1793,2248,2345, - 2336,320,2396,2352,2458,2528,143,1783,35,1860, - 5945,3014,158,144,3285,35,993,32,419,1734, - 27,30,31,776,748,26,28,1567,25,23, - 50,1600,106,76,77,108,2196,562,1399,35, - 1738,275,2246,2225,2262,3191,2248,2345,2336,49, - 2396,2352,2458,2528,143,1527,1331,831,2606,3248, - 371,144,2816,3436,3285,35,993,32,1889,1734, - 27,30,31,776,748,26,28,1567,25,23, - 50,1600,106,76,77,108,2196,537,533,534, - 535,547,2246,2225,2262,71,2248,2345,2336,5544, - 2396,2352,2458,2528,143,3290,2426,35,993,32, - 371,144,40,30,31,776,748,1399,35,738, - 386,3682,2642,4582,3285,35,993,32,1476,1734, - 27,30,31,776,748,26,28,1567,25,23, - 50,1600,106,76,77,108,2196,1399,35,1738, - 277,370,2246,2225,2262,3414,2248,2345,2336,49, - 2396,2352,2458,2528,143,3113,1331,960,3078,1336, - 371,144,2255,2255,3016,35,993,32,1476,1734, - 27,30,31,776,748,26,28,1567,25,23, - 50,1600,106,76,77,108,2196,721,2356,495, - 156,369,2246,2225,2262,663,2248,2345,2336,3840, - 2396,2352,2458,2528,143,1465,2008,1687,35,451, - 549,144,5880,1399,35,3894,3225,35,993,32, - 4118,1734,27,30,31,776,748,26,28,1567, - 25,23,50,1600,106,76,77,108,2196,93, - 1399,35,738,386,2246,2225,2262,354,2248,2345, - 2336,367,2396,2352,2458,2858,164,2948,35,993, - 32,2483,1734,27,30,31,776,748,26,28, - 1567,25,23,50,1600,106,76,77,108,2196, - 3808,3834,272,3556,725,2246,2225,2262,71,2248, - 2345,2336,790,2396,2352,2458,2528,143,1399,35, - 738,386,62,142,144,325,154,537,533,534, - 535,5569,2245,3285,35,993,32,2720,1734,27, - 30,31,776,748,26,28,1567,25,23,50, - 1600,106,76,77,108,2196,42,2641,2272,2373, - 272,2246,2225,2262,274,2248,2345,2336,548,2396, - 2352,2458,2528,143,1964,35,738,386,3474,155, - 144,3285,35,993,32,1289,1734,27,30,31, - 776,748,26,28,1567,25,23,50,1600,106, - 76,77,108,2196,71,444,2748,2812,1664,2246, - 2225,2262,807,2248,2345,2336,49,2396,2352,2458, - 2528,143,338,1331,1475,521,458,154,144,3285, - 35,993,32,814,1734,27,30,31,776,748, - 26,28,1567,25,23,50,1600,106,76,77, - 108,2196,813,3407,1783,35,394,2246,2225,2262, - 71,2248,2345,2336,856,2396,2352,2458,2528,143, - 1399,35,738,386,2761,153,144,3285,35,993, - 32,445,1734,27,30,31,776,748,26,28, - 1567,25,23,50,1600,106,76,77,108,2196, - 2552,1783,35,394,1910,2246,2225,2262,5688,2248, - 2345,2336,49,2396,2352,2458,2528,143,71,1331, - 625,1417,936,152,144,3285,35,993,32,3112, - 1734,27,30,31,776,748,26,28,1567,25, - 23,50,1600,106,76,77,108,2196,1399,35, - 1738,280,71,2246,2225,2262,2337,2248,2345,2336, - 2624,2396,2352,2458,2528,143,1399,35,738,386, - 3495,151,144,3285,35,993,32,520,1734,27, - 30,31,776,748,26,28,1567,25,23,50, - 1600,106,76,77,108,2196,1399,35,1738,3893, - 71,2246,2225,2262,3875,2248,2345,2336,49,2396, - 2352,2458,2528,143,71,1331,6000,3514,4689,150, - 144,3285,35,993,32,2634,1734,27,30,31, - 776,748,26,28,1567,25,23,50,1600,106, - 76,77,108,2196,1399,3916,1738,74,71,2246, - 2225,2262,4764,2248,2345,2336,623,2396,2352,2458, - 2528,143,1399,35,738,386,905,149,144,3285, - 35,993,32,2720,1734,27,30,31,776,748, - 26,28,1567,25,23,50,1600,106,76,77, - 108,2196,2154,35,1738,3917,71,2246,2225,2262, - 990,2248,2345,2336,49,2396,2352,2458,2528,143, - 71,1331,2772,441,637,148,144,3285,35,993, - 32,3078,1734,27,30,31,776,748,26,28, - 1567,25,23,50,1600,106,76,77,108,2196, - 2154,35,1738,275,71,2246,2225,2262,1055,2248, - 2345,2336,558,2396,2352,2458,2528,143,1399,35, - 738,386,457,147,144,3285,35,993,32,2720, - 1734,27,30,31,776,748,26,28,1567,25, - 23,50,1600,106,76,77,108,2196,1399,35, - 1738,3971,71,2246,2225,2262,2543,2248,2345,2336, - 49,2396,2352,2458,2528,143,3078,1331,1475,909, - 3534,146,144,3285,35,993,32,817,1734,27, - 30,31,776,748,26,28,1567,25,23,50, - 1600,106,76,77,108,2196,1267,577,1783,35, - 394,2246,2225,2262,2348,2248,2345,2336,5227,2396, - 2352,2458,2528,143,1399,35,738,386,5408,145, - 144,3285,35,993,32,1268,1734,27,30,31, - 776,748,26,28,1567,25,23,50,1600,106, - 76,77,108,2196,2720,2720,347,1974,2742,2246, - 2225,2262,3318,2248,2345,2336,49,2396,2352,2458, - 2528,143,1415,1331,2545,3078,2853,159,144,3708, - 35,993,32,2722,1734,27,30,31,776,748, - 26,28,1567,25,23,50,1600,106,76,77, - 108,2196,2846,35,292,154,24,2246,2225,2262, - 5837,2248,2345,2336,2722,2396,2352,2458,2858,164, - 3285,35,993,32,3998,1734,27,30,31,776, - 748,26,28,1567,25,23,50,1600,106,76, - 77,108,2196,51,324,1250,66,3440,2246,2225, - 2262,2744,2248,2345,2336,2774,2396,2352,2458,2528, - 143,3116,1276,154,296,1336,576,144,1830,2255, - 3478,3285,35,993,32,3889,1734,27,30,31, - 776,748,26,28,1567,25,23,50,1600,106, - 76,77,108,2196,391,387,160,154,425,2246, - 2225,2262,5858,2248,2345,2336,522,2396,2352,2458, - 2528,143,977,728,1543,3890,3913,140,144,3408, - 35,993,32,3465,1734,27,30,31,776,748, - 26,28,1567,25,23,50,1600,106,76,77, - 108,2196,1720,35,279,358,3668,2246,2225,2262, - 71,2248,2345,2336,3126,2396,2352,2458,2528,143, - 3537,3006,3026,71,3515,189,144,3299,434,3118, - 3708,35,993,32,5910,1734,27,30,31,776, - 748,26,28,1567,25,23,50,1600,106,76, - 77,108,2196,1399,35,738,386,3888,2246,2225, - 2262,71,2248,2345,2336,1336,2396,2352,2458,2858, - 164,3708,35,993,32,1908,1734,27,30,31, - 776,748,26,28,1567,25,23,50,1600,106, - 76,77,108,2196,4167,49,3516,2720,2064,2246, - 2225,2262,46,2248,2345,2336,2255,2396,2352,2458, - 2858,164,2604,2008,3078,3593,35,276,537,533, - 534,535,3708,35,993,32,421,1734,27,30, - 31,776,748,26,28,1567,25,23,50,1600, - 106,76,77,108,2196,1399,35,738,386,2152, - 2246,2225,2262,2604,2248,2345,2336,301,2396,2352, - 2458,2858,164,3708,35,993,32,291,1734,27, - 30,31,776,748,26,28,1567,25,23,50, - 1600,106,76,77,108,2196,97,429,2148,2536, - 1436,2246,2225,2262,2604,2248,2345,2336,298,2396, - 2352,2458,2858,164,3948,998,3048,1399,35,738, - 386,614,1090,1001,3708,35,993,32,420,1734, - 27,30,31,776,748,26,28,1567,25,23, - 50,1600,106,76,77,108,2196,556,1093,559, - 1593,3676,2246,2225,2262,286,2248,2345,2336,432, - 2396,2352,2458,2858,164,3828,35,993,32,423, - 1734,27,30,31,776,748,26,28,1567,25, - 23,50,1600,106,76,77,108,2196,3370,3178, - 1181,2255,2804,2246,2225,2262,402,2248,2345,2336, - 1185,2396,2352,2458,2858,164,1657,35,993,32, - 5642,4793,27,30,31,776,748,337,28,3736, - 579,2536,2255,602,4013,35,738,386,1274,3836, - 536,533,534,535,977,321,3736,236,521,2919, - 1336,2255,3468,602,529,374,1793,4625,586,533, - 534,535,3290,3116,156,1,71,1336,3078,602, - 2266,3454,341,3080,180,977,272,317,1160,319, - 1682,156,312,756,156,330,523,4394,227,351, - 3411,200,977,2265,977,3320,563,3346,160,573, - 156,195,997,2166,231,374,4154,3444,977,3080, - 180,1926,3437,4402,2778,2255,203,215,3011,169, - 202,212,213,214,216,585,2536,234,229,230, - 536,533,534,535,2255,3390,2709,168,273,184, - 167,170,171,172,173,174,181,1276,3751,304, - 308,1076,1687,35,278,706,71,2214,977,2722, - 1336,241,244,247,250,727,3755,354,1476,522, - 1682,2065,372,935,1542,5750,529,3322,71,3440, - 1476,581,2977,2744,1627,2483,3922,1399,35,738, - 386,3675,1178,2973,3063,3314,4578,901,3708,35, - 993,32,3478,1734,27,30,31,776,748,26, - 28,1567,25,23,50,1600,106,76,77,108, - 2196,3906,3189,352,5898,196,2246,2225,2262,431, - 2248,2345,2336,2550,2396,3806,3708,35,993,32, - 302,1734,27,30,31,776,748,26,28,1567, - 25,23,50,1600,106,76,77,108,2196,94, - 44,2641,353,1435,2246,2225,2262,2853,2248,2345, - 2336,529,3746,2539,35,993,32,358,4793,27, - 30,31,776,748,337,28,3078,586,533,534, - 535,348,3936,3006,3026,2722,1083,536,533,534, - 535,1302,35,993,32,2726,4572,27,30,31, - 776,748,337,28,678,71,1692,571,164,2252, - 2234,35,993,32,5642,4572,27,30,31,776, - 748,337,28,231,317,1160,319,1682,89,313, - 756,102,331,348,536,533,534,535,2722,1800, - 35,451,1884,1678,5880,3560,246,229,230,3078, - 350,4801,314,1116,319,2809,2137,1175,2246,5576, - 2604,5894,344,2846,2712,347,295,586,533,534, - 535,317,1160,319,71,390,312,756,1336,425, - 87,4394,3708,35,993,32,349,1734,27,30, - 31,776,748,26,28,1567,25,23,50,1600, - 106,76,77,108,2196,179,2722,70,2604,156, - 2246,2225,2262,231,2248,2345,3805,71,3870,283, - 3078,602,1807,35,993,32,5642,4572,27,30, - 31,776,748,337,28,71,249,229,230,1336, - 341,3078,350,304,308,1076,536,533,534,535, - 1351,5386,156,198,342,2846,2712,347,1803,71, - 722,3351,3714,4801,2459,3346,154,3908,3907,71, - 156,5953,69,854,536,533,534,535,1627,3876, - 2012,378,3161,317,1160,319,71,380,312,756, - 1336,881,1086,4394,3708,35,993,32,3144,1734, - 27,30,31,776,748,26,28,1567,25,23, - 50,1600,106,76,77,108,2196,448,2748,2812, - 3150,156,2246,2225,2262,2097,2248,3695,154,2744, - 3883,93,428,5963,2066,35,3522,32,5642,4572, - 27,30,31,776,748,337,28,2604,227,1399, - 35,738,386,2849,2604,305,308,1076,3896,533, - 534,535,1370,35,3522,32,5642,4572,27,30, - 31,776,748,337,28,3354,205,215,3011,1690, - 204,212,213,214,216,585,536,533,534,535, - 2875,430,197,3741,1791,317,1160,319,1690,297, - 312,756,71,3354,3653,1183,1081,206,208,210, - 293,294,2732,633,2295,517,207,209,586,533, - 534,535,2137,317,1160,319,3044,5894,312,756, - 5699,3078,3213,1183,1694,35,3522,32,5642,4572, - 27,30,31,776,748,337,28,700,71,3318, - 2722,3184,3324,4729,417,3517,3497,400,3896,533, - 534,535,68,277,231,71,2604,602,3318,4690, - 2426,35,993,32,3318,3354,3432,30,31,776, - 748,6028,417,3517,326,333,227,252,229,230, - 71,2604,3504,3078,2889,317,1160,319,156,3677, - 312,756,3737,332,333,1183,977,3080,180,3566, - 333,201,2604,350,203,215,3011,169,202,212, - 213,214,216,585,53,342,2846,2712,347,3742, - 2459,284,814,340,2720,168,199,183,167,170, - 171,172,173,174,2896,71,71,3913,71,1813, - 3882,3296,3030,4729,417,3517,3889,404,2260,35, - 993,32,5746,4572,27,30,31,776,748,337, - 28,3708,35,993,32,3892,1734,27,30,31, - 776,748,26,28,1567,25,23,50,1600,106, - 76,77,108,2196,3895,3078,3078,3374,427,2246, - 2225,2262,2368,3708,2797,35,993,32,439,2118, - 27,30,31,776,748,26,28,3078,509,317, - 1160,319,531,98,312,756,52,376,3897,3476, - 2168,35,993,32,2232,2118,27,30,31,776, - 748,58,28,71,2257,350,71,3313,3368,3050, - 2619,2604,2025,35,738,386,2775,342,2846,2712, - 347,3708,35,993,32,3471,1734,27,30,31, - 776,748,26,28,1567,25,23,50,1600,106, - 76,77,108,2196,71,2080,2230,2369,3966,2246, - 2225,2262,3078,3710,272,2526,4324,2699,35,993, - 32,5582,4572,27,30,31,776,748,337,28, - 1430,35,993,32,5642,4572,27,30,31,776, - 748,337,28,568,3708,35,993,32,349,1734, - 27,30,31,776,748,26,28,1567,25,23, - 50,1600,106,76,77,108,2196,71,3078,3078, - 2602,602,2246,2225,3605,3078,3895,364,317,1160, - 319,3078,3985,312,756,71,2983,2883,1340,4319, - 341,317,1160,319,3013,3800,312,756,72,538, - 557,1340,156,3860,350,71,90,4284,3080,2741, - 4119,188,569,543,3078,4653,342,2846,2712,347, - 3708,35,993,32,3714,1734,27,30,31,776, - 748,26,28,1567,25,23,50,1600,106,76, - 77,108,2196,71,3078,348,802,2836,2246,2225, - 3606,3708,35,993,32,3078,1734,27,30,31, - 776,748,26,28,1567,25,23,50,1600,106, - 76,77,108,2196,3116,3563,3078,3817,1336,2246, - 2225,3607,3708,35,993,32,449,1734,27,30, - 31,776,748,26,28,1567,25,23,50,1600, - 106,76,77,108,2196,710,1930,3604,3833,160, - 2246,2225,3615,3708,35,993,32,3078,1734,27, - 30,31,776,748,26,28,1567,25,23,50, - 1600,106,76,77,108,2196,1347,35,738,386, - 3857,2246,2225,3670,3708,35,993,32,4073,1734, - 27,30,31,776,748,26,28,1567,25,23, - 50,1600,106,76,77,108,2196,369,3078,3078, - 3078,602,2246,2225,3686,3558,3078,3937,49,2744, - 526,4105,1690,3078,3078,1331,1304,185,3899,3117, - 227,2446,3920,3743,3798,3214,2632,2621,3478,4119, - 4157,67,156,3799,1620,461,2056,66,2604,602, - 977,3080,180,3557,65,64,3797,3655,203,215, - 3011,169,202,212,213,214,216,585,227,3861, - 586,533,534,535,71,3182,3078,3078,1336,168, - 156,3891,167,170,171,172,173,174,977,3080, - 180,553,3318,222,3921,602,203,215,3011,169, - 202,212,213,214,216,585,3653,3685,55,156, - 3413,3863,2138,503,227,3893,231,168,3884,178, - 167,170,171,172,173,174,156,328,333,645, - 3078,3078,2604,602,977,3080,180,3923,3975,583, - 229,230,203,215,3011,169,202,212,213,214, - 216,585,227,7073,7073,71,71,500,502,1336, - 1336,54,3992,168,156,176,167,170,171,172, - 173,174,977,3080,180,737,3318,193,7073,602, - 203,215,3011,169,202,212,213,214,216,585, - 156,156,7073,7073,3078,7073,3062,3215,227,2527, - 3991,168,7073,578,167,170,171,172,173,174, - 156,3705,333,829,3078,3078,7073,602,977,3080, - 180,536,533,534,535,101,203,215,3011,169, - 202,212,213,214,216,585,227,7073,1276,7073, - 7073,7073,7073,3078,4168,2742,2825,168,156,177, - 167,170,171,172,173,174,977,3080,180,921, - 7073,327,7073,602,203,215,3011,169,202,212, - 213,214,216,585,4321,527,1726,7073,7073,7073, - 2744,2022,227,7073,7073,168,7073,187,167,170, - 171,172,173,174,156,7073,7073,1013,7073,227, - 7073,602,977,3080,180,7073,7073,7073,7073,7073, - 203,215,3011,169,202,212,213,214,216,585, - 227,7073,3888,7073,7073,7073,2744,2671,405,5553, - 7073,168,156,3972,167,170,171,172,173,174, - 977,3080,180,1105,7073,341,7073,602,203,215, - 3011,169,202,212,213,214,216,585,406,407, - 408,293,294,7073,633,7073,227,7073,7073,168, - 1864,192,167,170,171,172,173,174,156,3116, - 7073,7073,7073,1336,2169,7073,977,3080,180,1968, - 7073,7073,7073,2744,203,215,3011,169,202,212, - 213,214,216,585,3116,7073,7073,7073,1336,7073, - 7073,7073,227,7073,160,168,7073,186,167,170, - 171,172,173,174,2726,35,993,32,5746,4572, - 27,30,31,776,748,337,28,7073,7073,160, - 205,215,3011,7073,204,212,213,214,216,585, - 409,412,7073,71,7073,7073,7073,602,7073,3653, - 7073,1197,7073,7073,3856,602,7073,7073,1336,7073, - 7073,206,208,210,293,294,341,633,7073,217, - 207,209,3990,7073,227,317,1160,319,156,7073, - 312,756,7073,7073,7073,524,156,188,13,156, - 4969,4653,7073,7073,977,3080,180,4054,162,7073, - 7073,350,203,215,3011,169,202,212,213,214, - 216,585,7073,342,2846,2712,347,7073,7073,3318, - 440,525,454,168,1921,194,167,170,171,172, - 173,174,1498,35,993,32,2915,4793,27,30, - 31,776,748,337,28,7073,7073,7073,536,533, - 534,535,7073,3868,3743,333,536,533,534,535, - 536,533,534,535,7073,1027,7073,606,7073,7073, - 7073,7073,7073,1276,7073,7073,7073,1276,1498,35, - 993,32,7073,4793,27,30,31,776,748,337, - 28,7073,7073,317,1160,319,1682,7073,315,756, - 2865,331,536,533,534,535,7073,7073,7073,1476, - 7073,7073,7073,7073,7073,3708,35,993,32,678, - 1734,27,30,31,776,748,26,28,1567,25, - 23,50,1600,106,76,77,108,2196,7073,317, - 1160,319,1682,3528,313,756,4103,331,3708,35, - 993,32,7073,1734,27,30,31,776,748,26, - 28,1567,25,23,50,1600,106,76,77,108, - 2196,7073,7073,7073,7073,7073,2246,3687,3708,35, - 993,32,7073,1734,27,30,31,776,748,26, - 28,1567,25,23,50,1600,106,76,77,108, - 2196,2980,1347,35,738,386,2246,3694,4065,35, - 738,386,2052,3836,7073,7073,7073,7073,7073,7073, - 7073,237,7073,7073,7073,536,533,534,535,7073, - 7073,7073,586,533,534,535,536,533,534,535, - 7073,7073,1433,7073,49,7073,7073,7073,7073,7073, - 272,1331,1425,1308,7073,1770,35,993,32,5642, - 4572,27,30,31,776,748,337,28,7073,7073, - 1678,7073,3496,7073,7073,7073,7073,7073,231,537, - 533,534,535,2764,35,993,32,5642,4572,27, - 30,31,776,748,337,28,536,533,534,535, - 7073,235,229,230,71,2190,7073,7073,2744,2744, - 7073,7073,273,1663,7073,7073,317,1160,319,2283, - 3678,312,756,2744,2744,7073,4571,341,227,2070, - 7073,1475,35,738,386,242,245,248,251,727, - 7073,7073,227,3478,317,1160,319,7073,1542,312, - 756,7073,3346,7073,3954,582,205,215,3011,3559, - 204,212,213,214,216,585,7073,7073,7073,2643, - 205,215,3011,49,204,212,213,214,216,585, - 1331,47,7073,536,533,534,535,206,208,210, - 293,294,7073,633,2376,217,207,209,2744,645, - 2524,206,208,210,293,294,7073,633,7073,217, - 207,209,7073,7073,2273,7073,4969,227,503,1670, - 35,738,386,1347,35,738,386,7073,2869,7073, - 4969,1807,35,993,32,5642,4572,27,30,31, - 776,748,337,28,7073,205,215,3011,7073,204, - 212,213,214,216,585,537,533,534,535,7073, - 7073,49,500,502,7073,49,7073,7073,1331,47, - 7073,7073,1331,4406,7073,7073,206,208,210,293, - 294,7073,633,7073,217,207,209,1319,7073,7073, - 7073,1678,317,1160,319,7073,7073,312,756,7073, - 7073,3935,4571,3005,7073,4969,3708,35,993,32, - 7073,1734,27,30,31,776,748,26,28,1567, - 25,23,50,1600,106,76,77,108,2196,7073, - 3708,35,993,32,3542,1734,27,30,31,776, - 748,26,28,1567,25,23,50,1600,106,76, - 77,108,3554,3708,35,993,32,7073,1734,27, - 30,31,776,748,26,28,1567,25,23,50, - 1600,106,76,77,108,3564,3708,35,993,32, - 7073,1734,27,30,31,776,748,26,28,1567, - 25,23,50,1600,106,76,77,108,3569,1839, - 7073,7073,7073,2744,7073,7073,7073,7073,7073,7073, - 7073,7073,7073,7073,7073,7073,7073,7073,3708,35, - 993,32,227,1734,27,30,31,776,748,26, - 28,1567,25,23,50,1600,106,76,77,85, - 7073,7073,7073,7073,7073,7073,7073,7073,7073,7073, - 205,215,3011,7073,204,212,213,214,216,585, - 3468,35,993,32,7073,1734,27,30,31,776, - 748,26,28,1567,25,23,50,1600,580,76, - 77,206,208,210,293,294,7073,633,7073,218, - 207,209,3708,35,993,32,7073,1734,27,30, - 31,776,748,26,28,1567,25,23,50,1600, - 106,76,77,83,3708,35,993,32,7073,1734, - 27,30,31,776,748,26,28,1567,25,23, - 50,1600,106,76,77,82,3708,35,993,32, - 7073,1734,27,30,31,776,748,26,28,1567, - 25,23,50,1600,106,76,77,81,3708,35, - 993,32,7073,1734,27,30,31,776,748,26, - 28,1567,25,23,50,1600,106,76,77,80, - 3708,35,993,32,7073,1734,27,30,31,776, - 748,26,28,1567,25,23,50,1600,106,76, - 77,79,3708,35,993,32,7073,1734,27,30, - 31,776,748,26,28,1567,25,23,50,1600, - 106,76,77,78,3708,1745,993,1881,7073,1734, - 27,30,31,776,748,26,28,1567,25,23, - 50,1600,106,76,77,84,2469,7073,7073,7073, - 2744,7073,2534,7073,7073,7073,2744,2562,7073,7073, - 7073,2744,7073,7073,7073,7073,7073,7073,7073,227, - 7073,7073,7073,7073,7073,341,3528,35,993,32, - 227,1734,27,30,31,776,748,26,28,1567, - 25,23,50,1600,572,76,77,205,215,3011, - 3703,204,212,213,214,216,585,7073,205,215, - 3011,7073,204,212,213,214,216,585,7073,7073, - 7073,7073,7073,7073,7073,7073,7073,7073,206,208, - 210,293,294,7073,633,7073,518,207,209,206, - 208,210,293,294,7073,633,7073,303,207,209, - 3345,35,993,32,7073,1734,27,30,31,776, - 748,26,28,1567,25,23,50,1600,106,76, - 77,104,3708,35,993,32,7073,1734,27,30, - 31,776,748,26,28,1567,25,23,50,1600, - 106,76,77,110,3708,35,993,32,7073,1734, - 27,30,31,776,748,26,28,1567,25,23, - 50,1600,106,76,77,109,3708,35,993,32, - 7073,1734,27,30,31,776,748,26,28,1567, - 25,23,50,1600,106,76,77,107,3708,35, - 993,32,7073,1734,27,30,31,776,748,26, - 28,1567,25,23,50,1600,106,76,77,105, - 2655,7073,7073,4075,2744,7073,7073,7073,7073,7073, - 7073,7073,7073,7073,7073,7073,7073,7073,7073,3588, - 35,993,32,227,1734,27,30,31,776,748, - 26,28,1567,25,23,50,1600,570,76,77, - 7073,7073,7073,7073,7073,7073,7073,7073,7073,7073, - 7073,205,215,3011,7073,204,212,213,214,216, - 585,3648,35,993,32,7073,1734,27,30,31, - 776,748,26,28,1567,25,23,50,1600,86, - 76,77,206,208,210,293,294,7073,633,7073, - 497,207,209,3768,35,993,32,7073,1734,27, - 30,31,776,748,26,28,1567,25,23,50, - 1600,3881,76,77,1613,7073,7073,7073,2744,2022, - 7073,7073,7073,2421,35,993,32,650,4572,27, - 30,31,776,748,337,28,7073,227,7073,1670, - 35,738,386,7073,7073,7073,2360,7073,7073,7073, - 2744,1926,2360,7073,7073,7073,2744,1926,7073,7073, - 71,7073,7073,7073,2744,2671,405,5553,401,3478, - 536,533,534,535,7073,3478,536,533,534,535, - 7073,49,7073,341,314,1116,319,1276,1331,47, - 7073,7073,7073,1276,7073,7073,406,407,408,293, - 294,7073,633,7073,2447,7073,7073,2432,3346,1926, - 1682,7073,4154,7073,7073,330,1682,1926,7073,7073, - 7073,330,2169,7073,7073,2668,7073,7073,536,533, - 534,535,7073,7073,7073,7073,536,533,534,535, - 7073,7073,7073,5634,358,1276,7073,7073,7073,2983, - 358,7073,71,1276,7073,7073,2744,7073,4154,3776, - 3006,3026,7073,1926,7073,3776,3006,3026,1682,4154, - 7073,7073,7073,331,1926,341,1682,7073,7073,7073, - 7073,330,536,533,534,535,7073,7073,409,411, - 7073,350,722,536,533,534,535,7073,7073,1276, - 3346,7073,7073,344,2846,2712,347,7073,7073,4448, - 1276,7073,7073,7073,7073,2304,4154,2710,4136,7073, - 4145,1926,1682,7073,7073,1926,71,330,2919,7073, - 2744,7073,602,1682,7073,7073,7073,7073,330,7073, - 536,533,534,535,536,533,534,535,7073,341, - 71,341,2919,7073,2744,5824,602,1276,7073,7073, - 7073,1276,7073,156,7073,7073,5634,7073,7073,7073, - 7073,977,2265,341,3346,341,3346,7073,7073,2919, - 1682,7073,2166,602,1682,330,7073,156,7073,5750, - 7073,2720,7073,2996,2509,977,2265,7073,3346,1926, - 3346,7073,341,7073,7073,7073,2166,1347,35,738, - 386,7073,7073,2983,156,3744,7073,3069,536,533, - 534,535,977,2265,7073,7073,7073,3346,1831,35, - 738,386,7073,2166,7073,1276,7073,1670,35,738, - 386,7073,7073,7073,3140,7073,7073,7073,7073,49, - 1347,35,738,386,7073,7073,1331,47,1682,2977, - 35,738,386,331,1347,35,738,386,3796,7073, - 49,7073,602,96,7073,897,7073,1331,47,49, - 1347,35,738,386,7073,7073,1331,2805,7073,7073, - 7073,341,49,7073,7073,7073,1152,7073,7073,1331, - 47,49,7073,156,7073,3572,49,7073,1331,2817, - 7073,7073,188,1331,47,2518,4653,7073,1043,7073, - 3215,7073,49,1347,35,738,386,1620,2052,1331, - 47,7073,2575,1347,35,738,386,7073,7073,536, - 533,534,535,7073,536,533,534,535,2637,7073, - 7073,7073,536,533,534,535,1308,7073,7073,7073, - 7073,1276,2646,7073,7073,49,7073,7073,7073,1308, - 3377,7073,1331,47,7073,49,7073,7073,190,7073, - 3215,7073,1331,47,2453,7073,536,533,534,535, - 7073,2897,7073,7073,536,533,534,535,3616,7073, - 7073,3269,7073,1308,536,533,534,535,71,7073, - 4053,1276,602,71,2744,71,7073,2744,7073,2744, - 7073,1276,536,533,534,535,71,7073,7073,7073, - 2744,341,2104,341,2865,7073,341,7073,341,1663, - 7073,528,7073,156,3466,2776,7073,7073,7073,341, - 7073,7073,188,7073,7073,7073,4653,7073,3346,7073, - 7073,3346,3571,3346,7073,7073,7073,7073,7073,7073, - 7073,7073,7073,7073,3346,531,7073,7073,507,2888, - 505,7073,7073,7073,7073,7073,7073,7073,7073,7073, - 7073,532,7073,7073,7073,7073,7073,7073,7073,7073, - 7073,7073,7073,7073,7073,7073,7073,7073,7073,7073, - 7073,7073,7073,7073,7073,7073,7073,7073,3869,7073, - 7073,7073,7073,7073,7073,7073,7073,7073,7073,7073, - 7073,7073,7073,7073,7073,7073,7073,7073,7073,7073, - 7073,7073,7073,7073,7073,7073,7073,7073,7073,7073, - 7073,7073,7073,7073,7073,7073,7073,7073,7073,7073, - 7073,7073,7073,7073,7073,7073,7073,7073,7073,7073, - 7073,7073,7073,7073,7073,7073,7073,7073,7073,7073, - 7073,7073,7073,7073,7073,7073,7073,7073,7073,7073, - 7073,7073,7073,7073,7073,7073,7073,7073,7073,7073, - 7073,7073,7073,7073,7073,7073,7073,7073,7073,7073, - 7073,7073,7073,7073,7073,7073,7073,7073,7073,7073, - 7073,7073,4104,7073,0,1,228,1359,0,499, - 3245,0,1,228,0,39,7088,0,39,7087, - 0,1,3630,0,909,1,0,39,1,7088, - 0,39,1,7087,0,1,4182,0,1,785, - 0,228,219,0,7306,223,0,7305,223,0, - 671,223,0,682,223,0,709,223,0,7409, - 223,0,7408,223,0,7333,223,0,7332,223, - 0,7331,223,0,7330,223,0,7329,223,0, - 7328,223,0,7327,223,0,7326,223,0,7306, - 224,0,7305,224,0,671,224,0,682,224, - 0,709,224,0,7409,224,0,7408,224,0, - 7333,224,0,7332,224,0,7331,224,0,7330, - 224,0,7329,224,0,7328,224,0,7327,224, - 0,7326,224,0,709,392,0,682,392,0, - 671,392,0,282,392,0,7306,225,0,7305, - 225,0,671,225,0,682,225,0,709,225, - 0,7409,225,0,7408,225,0,7333,225,0, - 7332,225,0,7331,225,0,7330,225,0,7329, - 225,0,7328,225,0,7327,225,0,7326,225, - 0,282,285,0,7306,226,0,7305,226,0, - 671,226,0,682,226,0,709,226,0,7409, - 226,0,7408,226,0,7333,226,0,7332,226, - 0,7331,226,0,7330,226,0,7329,226,0, - 7328,226,0,7327,226,0,7326,226,0,1668, - 385,0,7088,48,0,7087,48,0,7306,584, - 0,7305,584,0,671,584,0,682,584,0, - 709,584,0,7409,584,0,7408,584,0,7333, - 584,0,7332,584,0,7331,584,0,7330,584, - 0,7329,584,0,7328,584,0,7327,584,0, - 7326,584,0,7306,601,0,7305,601,0,671, - 601,0,682,601,0,709,601,0,7409,601, - 0,7408,601,0,7333,601,0,7332,601,0, - 7331,601,0,7330,601,0,7329,601,0,7328, - 601,0,7327,601,0,7326,601,0,7306,240, - 0,7305,240,0,671,240,0,682,240,0, - 709,240,0,7409,240,0,7408,240,0,7333, - 240,0,7332,240,0,7331,240,0,7330,240, - 0,7329,240,0,7328,240,0,7327,240,0, - 7326,240,0,39,7088,240,0,39,7087,240, - 0,7111,240,0,7673,240,0,7672,240,0, - 7344,240,0,7343,240,0,7342,240,0,7341, - 240,0,7340,240,0,7339,240,0,7338,240, - 0,7337,240,0,7336,240,0,7335,240,0, - 7334,240,0,1,709,0,1,682,0,1, - 671,0,1,329,0,38,785,0,38,7088, - 0,38,7087,0,452,1820,0,438,1878,0, - 1668,29,0,7085,1,0,709,594,0,682, - 594,0,671,594,0,598,594,0,598,593, - 0,7136,75,0,7135,75,0,772,75,0, - 839,75,0,2351,75,0,1214,75,0,1912, - 316,0,1,596,0,1,442,0,456,1697, - 0,455,2033,0,35,33,0,47,37,0, - 228,220,0,499,2170,0,7111,1,228,0, - 39,1,228,0,228,414,0,1,2353,0, - 1,7673,0,1,7672,0,1,7344,0,1, - 7343,0,1,7342,0,1,7341,0,1,7340, - 0,1,7339,0,1,7338,0,1,7337,0, - 1,7336,0,1,7335,0,1,7334,0,1, - 5246,0,7088,37,0,7087,37,0,43,7109, - 0,43,37,0,7081,1,0,2866,91,0, - 32,34,0,39,785,0,709,596,0,682, - 596,0,671,596,0,7085,381,0,7084,381, - 0,709,329,0,682,329,0,671,329,0, - 1,1814,0,1,1861,0,7083,403,0,7082, - 403,0,228,413,0,3813,126,0,1,228, - 3240,0,7082,228,0,3251,228,0,709,443, - 0,682,443,0,671,443,0,7111,443,0, - 329,443,0,39,443,0,7079,1,0,7078, - 1,0,7109,45,0,37,45,0,386,32, - 0,385,29,0,236,817,0,3887,228,0, - 10,12,0,1,92,0,7409,334,0,7408, - 334,0,7111,1,0,39,1,0,3813,128, - 0,3813,127,0,580,572,0,8,10,12, - 0,4015,100,0,7088,36,0,7087,36,0, - 709,591,0,682,591,0,671,591,0,709, - 590,0,682,590,0,671,590,0,536,537, - 0,7088,2,37,0,7087,2,37,0,4264, - 103,0,2685,99,0,709,95,0,682,95, - 0,671,95,0,7111,95,0,329,95,0, - 39,95,0,35,73,0,709,591,592,0, - 682,591,592,0,671,591,592,0,591,592, - 0,3975,381,0,277,3774,0,185,4203,0, - 8,12,0 + 147,147,187,187,187,22,57,93,135,135, + 135,119,119,119,197,202,117,65,71,164, + 13,13,22,1545,35,3059,3058,1181,5989,27, + 30,31,1153,1061,26,28,3084,25,23,50, + 2055,106,76,77,108,2188,2827,587,533,534, + 535,2848,2842,3895,2866,2851,2937,2780,2888,2990, + 2962,3005,3026,143,1606,272,1960,35,292,158, + 144,3225,35,1202,32,341,4541,27,30,31, + 1153,1061,26,28,2054,25,23,50,2055,106, + 76,77,108,231,2827,1307,1960,35,292,2848, + 2842,772,2866,2851,2937,1316,2888,2990,2962,3005, + 3182,164,1960,2208,2168,34,234,229,230,587, + 533,534,535,3010,1542,4206,998,273,77,603, + 2780,2233,35,1202,32,4311,4780,27,30,31, + 1153,1061,337,28,3010,1318,292,341,341,1782, + 241,244,247,250,4071,536,533,534,535,156, + 325,2354,166,1025,3866,231,2403,2404,5431,188, + 582,1480,5004,3704,2100,1779,35,278,1930,3057, + 3526,675,963,3028,3958,4762,3384,1040,243,229, + 230,565,1910,317,1381,319,4372,312,842,2526, + 35,394,3426,1527,35,996,386,2336,2944,1266, + 4008,2736,35,1202,32,2780,4541,27,30,31, + 1153,1061,26,28,2054,25,23,50,2055,106, + 76,77,108,341,2827,190,1779,35,278,2848, + 2842,6136,2866,2851,2937,49,2888,2990,2962,3005, + 3026,143,1518,1409,221,258,1108,515,144,3431, + 1611,440,1487,454,305,308,1023,1960,35,6106, + 6078,1536,516,521,2736,35,1202,32,2780,4541, + 27,30,31,1153,1061,26,28,2054,25,23, + 50,2055,106,76,77,108,341,2827,1960,35, + 2168,275,2848,2842,172,2866,2851,2937,2072,2888, + 2990,2962,3005,3026,143,3497,3146,2646,3350,3367, + 515,144,3431,2844,35,1202,32,1791,1222,41, + 30,31,1153,1061,511,516,2421,35,1202,32, + 2750,4780,27,30,31,1153,1061,337,28,322, + 3221,1543,2826,541,2724,3042,2736,35,1202,32, + 2780,4541,27,30,31,1153,1061,26,28,2054, + 25,23,50,2055,106,76,77,108,341,2827, + 551,401,3900,1435,2848,2842,3385,2866,2851,2937, + 350,2888,2990,2962,3005,3026,143,511,314,1205, + 319,441,515,144,3431,256,2358,587,533,534, + 535,1960,35,2168,277,3231,1315,516,3042,3084, + 35,1202,32,2780,4541,27,30,31,1153,1061, + 26,28,2054,25,23,50,2055,106,76,77, + 108,341,2827,1273,2553,2918,563,2848,2842,286, + 2866,2851,2937,231,2888,2990,2962,3005,3026,143, + 78,2646,3350,182,4859,515,144,3431,537,533, + 534,535,3540,35,276,520,246,229,230,511, + 516,2259,2784,3351,3253,35,1202,32,1783,5999, + 27,30,31,1153,1061,57,28,3250,1960,3324, + 3042,3152,35,1202,32,884,4541,27,30,31, + 1153,1061,26,28,2054,25,23,50,2055,106, + 76,77,108,729,2827,2185,35,276,2918,2848, + 2842,70,2866,2851,2937,554,2888,2990,2962,3005, + 3026,143,512,708,2708,1879,162,377,144,2814, + 35,1202,32,3220,4541,27,30,31,1153,1061, + 26,28,2054,25,23,50,2055,106,76,77, + 108,2384,2827,2352,1779,35,451,2848,2842,6009, + 2866,2851,2937,539,2888,2990,2962,3005,3026,143, + 78,810,2708,286,1336,377,144,1958,991,66, + 3715,35,1202,32,4796,4541,27,30,31,1153, + 1061,26,28,2054,25,23,50,2055,106,76, + 77,108,2369,2827,2772,442,3241,3351,2848,2842, + 2988,2866,2851,2937,61,2888,2990,2962,3853,383, + 2585,310,66,2887,35,1202,32,4904,4541,27, + 30,31,1153,1061,26,28,2054,25,23,50, + 2055,106,76,77,108,3386,2827,1690,2277,35, + 451,2848,2842,6009,2866,2851,2937,1399,2888,2990, + 2962,3005,3026,143,1960,3888,2708,384,2585,377, + 144,537,533,534,535,320,2538,3016,35,1202, + 32,3334,4541,27,30,31,1153,1061,26,28, + 2054,25,23,50,2055,106,76,77,108,379, + 2827,3386,2526,35,394,2848,2842,1480,2866,2851, + 2937,537,2888,2990,2962,3005,3026,143,1274,2874, + 35,1202,32,549,144,1961,30,31,1153,1061, + 1476,495,444,3179,3181,3360,3355,35,1202,32, + 2008,4541,27,30,31,1153,1061,26,28,2054, + 25,23,50,2055,106,76,77,108,66,2827, + 706,375,2585,5811,2848,2842,2522,2866,2851,2937, + 2780,2888,2990,2962,3005,3026,143,1960,35,2168, + 280,2455,158,144,3355,35,1202,32,3480,4541, + 27,30,31,1153,1061,26,28,2054,25,23, + 50,2055,106,76,77,108,66,2827,1686,1884, + 2534,5979,2848,2842,2780,2866,2851,2937,3517,2888, + 2990,2962,3005,3026,143,3566,448,3179,3181,1336, + 371,144,341,66,3355,35,1202,32,4937,4541, + 27,30,31,1153,1061,26,28,2054,25,23, + 50,2055,106,76,77,108,2083,2827,3626,160, + 1958,547,2848,2842,359,2866,2851,2937,323,2888, + 2990,2962,3005,3026,143,2370,2874,35,1202,32, + 371,144,40,30,31,1153,1061,1960,3350,540, + 2724,3244,3057,2767,3355,35,1202,32,6013,4541, + 27,30,31,1153,1061,26,28,2054,25,23, + 50,2055,106,76,77,108,2743,2827,154,66, + 2263,370,2848,2842,5985,2866,2851,2937,2765,2888, + 2990,2962,3005,3026,143,3685,1960,35,996,386, + 371,144,2918,351,3016,35,1202,32,3142,4541, + 27,30,31,1153,1061,26,28,2054,25,23, + 50,2055,106,76,77,108,2079,2827,2185,35, + 279,369,2848,2842,1543,2866,2851,2937,272,2888, + 2990,2962,3005,3026,143,2657,2874,35,1202,32, + 549,144,3341,30,31,1153,1061,2948,35,1202, + 32,1860,4541,27,30,31,1153,1061,26,28, + 2054,25,23,50,2055,106,76,77,108,287, + 2827,3820,352,42,3051,2848,2842,3686,2866,2851, + 2937,367,2888,2990,2962,3005,3026,143,78,1476, + 274,1377,1336,142,144,3355,35,1202,32,3221, + 4541,27,30,31,1153,1061,26,28,2054,25, + 23,50,2055,106,76,77,108,1824,2827,428, + 3954,3256,3153,2848,2842,2780,2866,2851,2937,552, + 2888,2990,2962,3005,3026,143,1960,35,2168,3894, + 538,155,144,3480,3355,35,1202,32,520,4541, + 27,30,31,1153,1061,26,28,2054,25,23, + 50,2055,106,76,77,108,496,2827,2847,35, + 2168,275,2848,2842,2137,2866,2851,2937,548,2888, + 2990,2962,3005,3026,143,1960,3955,2168,74,3480, + 154,144,3355,35,1202,32,1739,4541,27,30, + 31,1153,1061,26,28,2054,25,23,50,2055, + 106,76,77,108,3014,2827,1960,35,281,358, + 2848,2842,78,2866,2851,2937,2780,2888,2990,2962, + 3005,3026,143,78,2788,3268,3275,3959,153,144, + 3355,35,1202,32,341,4541,27,30,31,1153, + 1061,26,28,2054,25,23,50,2055,106,76, + 77,108,2362,2827,2847,35,2168,3957,2848,2842, + 3431,2866,2851,2937,3963,2888,2990,2962,3005,3026, + 143,78,436,3117,553,791,152,144,3355,35, + 1202,32,2057,4541,27,30,31,1153,1061,26, + 28,2054,25,23,50,2055,106,76,77,108, + 3260,2827,3148,521,930,6022,2848,2842,78,2866, + 2851,2937,2780,2888,2990,2962,3005,3026,143,1960, + 35,2168,3968,3386,151,144,3355,35,1202,32, + 341,4541,27,30,31,1153,1061,26,28,2054, + 25,23,50,2055,106,76,77,108,3386,2827, + 2526,35,394,558,2848,2842,3431,2866,2851,2937, + 3625,2888,2990,2962,3005,3026,143,3686,3901,3118, + 1266,3247,150,144,3355,35,1202,32,581,4541, + 27,30,31,1153,1061,26,28,2054,25,23, + 50,2055,106,76,77,108,3452,2827,1960,35, + 3914,1266,2848,2842,78,2866,2851,2937,2780,2888, + 2990,2962,3005,3026,143,301,88,3386,3481,102, + 149,144,3355,35,1202,32,341,4541,27,30, + 31,1153,1061,26,28,2054,25,23,50,2055, + 106,76,77,108,78,2827,298,577,2171,296, + 2848,2842,3431,2866,2851,2937,458,2888,2990,2962, + 3005,3026,143,78,2445,3119,3977,854,148,144, + 3355,35,1202,32,1357,4541,27,30,31,1153, + 1061,26,28,2054,25,23,50,2055,106,76, + 77,108,78,2827,626,3865,936,1266,2848,2842, + 78,2866,2851,2937,2780,2888,2990,2962,3005,3026, + 143,2105,633,1611,3954,170,147,144,3355,35, + 1202,32,341,4541,27,30,31,1153,1061,26, + 28,2054,25,23,50,2055,106,76,77,108, + 2606,2827,559,62,4433,4028,2848,2842,3431,2866, + 2851,2937,3686,2888,2990,2962,3005,3026,143,78, + 2445,3141,3965,1671,146,144,3355,35,1202,32, + 1653,4541,27,30,31,1153,1061,26,28,2054, + 25,23,50,2055,106,76,77,108,3386,2827, + 2009,3686,388,2918,2848,2842,425,2866,2851,2937, + 321,2888,2990,2962,3005,3026,143,402,3505,529, + 1357,633,145,144,3715,35,1202,32,24,4541, + 27,30,31,1153,1061,26,28,2054,25,23, + 50,2055,106,76,77,108,962,2827,3010,35, + 292,457,2848,2842,3315,2866,2851,2937,1289,2888, + 2990,2962,3005,3182,164,3355,35,1202,32,2358, + 4541,27,30,31,1153,1061,26,28,2054,25, + 23,50,2055,106,76,77,108,1357,2827,2880, + 5636,1040,2727,2848,2842,718,2866,2851,2937,445, + 2888,2990,2962,3005,3026,143,354,89,3901,562, + 102,159,144,3897,1266,529,3355,35,1202,32, + 3883,4541,27,30,31,1153,1061,26,28,2054, + 25,23,50,2055,106,76,77,108,389,2827, + 1812,93,425,2993,2848,2842,78,2866,2851,2937, + 2780,2888,2990,2962,3005,3026,143,78,3503,179, + 1108,4069,576,144,3355,35,1202,32,341,4541, + 27,30,31,1153,1061,26,28,2054,25,23, + 50,2055,106,76,77,108,78,2827,556,387, + 4874,3197,2848,2842,3431,2866,2851,2937,445,2888, + 2990,2962,3005,3026,143,391,2445,3376,262,425, + 140,144,3415,35,1202,32,3386,4541,27,30, + 31,1153,1061,26,28,2054,25,23,50,2055, + 106,76,77,108,78,2827,3686,722,4967,2918, + 2848,2842,3880,2866,2851,2937,573,2888,2990,2962, + 3005,3026,143,78,3686,2079,1222,897,189,144, + 3715,35,1202,32,1357,4541,27,30,31,1153, + 1061,26,28,2054,25,23,50,2055,106,76, + 77,108,962,2827,1960,35,996,386,2848,2842, + 523,2866,2851,2937,256,2888,2990,2962,3005,3182, + 164,3715,35,1202,32,3386,4541,27,30,31, + 1153,1061,26,28,2054,25,23,50,2055,106, + 76,77,108,2269,2827,51,450,78,1586,2848, + 2842,2034,2866,2851,2937,571,2888,2990,2962,3005, + 3182,164,353,324,3386,3686,3901,537,533,534, + 535,529,3715,35,1202,32,421,4541,27,30, + 31,1153,1061,26,28,2054,25,23,50,2055, + 106,76,77,108,87,2827,1960,35,996,386, + 2848,2842,390,2866,2851,2937,425,2888,2990,2962, + 3005,3182,164,3715,35,1202,32,291,4541,27, + 30,31,1153,1061,26,28,2054,25,23,50, + 2055,106,76,77,108,2323,2827,2919,429,78, + 71,2848,2842,2170,2866,2851,2937,302,2888,2990, + 2962,3005,3182,164,97,2918,3386,1417,2767,537, + 533,534,535,6013,3715,35,1202,32,420,4541, + 27,30,31,1153,1061,26,28,2054,25,23, + 50,2055,106,76,77,108,5614,2827,1670,35, + 996,386,2848,2842,2741,2866,2851,2937,3233,2888, + 2990,2962,3005,3182,164,3835,35,1202,32,423, + 4541,27,30,31,1153,1061,26,28,2054,25, + 23,50,2055,106,76,77,108,78,2827,3510, + 272,1041,3386,2848,2842,3315,2866,2851,2937,1336, + 2888,2990,2962,3005,3182,164,1656,35,1202,32, + 4311,4993,27,30,31,1153,1061,337,28,4201, + 579,4201,69,1336,3466,603,1860,2054,3686,156, + 536,533,534,535,1960,35,996,386,78,3848, + 78,3901,2786,3396,2624,1726,3445,4809,3386,2780, + 6093,66,3915,156,814,156,6042,2918,2918,326, + 333,2698,1476,3326,200,2264,180,227,317,1381, + 319,2103,312,842,72,330,272,3426,68,909, + 1807,35,3549,32,4311,4993,27,30,31,1153, + 1061,337,28,195,427,3386,3386,2122,405,916, + 962,962,3386,2852,536,533,534,535,374,522, + 4020,35,996,386,3901,783,3901,98,3386,1476, + 3824,3254,295,236,3920,53,52,406,407,408, + 293,294,376,644,587,533,534,535,338,304, + 308,1023,317,1381,319,2103,312,842,3234,330, + 3984,2820,272,2749,78,3569,997,2230,2780,2800, + 35,1202,32,789,6148,27,30,31,1153,1061, + 26,28,3013,509,2075,78,341,2852,3116,2237, + 231,2742,1498,35,1202,32,3313,4993,27,30, + 31,1153,1061,337,28,283,1270,380,1266,4315, + 417,3534,3431,234,229,230,536,533,534,535, + 537,533,534,535,273,507,705,196,342,409, + 412,1266,3386,2565,2764,35,1202,32,372,6148, + 27,30,31,1153,1061,59,28,241,244,247, + 250,4071,3507,198,317,1381,319,2103,315,842, + 1025,331,568,2764,35,1202,32,582,6148,27, + 30,31,1153,1061,58,28,197,254,675,963, + 3028,3958,4762,3384,1266,1960,35,996,386,3383, + 35,1202,32,3251,5999,27,30,31,1153,1061, + 56,28,1930,3715,35,1202,32,4008,4541,27, + 30,31,1153,1061,26,28,2054,25,23,50, + 2055,106,76,77,108,3142,2827,432,162,297, + 430,2848,2842,3386,2866,2851,2937,3386,2888,2990, + 3787,3715,35,1202,32,434,4541,27,30,31, + 1153,1061,26,28,2054,25,23,50,2055,106, + 76,77,108,538,2827,419,2059,557,1682,2848, + 2842,78,2866,2851,2937,2414,2888,3784,2540,35, + 1202,32,446,4993,27,30,31,1153,1061,337, + 28,526,587,533,534,535,3443,1090,3914,2011, + 44,3051,536,533,534,535,1302,35,1202,32, + 2676,4780,27,30,31,1153,1061,337,28,5524, + 537,533,534,535,902,2142,35,1202,32,4311, + 4780,27,30,31,1153,1061,337,28,231,60, + 317,1381,319,2103,313,842,3386,331,3626,536, + 533,534,535,1960,35,996,386,1093,1185,1821, + 3566,249,229,230,1336,350,5004,78,314,1205, + 319,4549,537,533,534,535,348,344,1535,1456, + 347,2168,1960,35,996,386,78,317,1381,319, + 1516,312,842,3386,160,431,3426,3715,35,1202, + 32,378,4541,27,30,31,1153,1061,26,28, + 2054,25,23,50,2055,106,76,77,108,1182, + 2827,1086,2778,90,49,2848,2842,3386,2866,2851, + 2937,46,3785,3715,35,1202,32,2918,4541,27, + 30,31,1153,1061,26,28,2054,25,23,50, + 2055,106,76,77,108,622,2827,569,304,308, + 1023,2848,2842,2766,2866,2851,3764,2526,35,2567, + 4858,2350,78,78,78,884,931,1081,3535,78, + 962,3901,3404,6066,4126,2097,4169,66,374,2780, + 2364,4128,6073,2075,1885,35,3549,32,4311,4780, + 27,30,31,1153,1061,337,28,227,2348,49, + 537,533,534,535,543,2255,1518,847,3917,533, + 534,535,1370,35,3549,32,4311,4780,27,30, + 31,1153,1061,337,28,3354,400,205,215,3066, + 204,212,213,214,216,586,536,533,534,535, + 1960,35,996,386,1708,78,317,1381,319,1574, + 312,842,284,3354,1266,2820,1266,206,208,210, + 293,294,3687,644,3183,517,207,209,78,1684, + 3386,1266,1336,3632,317,1381,319,3386,312,842, + 2536,2551,430,2820,2726,35,3549,32,4311,4780, + 27,30,31,1153,1061,337,28,1266,3232,201, + 3468,199,156,4333,417,3534,3386,3952,3917,533, + 534,535,2386,3386,1918,277,404,78,78,603, + 78,3671,1336,3386,1336,3354,78,238,3347,3353, + 3085,4624,417,3534,1266,93,3537,227,587,533, + 534,535,3638,449,3349,1126,317,1381,319,156, + 312,842,156,4249,156,2820,1798,3451,962,2264, + 180,3044,3539,3564,3540,4800,169,203,215,3066, + 202,212,213,214,216,586,3386,3807,4112,222, + 536,533,534,535,231,3864,3870,168,3896,183, + 167,170,171,172,173,174,2741,2473,78,3927, + 2805,3486,3674,4333,417,3534,4310,239,229,230, + 1698,35,1202,32,4976,4780,27,30,31,1153, + 1061,337,28,3715,35,1202,32,3666,4541,27, + 30,31,1153,1061,26,28,2054,25,23,50, + 2055,106,76,77,108,3386,2827,3726,350,3566, + 3386,2848,2842,1336,2866,3765,1960,35,996,386, + 342,1535,1456,347,3904,3317,3466,78,340,3386, + 3386,1920,317,1381,319,4371,312,842,78,3744, + 3623,3471,2024,160,1347,35,1202,32,4311,4780, + 27,30,31,1153,1061,337,28,350,49,67, + 66,332,333,3566,3563,1518,1105,1336,3609,342, + 1535,1456,347,3715,35,1202,32,3470,4541,27, + 30,31,1153,1061,26,28,2054,25,23,50, + 2055,106,76,77,108,3466,2827,160,3683,1, + 3112,2848,2842,603,2866,3769,317,1381,319,3386, + 312,842,3383,78,78,1245,4203,3856,2120,78, + 4513,227,1921,2356,536,533,534,535,3803,2556, + 3548,333,1336,156,3566,2724,2955,3386,1336,65, + 3386,2565,962,2264,180,1610,536,533,534,535, + 169,203,215,3066,202,212,213,214,216,586, + 2416,2741,156,2856,3317,327,3650,64,160,364, + 55,168,162,184,167,170,171,172,173,174, + 181,2357,35,1202,32,5799,4780,27,30,31, + 1153,1061,337,28,1475,35,1202,32,4311,4780, + 27,30,31,1153,1061,337,28,3715,35,1202, + 32,349,4541,27,30,31,1153,1061,26,28, + 2054,25,23,50,2055,106,76,77,108,78, + 2827,3466,3386,1336,3466,2848,2842,3742,3655,2477, + 2602,3386,2983,317,1381,319,3296,312,842,3386, + 3627,3144,1245,3146,346,3080,317,1381,319,4131, + 312,842,54,156,1266,3967,328,333,350,3624, + 333,3774,3566,3619,802,618,1336,2953,3386,101, + 342,1535,1456,347,3715,35,1202,32,3106,4541, + 27,30,31,1153,1061,26,28,2054,25,23, + 50,2055,106,76,77,108,160,2827,2389,193, + 3386,3386,2848,2842,3906,3670,3715,35,1202,32, + 3821,4541,27,30,31,1153,1061,26,28,2054, + 25,23,50,2055,106,76,77,108,3931,2827, + 2728,4551,4171,710,2848,2842,3317,3750,3715,35, + 1202,32,185,4541,27,30,31,1153,1061,26, + 28,2054,25,23,50,2055,106,76,77,108, + 3932,2827,527,2701,2775,3759,2848,2842,3986,3752, + 3715,35,1202,32,3954,4541,27,30,31,1153, + 1061,26,28,2054,25,23,50,2055,106,76, + 77,108,78,2827,3955,890,1336,2633,2848,2842, + 2722,3756,3715,35,1202,32,3466,4541,27,30, + 31,1153,1061,26,28,2054,25,23,50,2055, + 106,76,77,108,369,2827,156,3959,603,3112, + 2848,2842,4156,3760,3324,3692,3647,986,1795,1613, + 3987,3629,333,2780,6093,3114,227,4130,4003,2081, + 1904,3902,4029,536,533,534,535,4155,156,7089, + 7089,227,587,533,534,535,7089,962,2264,180, + 2565,7089,7089,7089,7089,169,203,215,3066,202, + 212,213,214,216,586,461,3078,7089,2056,603, + 5793,2122,405,916,2710,7089,168,7089,3884,167, + 170,171,172,173,174,7089,7089,227,231,7089, + 7089,7089,587,533,534,535,349,7089,7089,156, + 7089,406,407,408,293,294,7089,644,962,2264, + 180,252,229,230,7089,7089,169,203,215,3066, + 202,212,213,214,216,586,553,2749,78,1431, + 603,2460,2780,2780,7089,7089,7089,168,231,178, + 167,170,171,172,173,174,7089,7089,227,7089, + 341,3480,7089,350,7089,536,533,534,535,7089, + 156,584,229,230,7089,342,1535,1456,347,962, + 2264,180,1024,3106,7089,7089,3431,169,203,215, + 3066,202,212,213,214,216,586,645,3316,505, + 7089,603,3112,409,411,7089,7089,7089,168,7089, + 176,167,170,171,172,173,174,7089,7089,227, + 2707,7089,536,533,534,535,536,533,534,535, + 2258,156,7089,2715,78,7089,7089,503,1336,2565, + 962,2264,180,2565,536,533,534,535,169,203, + 215,3066,202,212,213,214,216,586,737,2447, + 7089,3056,603,3215,5495,7089,7089,3387,156,168, + 7089,578,167,170,171,172,173,174,2495,7089, + 227,500,502,536,533,534,535,78,7089,7089, + 7089,1336,156,7089,7089,7089,7089,7089,7089,7089, + 2565,962,2264,180,7089,1358,7089,7089,7089,169, + 203,215,3066,202,212,213,214,216,586,829, + 3314,156,1431,603,2103,1432,2780,7089,331,7089, + 168,3751,177,167,170,171,172,173,174,7089, + 7089,227,7089,3227,3480,7089,350,7089,7089,536, + 533,534,535,156,7089,7089,7089,7089,344,1535, + 1456,347,962,2264,180,7089,1247,7089,7089,7089, + 169,203,215,3066,202,212,213,214,216,586, + 921,1766,7089,7089,603,3623,5495,7089,7089,7089, + 7089,168,7089,187,167,170,171,172,173,174, + 7089,7089,227,3684,7089,536,533,534,535,536, + 533,534,535,7089,156,7089,7089,7089,7089,7089, + 503,7089,2565,962,2264,180,3108,536,533,534, + 535,169,203,215,3066,202,212,213,214,216, + 586,1013,1766,7089,3246,603,2103,5495,7089,7089, + 330,7089,168,7089,3970,167,170,171,172,173, + 174,7089,7089,227,501,502,536,533,534,535, + 7089,7089,7089,7089,7089,156,7089,7089,4632,7089, + 7089,7089,7089,2565,962,2264,180,7089,7089,1406, + 7089,7089,169,203,215,3066,202,212,213,214, + 216,586,1105,1766,7089,7089,603,2103,5495,7089, + 7089,330,7089,168,7089,192,167,170,171,172, + 173,174,703,7089,227,7089,7089,536,533,534, + 535,7089,7089,7089,7089,7089,156,7089,7089,5929, + 7089,7089,7089,7089,2565,962,2264,180,1968,7089, + 7089,7089,2780,169,203,215,3066,202,212,213, + 214,216,586,7089,7089,7089,7089,7089,2103,7089, + 227,7089,5805,7089,168,7089,186,167,170,171, + 172,173,174,2977,35,1202,32,4976,4780,27, + 30,31,1153,1061,337,28,7089,7089,7089,7089, + 205,215,3066,204,212,213,214,216,586,7089, + 7089,2169,35,996,386,7089,7089,7089,7089,3256, + 7089,1197,7089,2780,7089,603,7089,7089,7089,7089, + 206,208,210,293,294,7089,644,7089,217,207, + 209,3480,7089,227,7089,317,1381,319,7089,312, + 842,7089,7089,49,524,156,94,13,7089,5173, + 1518,1566,7089,7089,962,2264,180,7089,7089,7089, + 350,7089,169,203,215,3066,202,212,213,214, + 216,586,342,1535,1456,347,7089,7089,7089,7089, + 525,7089,7089,168,3743,194,167,170,171,172, + 173,174,1498,35,1202,32,7089,4993,27,30, + 31,1153,1061,337,28,7089,7089,358,536,533, + 534,535,7089,7089,7089,7089,536,533,534,535, + 7089,7089,3520,3268,3275,3108,607,7089,7089,3715, + 35,1202,32,5524,4541,27,30,31,1153,1061, + 26,28,2054,25,23,50,2055,106,76,77, + 108,7089,3639,7089,317,1381,319,2103,313,842, + 7089,331,3715,35,1202,32,7089,4541,27,30, + 31,1153,1061,26,28,2054,25,23,50,2055, + 106,76,77,108,7089,2827,7089,7089,7089,7089, + 2848,3761,3715,35,1202,32,7089,4541,27,30, + 31,1153,1061,26,28,2054,25,23,50,2055, + 106,76,77,108,7089,2827,7089,7089,7089,7089, + 2848,3763,4072,35,996,386,2915,783,7089,7089, + 7089,7089,7089,7089,7089,237,7089,7089,7089,7089, + 1527,35,996,386,7089,7089,587,533,534,535, + 536,533,534,535,7089,7089,2024,35,996,386, + 1766,7089,7089,7089,272,5495,7089,2565,7089,2065, + 35,1202,32,4311,4780,27,30,31,1153,1061, + 337,28,49,7089,536,533,534,535,7089,1518, + 1257,3215,231,537,533,534,535,7089,49,1476, + 78,2565,7089,7089,2780,1518,47,7089,2704,7089, + 7089,7089,7089,7089,7089,235,229,230,1959,2190, + 7089,7089,341,2780,646,2103,273,7089,7089,330, + 7089,317,1381,319,2283,312,842,7089,2780,7089, + 4150,227,536,533,534,535,7089,7089,3431,242, + 245,248,251,4071,7089,7089,227,4189,7089,2856, + 7089,532,1025,7089,2154,35,996,386,7089,583, + 7089,205,215,3066,204,212,213,214,216,586, + 7089,7089,7089,7089,7089,7089,205,215,3066,204, + 212,213,214,216,586,7089,7089,1960,35,996, + 386,206,208,210,293,294,49,644,7089,217, + 207,209,7089,1518,47,7089,206,208,210,293, + 294,7089,644,7089,217,207,209,2376,1928,7089, + 5173,2780,1319,7089,7089,2569,1766,7089,7089,49, + 7089,5495,7089,2496,7089,5173,1518,1335,7089,227, + 7089,7089,7089,1527,35,996,386,7089,7089,7089, + 536,533,534,535,2233,35,1202,32,4311,4780, + 27,30,31,1153,1061,337,28,2565,7089,205, + 215,3066,204,212,213,214,216,586,537,533, + 534,535,7089,7089,7089,49,7089,7089,7089,7089, + 7089,2103,1518,4766,7089,330,7089,7089,7089,206, + 208,210,293,294,7089,644,7089,217,207,209, + 7089,2704,7089,7089,7089,7089,317,1381,319,7089, + 312,842,7089,3038,7089,4150,2711,7089,5173,3715, + 35,1202,32,7089,4541,27,30,31,1153,1061, + 26,28,2054,25,23,50,2055,106,76,77, + 108,7089,2827,3715,35,1202,32,3574,4541,27, + 30,31,1153,1061,26,28,2054,25,23,50, + 2055,106,76,77,108,7089,2827,3715,35,1202, + 32,3608,4541,27,30,31,1153,1061,26,28, + 2054,25,23,50,2055,106,76,77,108,7089, + 3645,3715,35,1202,32,7089,4541,27,30,31, + 1153,1061,26,28,2054,25,23,50,2055,106, + 76,77,108,1839,3646,7089,7089,2780,7089,7089, + 7089,7089,7089,7089,7089,7089,7089,7089,7089,7089, + 7089,3715,35,1202,32,227,4541,27,30,31, + 1153,1061,26,28,2054,25,23,50,2055,106, + 76,77,85,7089,7089,7089,7089,7089,7089,7089, + 7089,7089,7089,7089,7089,205,215,3066,204,212, + 213,214,216,586,3475,35,1202,32,7089,4541, + 27,30,31,1153,1061,26,28,2054,25,23, + 50,2055,580,76,77,206,208,210,293,294, + 7089,644,7089,218,207,209,3715,35,1202,32, + 7089,4541,27,30,31,1153,1061,26,28,2054, + 25,23,50,2055,106,76,77,83,3715,35, + 1202,32,7089,4541,27,30,31,1153,1061,26, + 28,2054,25,23,50,2055,106,76,77,82, + 3715,35,1202,32,7089,4541,27,30,31,1153, + 1061,26,28,2054,25,23,50,2055,106,76, + 77,81,3715,35,1202,32,7089,4541,27,30, + 31,1153,1061,26,28,2054,25,23,50,2055, + 106,76,77,80,3715,35,1202,32,7089,4541, + 27,30,31,1153,1061,26,28,2054,25,23, + 50,2055,106,76,77,79,3715,35,1202,32, + 7089,4541,27,30,31,1153,1061,26,28,2054, + 25,23,50,2055,106,76,77,78,3715,2208, + 1202,2587,7089,4541,27,30,31,1153,1061,26, + 28,2054,25,23,50,2055,106,76,77,84, + 2469,7089,7089,7089,2780,7089,7089,7089,7089,7089, + 7089,2562,7089,7089,7089,2780,7089,7089,7089,7089, + 7089,7089,227,7089,7089,7089,7089,7089,7089,3285, + 35,1202,32,227,4541,27,30,31,1153,1061, + 26,28,2054,25,23,50,2055,106,76,77, + 104,7089,205,215,3066,204,212,213,214,216, + 586,7089,7089,205,215,3066,204,212,213,214, + 216,586,7089,7089,7089,1960,35,996,386,7089, + 7089,7089,206,208,210,293,294,7089,644,7089, + 518,207,209,206,208,210,293,294,7089,644, + 7089,303,207,209,2333,35,1202,32,7089,4780, + 27,30,31,1153,1061,337,28,49,7089,7089, + 7089,7089,7089,7089,1518,4128,7089,7089,537,533, + 534,535,3715,35,1202,32,7089,4541,27,30, + 31,1153,1061,26,28,2054,25,23,50,2055, + 106,76,77,110,7089,7089,7089,7089,7089,7089, + 7089,7089,7089,7089,7089,7089,317,1381,319,7089, + 598,842,3715,35,1202,32,7089,4541,27,30, + 31,1153,1061,26,28,2054,25,23,50,2055, + 106,76,77,109,3715,35,1202,32,7089,4541, + 27,30,31,1153,1061,26,28,2054,25,23, + 50,2055,106,76,77,107,3715,35,1202,32, + 7089,4541,27,30,31,1153,1061,26,28,2054, + 25,23,50,2055,106,76,77,105,2655,7089, + 7089,7089,2780,7089,7089,7089,7089,7089,7089,7089, + 7089,7089,7089,7089,7089,7089,3535,35,1202,32, + 227,4541,27,30,31,1153,1061,26,28,2054, + 25,23,50,2055,572,76,77,7089,7089,7089, + 7089,7089,7089,7089,7089,7089,7089,7089,7089,7089, + 205,215,3066,204,212,213,214,216,586,3595, + 35,1202,32,7089,4541,27,30,31,1153,1061, + 26,28,2054,25,23,50,2055,570,76,77, + 206,208,210,293,294,7089,644,7089,497,207, + 209,3655,35,1202,32,7089,4541,27,30,31, + 1153,1061,26,28,2054,25,23,50,2055,86, + 76,77,3775,35,1202,32,7089,4541,27,30, + 31,1153,1061,26,28,2054,25,23,50,2055, + 3448,76,77,2261,7089,7089,7089,2780,5495,2261, + 7089,7089,7089,2780,5495,2698,7089,7089,7089,7089, + 5495,2154,35,996,386,3480,7089,536,533,534, + 535,3480,7089,536,533,534,535,7089,7089,536, + 533,534,535,4127,2565,7089,7089,603,7089,7089, + 2565,7089,7089,7089,4127,7089,2565,7089,603,7089, + 7089,7089,7089,49,7089,341,7089,7089,2103,7089, + 1518,47,330,7089,2103,7089,341,156,330,7089, + 2103,7089,7089,7089,5805,7089,962,2148,156,1568, + 7089,3431,4127,7089,1977,7089,603,962,2148,4205, + 4189,358,3431,2780,1908,1977,3038,358,4127,7089, + 7089,7089,603,7089,341,2366,3340,3268,3275,7089, + 7089,341,3340,3268,3275,7089,156,4127,7089,528, + 341,603,7089,4127,7089,962,2148,603,7089,2513, + 3431,7089,156,1977,5495,7089,7089,3431,7089,341, + 7089,962,2148,2455,7089,341,3431,7089,7089,1977, + 531,156,7089,536,533,534,535,156,96,2494, + 962,2148,7089,7089,7089,3431,962,2148,1977,7089, + 2565,3431,7089,7089,1977,7089,7089,7089,2586,1527, + 35,996,386,7089,3347,2619,35,996,386,3048, + 35,996,386,7089,2103,7089,7089,7089,331,2154, + 35,996,386,7089,7089,7089,7089,7089,7089,1527, + 35,996,386,1527,35,996,386,7089,7089,7089, + 7089,49,1527,35,996,386,7089,49,1518,47, + 7089,49,7089,7089,1518,47,7089,7089,1518,2659, + 7089,49,1527,35,996,386,7089,1766,1518,2716, + 7089,49,7089,676,7089,49,7089,1536,1518,47, + 7089,7089,1518,47,49,78,1822,2618,7089,603, + 2780,1518,47,1527,35,996,386,2434,1921,7089, + 7089,2526,7089,7089,49,7089,7089,341,3480,7089, + 2945,1518,47,1960,35,996,386,7089,7089,156, + 7089,3852,536,533,534,535,2644,7089,7089,2718, + 3113,7089,78,3431,7089,49,603,7089,7089,2856, + 7089,7089,1518,47,7089,7089,2662,7089,7089,7089, + 536,533,534,535,341,49,1960,35,996,386, + 78,3310,1518,2405,603,7089,156,2856,1960,35, + 996,386,7089,7089,7089,78,188,7089,7089,603, + 3704,7089,341,7089,503,7089,7089,7089,7089,7089, + 7089,7089,7089,7089,156,7089,7089,341,49,7089, + 7089,7089,7089,7089,188,1518,1052,7089,3704,156, + 49,7089,7089,7089,7089,2845,7089,1518,1566,188, + 7089,7089,7089,3704,7089,7089,7089,7089,500,502, + 7089,7089,7089,7089,7089,7089,7089,7089,7089,7089, + 7089,7089,3393,3031,7089,7089,7089,7089,7089,7089, + 7089,7089,7089,7089,7089,7089,7089,7089,7089,7089, + 7089,7089,7089,7089,7089,7089,7089,3965,7089,7089, + 3446,7089,7089,7089,7089,7089,7089,7089,7089,7089, + 7089,7089,7089,7089,7089,3515,7089,0,1,228, + 907,0,499,3245,0,1,228,0,39,7104, + 0,39,7103,0,1,3554,0,903,1,0, + 39,1,7104,0,39,1,7103,0,1,633, + 0,1,692,0,228,219,0,7322,223,0, + 7321,223,0,742,223,0,835,223,0,970, + 223,0,7425,223,0,7424,223,0,7349,223, + 0,7348,223,0,7347,223,0,7346,223,0, + 7345,223,0,7344,223,0,7343,223,0,7342, + 223,0,7322,224,0,7321,224,0,742,224, + 0,835,224,0,970,224,0,7425,224,0, + 7424,224,0,7349,224,0,7348,224,0,7347, + 224,0,7346,224,0,7345,224,0,7344,224, + 0,7343,224,0,7342,224,0,970,392,0, + 835,392,0,742,392,0,282,392,0,7322, + 225,0,7321,225,0,742,225,0,835,225, + 0,970,225,0,7425,225,0,7424,225,0, + 7349,225,0,7348,225,0,7347,225,0,7346, + 225,0,7345,225,0,7344,225,0,7343,225, + 0,7342,225,0,282,285,0,7322,226,0, + 7321,226,0,742,226,0,835,226,0,970, + 226,0,7425,226,0,7424,226,0,7349,226, + 0,7348,226,0,7347,226,0,7346,226,0, + 7345,226,0,7344,226,0,7343,226,0,7342, + 226,0,1831,385,0,7104,48,0,7103,48, + 0,7322,585,0,7321,585,0,742,585,0, + 835,585,0,970,585,0,7425,585,0,7424, + 585,0,7349,585,0,7348,585,0,7347,585, + 0,7346,585,0,7345,585,0,7344,585,0, + 7343,585,0,7342,585,0,7322,602,0,7321, + 602,0,742,602,0,835,602,0,970,602, + 0,7425,602,0,7424,602,0,7349,602,0, + 7348,602,0,7347,602,0,7346,602,0,7345, + 602,0,7344,602,0,7343,602,0,7342,602, + 0,7322,240,0,7321,240,0,742,240,0, + 835,240,0,970,240,0,7425,240,0,7424, + 240,0,7349,240,0,7348,240,0,7347,240, + 0,7346,240,0,7345,240,0,7344,240,0, + 7343,240,0,7342,240,0,39,7104,240,0, + 39,7103,240,0,7127,240,0,7690,240,0, + 7689,240,0,7360,240,0,7359,240,0,7358, + 240,0,7357,240,0,7356,240,0,7355,240, + 0,7354,240,0,7353,240,0,7352,240,0, + 7351,240,0,7350,240,0,1,970,0,1, + 835,0,1,742,0,1,329,0,38,692, + 0,38,7104,0,38,7103,0,452,2023,0, + 438,2052,0,1831,29,0,7101,1,0,970, + 595,0,835,595,0,742,595,0,599,595, + 0,599,594,0,7152,75,0,7151,75,0, + 1064,75,0,2949,75,0,3120,75,0,3338, + 75,0,2119,316,0,1,597,0,1,442, + 0,456,1927,0,455,2112,0,35,33,0, + 47,37,0,228,220,0,499,2825,0,7127, + 1,228,0,39,1,228,0,228,414,0, + 1,1433,0,1,7690,0,1,7689,0,1, + 7360,0,1,7359,0,1,7358,0,1,7357, + 0,1,7356,0,1,7355,0,1,7354,0, + 1,7353,0,1,7352,0,1,7351,0,1, + 7350,0,1,5676,0,7104,37,0,7103,37, + 0,43,7125,0,43,37,0,7097,1,0, + 1638,91,0,32,34,0,39,692,0,970, + 597,0,835,597,0,742,597,0,7101,381, + 0,7100,381,0,970,329,0,835,329,0, + 742,329,0,1,779,0,1,1302,0,7099, + 403,0,7098,403,0,228,413,0,3890,126, + 0,1,228,3399,0,7098,228,0,3405,228, + 0,7095,1,0,7094,1,0,386,32,0, + 385,29,0,236,1425,0,970,443,0,835, + 443,0,742,443,0,7127,443,0,329,443, + 0,39,443,0,7125,45,0,37,45,0, + 3862,228,0,10,12,0,7127,1,0,39, + 1,0,580,572,0,1,92,0,7425,334, + 0,7424,334,0,3890,128,0,3890,127,0, + 8,10,12,0,7104,2,37,0,7103,2, + 37,0,7104,36,0,7103,36,0,4164,100, + 0,970,592,0,835,592,0,742,592,0, + 970,591,0,835,591,0,742,591,0,536, + 537,0,581,573,0,3782,103,0,2635,99, + 0,970,95,0,835,95,0,742,95,0, + 7127,95,0,329,95,0,39,95,0,35, + 73,0,970,592,593,0,835,592,593,0, + 742,592,593,0,592,593,0,277,3573,0, + 3971,381,0,185,4432,0,8,12,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1395,8 +1397,8 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym 30,31,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, 50,51,52,53,54,55,56,57,58,59, - 60,0,62,63,64,0,66,67,68,69, - 0,10,72,12,74,75,0,12,78,3, + 60,0,62,63,64,0,66,67,68,4, + 70,10,72,12,74,75,0,0,78,3, 80,81,82,83,84,85,86,87,88,89, 90,91,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, @@ -1405,35 +1407,35 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym 38,39,40,41,42,43,44,45,46,47, 48,49,50,51,52,53,54,55,56,57, 58,59,60,0,62,63,64,4,66,67, - 68,69,0,0,72,3,74,75,0,0, - 78,3,80,81,82,83,84,85,86,87, + 68,0,70,0,72,0,74,75,3,0, + 78,0,80,81,82,83,84,85,86,87, 88,89,90,91,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35, 36,37,38,39,40,41,42,43,44,45, 46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,60,0,62,63,64,4, - 66,67,68,69,0,0,72,3,74,75, - 0,0,78,0,80,81,82,83,84,85, + 56,57,58,59,60,76,62,63,64,78, + 66,67,68,0,70,0,72,0,74,75, + 3,0,78,8,80,81,82,83,84,85, 86,87,88,89,90,91,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32,33, 34,35,36,37,38,39,40,41,42,43, 44,45,46,47,48,49,50,51,52,53, - 54,55,56,57,58,59,60,77,62,63, - 64,78,66,67,68,69,0,0,72,0, - 74,75,3,0,78,8,10,81,82,83, + 54,55,56,57,58,59,60,76,62,63, + 64,0,66,67,68,0,70,0,72,0, + 74,75,3,12,78,102,103,81,82,83, 84,85,86,87,88,89,90,91,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, 42,43,44,45,46,47,48,49,50,51, - 52,53,54,55,56,57,58,59,60,76, - 62,63,64,0,66,67,68,69,0,0, - 72,0,74,75,98,99,78,0,10,81, + 52,53,54,55,56,57,58,59,60,0, + 62,63,64,0,66,67,68,0,70,0, + 72,0,74,75,3,0,78,102,103,81, 82,83,84,85,86,87,88,89,90,91, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, @@ -1441,45 +1443,45 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym 30,31,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, 50,51,52,53,54,55,56,57,58,59, - 60,0,62,63,64,0,66,67,68,69, - 0,0,72,0,74,75,98,99,78,106, - 10,81,82,83,84,85,86,87,88,89, + 60,76,62,63,64,0,66,67,68,4, + 70,0,72,104,74,75,0,0,78,106, + 3,81,82,83,84,85,86,87,88,89, 90,91,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, 28,29,30,31,32,33,34,35,36,37, 38,39,40,41,42,43,44,45,46,47, 48,49,50,51,52,53,54,55,56,57, - 58,59,60,0,62,63,64,4,66,67, - 68,69,0,1,72,104,74,75,98,99, - 78,106,10,81,82,83,84,85,86,87, + 58,59,60,77,62,63,64,0,66,67, + 68,0,70,0,72,0,74,75,3,12, + 78,10,0,81,82,83,84,85,86,87, 88,89,90,91,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35, 36,37,38,39,40,41,42,43,44,45, 46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,60,0,62,63,64,0, - 66,67,68,69,0,10,72,3,74,75, - 0,12,78,3,0,81,82,83,84,85, + 56,57,58,59,60,73,62,63,64,0, + 66,67,68,0,70,0,72,0,74,75, + 3,0,78,0,3,81,82,83,84,85, 86,87,88,89,90,91,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32,33, 34,35,36,37,38,39,40,41,42,43, 44,45,46,47,48,49,50,51,52,53, - 54,55,56,57,58,59,60,73,62,63, - 64,0,66,67,68,69,0,0,72,3, - 74,75,0,0,78,3,0,81,82,83, + 54,55,56,57,58,59,60,0,62,63, + 64,0,66,67,68,0,70,0,72,0, + 74,75,3,0,78,106,3,81,82,83, 84,85,86,87,88,89,90,91,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, 42,43,44,45,46,47,48,49,50,51, - 52,53,54,55,56,57,58,59,60,76, - 62,63,64,77,66,67,68,69,0,0, - 72,3,74,75,0,104,78,3,0,81, + 52,53,54,55,56,57,58,59,60,0, + 62,63,64,4,66,67,68,0,70,0, + 72,0,74,75,3,104,78,0,0,81, 82,83,84,85,86,87,88,89,90,91, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, @@ -1487,17 +1489,17 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym 30,31,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, 50,51,52,53,54,55,56,57,58,59, - 60,73,62,63,64,0,66,67,68,69, - 0,0,72,3,74,75,0,0,78,3, - 0,81,82,83,84,85,86,87,88,89, + 60,73,62,63,64,0,66,67,68,4, + 70,0,72,0,74,75,0,0,78,0, + 3,81,82,83,84,85,86,87,88,89, 90,91,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, 28,29,30,31,32,33,34,35,36,37, 38,39,40,41,42,43,44,45,46,47, 48,49,50,51,52,53,54,55,56,57, - 58,59,60,76,62,63,64,77,66,67, - 68,69,0,0,72,0,74,75,3,0, + 58,59,60,77,62,63,64,0,66,67, + 68,0,70,0,72,0,74,75,3,0, 78,0,0,81,82,83,84,85,86,87, 88,89,90,91,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, @@ -1506,7 +1508,7 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym 36,37,38,39,40,41,42,43,44,45, 46,47,48,49,50,51,52,53,54,55, 56,57,58,59,60,76,62,63,64,77, - 66,67,68,69,0,1,72,95,74,75, + 66,67,68,0,70,0,72,0,74,75, 0,0,78,0,0,81,82,83,84,85, 86,87,88,89,90,91,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, @@ -1514,311 +1516,315 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym 24,25,26,27,28,29,30,31,32,33, 34,35,36,37,38,39,40,41,42,43, 44,45,46,47,48,49,50,51,52,53, - 54,55,56,57,58,59,60,77,62,63, - 64,77,66,67,68,69,0,0,72,0, - 74,75,0,0,78,0,95,81,82,83, + 54,55,56,57,58,59,60,76,62,63, + 64,77,66,67,68,0,70,0,72,0, + 74,75,0,0,78,3,11,81,82,83, 84,85,86,87,88,89,90,91,0,1, 2,3,4,5,6,7,8,9,10,11, - 12,0,1,2,3,4,0,40,41,8, - 9,5,6,7,42,0,28,29,30,31, + 12,0,1,2,3,4,0,42,128,8, + 9,5,6,7,0,0,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, - 61,43,44,45,28,29,30,31,32,33, - 34,35,36,37,38,39,0,1,2,76, - 0,1,2,65,4,5,6,7,70,71, - 72,73,96,97,76,77,78,79,80,0, - 1,2,3,4,5,6,7,8,9,0, - 105,93,94,95,96,97,98,99,100,101, + 42,0,44,45,28,29,30,31,32,33, + 34,35,36,37,38,39,0,1,2,3, + 4,79,79,65,8,9,0,69,43,71, + 72,73,93,94,76,77,78,79,80,0, + 1,2,3,4,5,6,7,8,9,65, + 0,93,94,95,96,97,98,99,100,101, 102,103,104,105,106,107,108,109,0,1, 2,113,114,115,116,117,118,119,120,121, 122,123,124,125,0,127,0,1,2,3, - 4,5,6,7,8,9,10,11,12,0, - 1,2,3,4,0,0,0,8,9,5, - 6,7,73,128,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,79,43, + 4,5,6,7,8,9,10,11,12,73, + 0,0,1,2,0,4,5,6,7,5, + 6,7,73,13,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,42,61, 44,45,28,29,30,31,32,33,34,35, - 36,37,38,39,0,1,2,42,0,1, - 2,65,4,5,6,7,70,71,72,73, - 0,0,76,77,78,79,80,0,1,2, - 3,4,5,6,7,8,9,93,94,93, + 36,37,38,39,0,1,2,3,4,0, + 1,65,8,9,0,69,0,71,72,73, + 60,61,76,77,78,79,80,0,1,2, + 3,4,5,6,7,8,9,28,0,93, 94,95,96,97,98,99,100,101,102,103, 104,105,106,107,108,109,0,1,2,113, 114,115,116,117,118,119,120,121,122,123, 124,125,0,127,0,1,2,3,4,5, - 6,7,8,9,10,65,12,13,14,15, + 6,7,8,9,10,69,12,13,14,15, 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,61,44,45, + 36,37,38,39,40,41,0,43,44,45, 46,47,48,49,50,51,52,53,54,55, 56,57,58,59,60,0,62,63,64,0, 0,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,110,111,112,43,0,1,2,3, - 4,5,6,7,8,9,10,0,12,0, - 1,2,60,61,62,63,64,0,66,70, - 68,69,5,6,7,73,0,1,2,0, - 4,0,80,0,1,2,3,4,5,6, - 7,8,9,0,92,28,29,30,31,32, - 33,34,35,36,37,38,39,28,29,0, - 1,2,110,111,112,0,1,2,3,4, + 38,39,0,43,42,0,1,2,3,4, + 5,6,7,8,9,10,61,12,126,0, + 1,2,60,61,62,63,64,8,66,0, + 68,0,70,0,1,73,5,6,7,0, + 1,2,80,4,5,6,7,0,1,2, + 3,4,93,94,92,8,9,0,11,28, + 29,30,31,32,33,34,35,36,37,38, + 39,69,110,111,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,39,0,73,76,43,0, - 1,2,3,4,5,6,7,8,9,10, - 61,12,0,1,2,60,61,62,63,64, - 0,66,0,68,69,5,6,7,73,0, - 1,2,0,4,0,80,0,1,2,3, - 4,5,6,7,8,9,0,92,28,29, - 30,31,32,33,34,35,36,37,38,39, - 0,1,2,29,42,110,111,112,0,1, + 35,36,37,38,39,0,69,42,71,4, + 5,6,7,76,77,10,79,12,0,1, + 2,0,4,76,77,60,61,62,63,64, + 0,66,95,68,0,70,0,0,73,5, + 6,7,5,6,7,80,0,1,2,3, + 4,5,6,7,8,9,10,92,12,29, + 0,0,28,29,30,31,32,33,34,35, + 36,37,38,39,13,110,111,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,39,76,0, - 0,43,3,0,0,1,2,3,4,5, - 6,7,8,9,10,0,12,0,60,61, - 62,63,64,0,66,0,68,69,13,0, + 32,33,34,35,36,37,38,39,0,73, + 42,60,61,0,0,1,2,3,4,5, + 6,7,8,9,10,0,12,77,60,61, + 62,63,64,0,66,0,68,126,70,0, 1,2,0,4,5,6,7,0,80,10, 0,12,5,6,7,5,6,7,0,0, 92,14,15,16,17,18,19,20,21,22, - 23,24,25,26,0,28,29,30,31,32, - 33,34,35,36,37,38,39,73,79,76, - 77,66,65,0,1,2,128,0,1,2, + 23,24,25,26,61,28,29,30,31,32, + 33,34,35,36,37,38,39,73,0,0, + 1,2,4,5,6,7,128,0,1,2, 3,4,5,6,7,8,9,10,11,12, 13,14,15,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, - 43,0,1,2,3,4,5,6,7,8, - 9,10,11,12,0,1,2,60,61,62, - 63,64,8,66,105,68,69,74,75,28, - 29,30,31,32,33,34,35,36,37,38, - 39,0,0,1,43,0,5,6,7,92, - 5,6,7,0,0,0,1,2,3,4, - 5,6,7,8,9,10,65,12,0,0, - 28,70,71,28,29,30,31,32,33,34, + 33,34,35,36,37,38,39,0,0,42, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,0,1,2,0,60,61,62, + 63,64,129,66,105,68,0,70,28,29, + 30,31,32,33,34,35,36,37,38,39, + 43,0,42,0,1,0,0,0,0,92, + 5,6,7,10,0,1,2,3,4,5, + 6,7,8,9,10,65,12,69,0,69, + 0,71,0,28,29,30,31,32,33,34, 35,36,37,38,39,128,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,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,73,43, - 4,77,79,0,1,2,3,4,5,6, - 7,8,9,0,1,2,60,61,62,63, - 64,65,66,0,68,69,30,0,1,2, - 107,4,93,94,11,8,9,114,115,116, - 117,118,119,120,121,122,123,124,92,0, + 34,35,36,37,38,39,0,79,42,61, + 60,0,1,2,3,4,5,6,7,8, + 9,69,11,0,1,2,60,61,62,63, + 64,65,66,0,68,107,70,0,0,1, + 2,0,114,115,116,117,118,119,120,121, + 122,123,124,42,0,1,2,0,92,0, 1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15,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,43,0,1,2,3,4,5,6, - 7,8,9,80,11,0,110,111,112,60, - 61,62,63,64,0,66,0,68,69,0, - 1,2,3,4,0,11,129,8,9,80, - 11,0,0,0,1,2,43,4,5,6, - 7,92,0,1,2,3,4,5,6,7, + 43,42,0,1,2,3,4,5,6,7, + 8,9,74,75,77,61,110,111,112,60, + 61,62,63,64,0,66,0,68,0,70, + 0,1,2,0,4,5,6,7,0,80, + 10,11,12,5,6,7,0,1,2,0, + 4,92,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,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,94,79,43,72,96,97,70, - 71,0,1,2,61,76,77,65,79,8, - 9,70,60,61,62,63,64,0,66,0, - 68,69,96,97,95,0,1,2,11,0, - 1,2,80,4,5,6,7,0,0,10, - 11,12,0,0,92,0,1,2,3,4, + 38,39,0,65,42,96,97,5,6,7, + 76,71,0,1,2,3,4,5,6,7, + 8,9,60,61,62,63,64,0,66,0, + 68,0,70,0,0,95,0,1,2,3, + 4,0,80,0,8,9,13,11,0,0, + 1,2,11,0,92,0,1,2,3,4, 5,6,7,8,9,10,11,12,13,14, 15,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,61,0,43,72, - 0,1,2,3,4,0,1,2,8,9, - 71,11,65,8,9,60,61,62,63,64, - 73,66,70,68,69,0,0,1,2,3, - 4,5,6,7,95,80,10,0,12,0, - 3,93,94,43,5,6,7,92,0,1, + 35,36,37,38,39,0,65,42,0,66, + 0,1,2,3,4,69,77,71,8,9, + 61,11,71,65,73,60,61,62,63,64, + 77,66,95,68,0,70,0,1,2,3, + 4,5,6,7,0,80,10,3,12,0, + 1,2,42,4,5,6,7,92,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,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,43,4,5,6,7,70,0,10,0, - 12,4,5,6,7,0,81,70,60,61, - 62,63,64,0,66,0,68,69,0,1, - 2,3,4,5,6,7,8,9,10,0, - 12,0,0,1,2,4,4,5,6,7, + 32,33,34,35,36,37,38,39,93,94, + 42,67,0,1,2,69,4,5,6,7, + 61,0,10,69,12,0,1,2,60,61, + 62,63,64,0,66,0,68,0,70,0, + 1,2,3,4,5,6,7,8,9,10, + 0,12,0,1,2,0,4,5,6,7, 92,0,1,2,3,4,5,6,7,8, 9,10,11,12,13,14,15,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,67,0,43,0,1,2,70,4, - 5,6,7,61,11,10,65,12,93,94, - 0,60,61,62,63,64,77,66,95,68, - 69,0,1,2,3,4,5,6,7,8, - 9,10,0,12,0,0,43,5,6,7, - 5,6,7,92,0,1,2,3,4,5, + 39,0,65,42,0,0,1,2,69,4, + 5,6,7,61,79,10,95,12,0,1, + 2,60,61,62,63,64,76,66,95,68, + 0,70,0,1,2,3,4,5,6,7, + 8,9,10,0,12,0,1,2,5,6, + 7,96,97,92,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 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,94,76,43,0,1, - 2,3,4,0,73,0,8,9,0,11, - 65,3,0,0,60,61,62,63,64,0, - 66,0,68,69,0,0,1,2,3,4, - 11,0,11,8,9,0,1,2,3,4, - 0,0,11,8,9,10,92,12,13,14, + 36,37,38,39,93,94,42,0,1,2, + 0,4,5,6,7,73,0,10,65,12, + 0,5,6,7,60,61,62,63,64,0, + 66,0,68,0,70,0,1,2,3,4, + 5,6,7,8,9,0,1,2,3,4, + 0,0,0,8,9,10,92,12,13,14, 15,16,17,18,19,20,21,22,23,24, - 25,26,27,0,1,2,3,4,70,71, - 65,8,9,0,43,40,41,42,70,44, + 25,26,27,0,1,2,0,4,28,29, + 4,8,9,73,0,40,41,0,43,44, 45,46,47,48,49,50,51,52,53,54, - 55,56,57,58,59,70,0,1,2,0, - 4,80,67,0,8,9,65,76,0,74, - 75,3,77,0,1,2,3,4,77,11, - 0,8,9,10,11,12,13,14,15,16, + 55,56,57,58,59,95,30,76,73,0, + 1,2,67,4,0,0,65,8,9,74, + 75,69,77,0,1,2,3,4,77,96, + 97,8,9,10,11,12,13,14,15,16, 17,18,19,20,21,22,23,24,25,26, - 27,100,101,0,125,0,1,2,0,108, - 109,3,0,40,41,42,11,44,45,46, + 27,100,101,0,1,2,0,1,2,108, + 109,8,9,40,41,81,43,44,45,46, 47,48,49,50,51,52,53,54,55,56, - 57,58,59,70,0,102,103,3,70,71, - 67,0,0,0,3,72,0,1,2,3, - 4,0,11,80,8,9,10,11,12,13, + 57,58,59,0,1,2,110,111,112,0, + 67,8,9,79,107,72,0,1,2,3, + 4,114,13,80,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,0,1,2,72,0,5, - 6,7,40,41,10,73,40,41,42,11, + 24,25,26,27,0,1,2,0,0,5, + 6,7,4,0,10,0,40,41,11,43, 44,45,46,47,48,49,50,51,52,53, 54,55,56,57,58,59,0,0,1,2, - 3,4,71,67,0,8,9,10,72,12, + 3,4,0,67,0,8,9,10,72,12, 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,61,0,1,2,0, - 0,0,0,0,5,6,7,40,41,42, - 72,44,45,46,47,48,49,50,51,52, + 23,24,25,26,27,61,0,1,2,3, + 4,0,0,65,8,9,0,40,41,72, + 43,44,45,46,47,48,49,50,51,52, 53,54,55,56,57,58,59,0,0,0, - 1,65,0,0,67,0,1,2,3,4, + 1,2,0,0,67,0,1,2,3,4, 11,74,75,8,9,10,0,12,13,14, 15,16,17,18,19,20,21,22,23,24, - 25,26,27,0,61,65,3,0,1,0, - 74,75,40,41,11,40,41,42,11,44, + 25,26,27,0,0,69,3,0,1,2, + 96,97,40,41,11,40,41,105,43,44, 45,46,47,48,49,50,51,52,53,54, 55,56,57,58,59,93,94,0,65,0, - 71,0,67,0,1,2,3,4,11,74, - 75,8,9,10,13,12,13,14,15,16, + 3,72,67,0,1,2,3,4,11,74, + 75,8,9,10,0,12,13,14,15,16, 17,18,19,20,21,22,23,24,25,26, - 27,0,0,70,71,0,0,0,71,76, - 77,4,11,40,41,42,11,44,45,46, + 27,0,69,0,71,0,5,6,7,76, + 77,74,75,40,41,10,43,44,45,46, 47,48,49,50,51,52,53,54,55,56, - 57,58,59,0,65,96,97,30,71,0, + 57,58,59,0,65,0,69,0,71,0, 67,0,1,2,3,4,77,74,75,8, 9,10,11,12,13,14,15,16,17,18, 19,20,21,22,23,24,25,26,27,100, - 101,0,71,0,73,73,71,108,109,73, - 0,40,41,42,11,44,45,46,47,48, + 101,0,0,40,41,40,41,108,109,76, + 77,40,41,11,43,44,45,46,47,48, 49,50,51,52,53,54,55,56,57,58, - 59,95,0,0,0,3,73,4,67,5, - 6,7,73,72,0,1,2,3,4,0, - 1,2,8,9,10,11,12,13,14,15, + 59,0,65,98,99,0,0,0,67,0, + 0,1,3,72,0,1,2,3,4,0, + 11,11,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, - 26,27,0,1,2,65,4,76,77,76, - 8,9,0,80,40,41,42,0,44,45, + 26,27,0,1,2,0,4,0,76,0, + 8,9,80,4,40,41,11,43,44,45, + 46,47,48,49,50,51,52,53,54,55, + 56,57,58,59,0,1,2,3,4,30, + 71,71,8,9,10,0,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,0,61,0,0,0,5,6,7, + 5,6,7,0,40,41,71,43,44,45, + 46,47,48,49,50,51,52,53,54,55, + 56,57,58,59,28,29,0,0,0,125, + 95,3,0,69,0,1,2,3,4,0, + 1,2,8,9,10,0,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,0,1,2,0,4,73,93,94, + 8,9,69,0,40,41,11,43,44,45, + 46,47,48,49,50,51,52,53,54,55, + 56,57,58,59,0,1,2,3,4,73, + 61,67,8,9,10,73,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,0,61,0,1,2,5,6,7, + 0,0,8,3,40,41,71,43,44,45, 46,47,48,49,50,51,52,53,54,55, 56,57,58,59,0,1,2,3,4,0, - 61,0,8,9,10,0,12,13,14,15, + 0,67,8,9,10,0,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, - 26,27,0,61,0,1,2,0,4,0, - 1,2,8,9,40,41,42,8,44,45, + 26,27,0,1,0,61,0,1,2,0, + 1,2,0,11,40,41,65,43,44,45, 46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,0,1,2,3,4,125, - 61,67,8,9,10,0,12,13,14,15, + 56,57,58,59,0,1,2,3,4,0, + 1,2,8,9,10,65,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, - 26,27,0,0,79,61,0,5,6,7, - 61,5,6,7,40,41,42,70,44,45, + 26,27,0,0,79,0,3,61,0,65, + 61,0,10,71,40,41,11,43,44,45, 46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,0,0,0,0,1,2, - 3,4,0,0,70,8,9,10,0,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,0,0,1,2,0, - 5,6,7,0,1,2,73,40,41,42, - 11,44,45,46,47,48,49,50,51,52, - 53,54,55,56,57,58,59,0,1,2, - 3,4,60,0,67,8,9,10,65,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,0,0,61,0,3, - 5,6,7,0,61,0,3,40,41,42, - 71,44,45,46,47,48,49,50,51,52, - 53,54,55,56,57,58,59,0,1,2, - 3,4,126,0,95,8,9,10,65,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,0,0,0,0,0, - 5,6,7,5,6,7,0,40,41,42, - 13,44,45,46,47,48,49,50,51,52, - 53,54,55,56,57,58,59,0,1,2, - 3,4,0,1,2,8,9,10,65,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,0,0,60,61,0, - 5,6,7,4,65,0,70,40,41,42, - 0,44,45,46,47,48,49,50,51,52, - 53,54,55,56,57,58,59,0,1,2, - 3,4,0,61,0,8,9,10,4,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,0,0,0,0,3, - 28,29,4,0,65,0,11,40,41,42, - 13,44,45,46,47,48,49,50,51,52, - 53,54,55,56,57,58,59,0,1,2, - 3,4,0,0,0,8,9,10,43,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,0,0,60,61,3, - 0,0,0,65,3,3,11,40,41,42, - 0,44,45,46,47,48,49,50,51,52, - 53,54,55,56,57,58,59,0,1,2, - 3,4,0,0,0,8,9,10,43,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,0,0,0,0,0, - 3,3,0,0,0,3,11,40,41,42, - 70,44,45,46,47,48,49,50,51,52, - 53,54,55,56,57,58,59,0,1,2, - 3,4,0,0,0,8,9,10,43,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,0,0,107,0,0, - 0,65,0,3,114,3,11,40,41,42, - 11,44,45,46,47,48,49,50,51,52, - 53,54,55,56,57,58,59,0,0,0, - 3,0,0,0,0,8,0,10,0,12, - 11,102,103,11,0,73,0,1,2,3, - 4,5,6,7,8,9,10,11,12,0, - 0,0,0,65,3,3,71,40,41,73, - 71,44,45,46,28,29,30,31,32,33, - 34,35,36,37,38,39,42,0,0,43, - 0,0,65,0,0,0,0,70,0,126, - 71,74,75,76,77,76,79,79,0,0, - 79,73,80,79,0,79,70,71,0,0, - 93,94,0,96,0,98,99,100,101,102, - 103,104,105,106,107,11,0,0,79,79, - 113,0,115,116,117,118,119,120,121,122, - 123,124,0,1,2,0,4,5,6,7, - 0,0,0,0,0,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,0,79,0,71,0,0,0,0, - 76,0,0,11,0,1,2,0,4,5, - 6,7,60,126,62,63,64,13,14,15, + 56,57,58,59,0,1,2,3,4,0, + 61,0,8,9,10,126,12,13,14,15, 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,0,0,0, - 3,0,0,71,60,0,62,63,64,0, - 0,0,28,29,30,31,32,33,34,35, - 36,37,38,39,0,1,2,43,4,5, - 6,7,0,0,10,0,12,4,5,6, - 7,44,45,10,0,12,0,0,0,0, - 0,5,6,7,70,71,0,11,11,0, - 0,0,0,65,0,0,0,70,0,0, - 0,0,0,0,0,77,0,0,0,0, - 0,0,0,0,0,0,0,0,0,43, - 0,0,0,0,0,0,0,0,100,101, - 0,0,0,0,0,0,108,109,0,0, - 113,0,0,0,0,0,0,0,71,0, - 0,0,76,76,127,0,0,0,0,0, + 26,27,0,0,0,0,0,5,6,7, + 5,6,7,65,40,41,71,43,44,45, + 46,47,48,49,50,51,52,53,54,55, + 56,57,58,59,0,1,2,3,4,0, + 98,99,8,9,10,0,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,0,0,0,0,0,3,5,6, + 7,0,10,69,40,41,11,43,44,45, + 46,47,48,49,50,51,52,53,54,55, + 56,57,58,59,0,1,2,3,4,93, + 94,0,8,9,10,0,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,0,0,79,0,0,5,6,7, + 4,65,0,69,40,41,65,43,44,45, + 46,47,48,49,50,51,52,53,54,55, + 56,57,58,59,0,1,2,3,4,0, + 98,99,8,9,10,0,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,0,0,79,0,0,4,65,3, + 125,65,0,11,40,41,73,43,44,45, + 46,47,48,49,50,51,52,53,54,55, + 56,57,58,59,0,1,2,3,4,0, + 0,0,8,9,10,0,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,0,0,0,0,3,3,65,0, + 65,0,3,71,40,41,11,43,44,45, + 46,47,48,49,50,51,52,53,54,55, + 56,57,58,59,0,0,0,3,3,0, + 0,0,8,0,10,0,12,11,44,45, + 11,11,11,0,1,2,3,4,5,6, + 7,8,9,10,11,12,0,0,0,3, + 0,0,0,69,40,41,0,72,44,45, + 46,28,29,30,31,32,33,34,35,36, + 37,38,39,0,0,42,3,3,0,65, + 0,3,0,69,0,3,0,71,74,75, + 76,77,76,79,0,11,73,113,73,80, + 80,80,69,0,71,0,0,93,94,3, + 96,127,98,99,100,101,102,103,104,105, + 106,107,0,73,73,3,42,113,0,115, + 116,117,118,119,120,121,122,123,124,0, + 1,2,0,4,5,6,7,0,0,0, + 3,3,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,30, + 31,32,33,34,35,36,37,38,39,0, + 0,0,79,0,79,43,0,0,0,0, + 0,0,1,2,0,4,5,6,7,60, + 0,62,63,64,13,14,15,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,0,0,0,0,0,0, + 0,60,0,62,63,64,11,11,11,28, + 29,30,31,32,33,34,35,36,37,38, + 39,0,0,42,0,0,1,2,3,4, + 5,6,7,8,9,10,11,12,0,42, + 0,0,0,5,6,7,0,0,0,11, + 69,11,71,28,29,30,31,32,33,34, + 35,36,37,38,39,65,71,42,72,0, + 0,76,0,76,0,0,0,77,79,0, + 42,11,0,11,0,11,11,0,0,0, + 0,0,0,0,69,0,71,0,0,0, + 100,101,0,79,0,0,0,0,108,109, + 0,71,42,0,76,0,76,42,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,71,0,71,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0 }; }; public final static char termCheck[] = TermCheck.termCheck; @@ -1826,431 +1832,434 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface TermAction { public final static char termAction[] = {0, - 7073,6898,6262,6262,6262,6255,6262,6262,6262,6262, - 6262,6947,6262,1,1,1,1,1,1,1, + 7089,6911,6275,6275,6275,6268,6275,6275,6275,6275, + 6275,6960,6275,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,6902,1,1,1,1,1,1, + 1,1,6915,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,7073,1,1,1,131,932,1,720,7248, - 1,5950,7084,4057,1,1,7073,3214,2359,1221, - 7080,3376,3267,2269,3128,3218,3867,3352,923,3310, - 2756,3273,10,6950,6950,6950,6950,6950,6950,6950, - 6950,6950,6950,6950,6950,6950,6950,6950,6950,6950, - 6950,6950,6950,6950,6950,6950,6950,6950,6950,6950, - 6950,6950,6950,6950,6950,6950,6950,6950,6950,6950, - 6950,6950,6950,6950,6950,6950,6950,6950,6950,6950, - 6950,6950,6950,6950,6950,6950,6950,6950,6950,6950, - 6950,6950,6950,39,6950,6950,6950,7111,6950,6950, - 6950,6950,7073,382,6950,1047,6950,6950,7073,7073, - 6950,715,6950,6950,6950,6950,6950,6950,6950,6950, - 6950,6950,6950,6950,8,6977,6977,6977,6977,6977, - 6977,6977,6977,6977,6977,6977,6977,6977,6977,6977, - 6977,6977,6977,6977,6977,6977,6977,6977,6977,6977, - 6977,6977,6977,6977,6977,6977,6977,6977,6977,6977, - 6977,6977,6977,6977,6977,6977,6977,6977,6977,6977, - 6977,6977,6977,6977,6977,6977,6977,6977,6977,6977, - 6977,6977,6977,6977,6977,7073,6977,6977,6977,1568, - 6977,6977,6977,6977,7073,7073,6977,1265,6977,6977, - 7073,7073,6977,1,6977,6977,6977,6977,6977,6977, - 6977,6977,6977,6977,6977,6977,7073,6898,6262,6262, - 6262,6255,6262,6262,6262,6262,6262,6905,6262,1, + 1,7089,1,1,1,39,1264,1,741,7127, + 7264,3949,7100,3610,1,1,7089,1,2153,2073, + 7096,3447,2891,2174,2868,3398,3944,3433,1078,3427, + 2689,3414,10,6963,6963,6963,6963,6963,6963,6963, + 6963,6963,6963,6963,6963,6963,6963,6963,6963,6963, + 6963,6963,6963,6963,6963,6963,6963,6963,6963,6963, + 6963,6963,6963,6963,6963,6963,6963,6963,6963,6963, + 6963,6963,6963,6963,6963,6963,6963,6963,6963,6963, + 6963,6963,6963,6963,6963,6963,6963,6963,6963,6963, + 6963,6963,6963,7089,6963,6963,6963,1475,6963,6963, + 6963,382,6963,7089,6963,7089,6963,6963,1133,306, + 6963,1,6963,6963,6963,6963,6963,6963,6963,6963, + 6963,6963,6963,6963,8,6990,6990,6990,6990,6990, + 6990,6990,6990,6990,6990,6990,6990,6990,6990,6990, + 6990,6990,6990,6990,6990,6990,6990,6990,6990,6990, + 6990,6990,6990,6990,6990,6990,6990,6990,6990,6990, + 6990,6990,6990,6990,6990,6990,6990,6990,6990,6990, + 6990,6990,6990,6990,6990,6990,6990,6990,6990,6990, + 6990,6990,6990,6990,6990,711,6990,6990,6990,2004, + 6990,6990,6990,129,6990,7089,6990,7089,6990,6990, + 1649,564,6990,1735,6990,6990,6990,6990,6990,6990, + 6990,6990,6990,6990,6990,6990,7089,6911,6275,6275, + 6275,6268,6275,6275,6275,6275,6275,6918,6275,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,6902, + 1,1,1,1,1,1,1,1,6915,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5216,1,1, - 1,1764,932,1,720,7248,115,7073,7084,7073, - 1,1,1912,306,2359,2004,4946,3376,3267,2269, - 3128,3218,3867,3352,923,3310,2756,3273,7073,6898, - 6262,6262,6262,6255,6262,6262,6262,6262,6262,6905, - 6262,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,625,1,1, + 1,131,1264,1,741,130,7264,7089,7100,7089, + 1,1,1340,3193,2153,3583,3493,3447,2891,2174, + 2868,3398,3944,3433,1078,3427,2689,3414,7089,6911, + 6275,6275,6275,6268,6275,6275,6275,6275,6275,6918, + 6275,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,6902,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,3142, - 1,1,1,137,932,1,720,7248,117,7073, - 7084,7073,1,1,4923,4900,2359,7073,4946,3376, - 3267,2269,3128,3218,3867,3352,923,3310,2756,3273, - 7073,6898,6262,6262,6262,6255,6262,6262,6262,6262, - 6262,6905,6262,1,1,1,1,1,1,1, + 6915,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,133, + 1,1,1,137,1264,1,741,7089,7264,7089, + 7100,7089,1,1,2119,513,2153,3583,3493,3447, + 2891,2174,2868,3398,3944,3433,1078,3427,2689,3414, + 7089,6911,6275,6275,6275,6268,6275,6275,6275,6275, + 6275,6918,6275,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,6902,1,1,1,1,1,1, + 1,1,6915,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,133,1,1,1,138,932,1,720,7248, - 116,7073,7084,7073,1,1,4923,4900,2359,2908, - 4946,3376,3267,2269,3128,3218,3867,3352,923,3310, - 2756,3273,7073,6898,6262,6262,6262,6255,6262,6262, - 6262,6262,6262,6905,6262,1,1,1,1,1, + 1,999,1,1,1,7089,1264,1,741,2912, + 7264,7089,7100,3157,1,1,7089,7089,2153,2963, + 6065,3447,2891,2174,2868,3398,3944,3433,1078,3427, + 2689,3414,7089,6911,6275,6275,6275,6268,6275,6275, + 6275,6275,6275,6918,6275,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,6902,1,1,1,1, + 1,1,1,1,6915,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,7073,1,1,1,2822,932,1, - 720,7248,7073,3612,7084,3102,1,1,4923,4900, - 2359,2908,3077,3376,3267,2269,3128,3218,3867,3352, - 923,3310,2756,3273,7073,6898,6262,6262,6262,6255, - 6262,6262,6262,6262,6262,6905,6262,1,1,1, + 1,1,1,5420,1,1,1,132,1264,1, + 741,7089,7264,7089,7100,7089,1,1,1425,3193, + 2153,4132,446,3447,2891,2174,2868,3398,3944,3433, + 1078,3427,2689,3414,7089,6911,6275,6275,6275,6268, + 6275,6275,6275,6275,6275,6918,6275,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,6902,1,1, + 1,1,1,1,1,1,6915,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,7073,1,1,1,132, - 932,1,720,7248,7073,6010,7084,3137,1,1, - 7073,3214,2359,817,446,3376,3267,2269,3128,3218, - 3867,3352,923,3310,2756,3273,7073,6898,6262,6262, - 6262,6255,6262,6262,6262,6262,6262,6905,6262,1, + 1,1,1,1,1,1154,1,1,1,138, + 1264,1,741,7089,7264,7089,7100,567,1,1, + 2697,555,2153,7089,2308,3447,2891,2174,2868,3398, + 3944,3433,1078,3427,2689,3414,7089,6911,6275,6275, + 6275,6268,6275,6275,6275,6275,6275,6918,6275,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,6902, + 1,1,1,1,1,1,1,1,6915,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1587,1,1, - 1,134,932,1,720,7248,567,7073,7084,2016, - 1,1,555,564,2359,2636,7073,3376,3267,2269, - 3128,3218,3867,3352,923,3310,2756,3273,7073,6898, - 6262,6262,6262,6255,6262,6262,6262,6262,6262,6905, - 6262,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,7089,1,1, + 1,134,1264,1,741,7089,7264,7089,7100,91, + 1,1,6860,542,2153,2963,1277,3447,2891,2174, + 2868,3398,3944,3433,1078,3427,2689,3414,7089,6911, + 6275,6275,6275,6268,6275,6275,6275,6275,6275,6918, + 6275,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,6902,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,882, - 1,1,1,7583,932,1,720,7248,91,7073, - 7084,6847,1,1,542,3102,2359,1277,7073,3376, - 3267,2269,3128,3218,3867,3352,923,3310,2756,3273, - 7073,6898,6262,6262,6262,6255,6262,6262,6262,6262, - 6262,6905,6262,1,1,1,1,1,1,1, + 6915,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,7089, + 1,1,1,985,1264,1,741,7089,7264,7089, + 7100,236,1,1,6933,3157,2153,7089,7089,3447, + 2891,2174,2868,3398,3944,3433,1078,3427,2689,3414, + 7089,6911,6275,6275,6275,6268,6275,6275,6275,6275, + 6275,6918,6275,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,6902,1,1,1,1,1,1, + 1,1,6915,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,7472,1,1,1,7073,932,1,720,7248, - 1,7073,7084,5780,1,1,7073,513,2359,2773, - 7073,3376,3267,2269,3128,3218,3867,3352,923,3310, - 2756,3273,7073,6898,6262,6262,6262,6255,6262,6262, - 6262,6262,6262,6905,6262,1,1,1,1,1, + 1,7488,1,1,1,7089,1264,1,741,2444, + 7264,7089,7100,7089,1,1,7089,1,2153,7089, + 2296,3447,2891,2174,2868,3398,3944,3433,1078,3427, + 2689,3414,7089,6911,6275,6275,6275,6268,6275,6275, + 6275,6275,6275,6918,6275,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,6902,1,1,1,1, + 1,1,1,1,6915,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1002,1,1,1,3412,932,1, - 720,7248,356,7073,7084,236,1,1,6944,157, - 2359,7073,7073,3376,3267,2269,3128,3218,3867,3352, - 923,3310,2756,3273,7073,6898,6262,6262,6262,6255, - 6262,6262,6262,6262,6262,6905,6262,1,1,1, + 1,1,1,7599,1,1,1,7089,1264,1, + 741,7089,7264,7089,7100,7089,1,1,3519,157, + 2153,7089,7089,3447,2891,2174,2868,3398,3944,3433, + 1078,3427,2689,3414,7089,6911,6275,6275,6275,6268, + 6275,6275,6275,6275,6275,6918,6275,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,6902,1,1, + 1,1,1,1,1,1,6915,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,2221,1,1,1,3419, - 932,1,720,7248,7073,3681,7084,7428,1,1, - 7073,1,2359,7073,7073,3376,3267,2269,3128,3218, - 3867,3352,923,3310,2756,3273,7073,6898,6262,6262, - 6262,6255,6262,6262,6262,6262,6262,6905,6262,1, + 1,1,1,1,1,2215,1,1,1,3455, + 1264,1,741,7089,7264,7089,7100,7089,1,1, + 7089,447,2153,7089,7089,3447,2891,2174,2868,3398, + 3944,3433,1078,3427,2689,3414,7089,6911,6275,6275, + 6275,6268,6275,6275,6275,6275,6275,6918,6275,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,6902, + 1,1,1,1,1,1,1,1,6915,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3422,1,1, - 1,3449,932,1,720,7248,111,118,7084,7073, - 1,1,7073,447,2359,135,7430,3376,3267,2269, - 3128,3218,3867,3352,923,3310,2756,3273,7073,6764, - 6764,6764,6764,6764,6764,6764,6764,6764,6764,6764, - 6764,1,6281,6277,6271,6274,223,4876,4485,6288, - 6285,6306,6300,6303,2204,7073,6764,6764,6764,6764, - 6764,6764,6764,6764,6764,6764,6764,6764,6764,6764, - 1174,6764,6764,6764,6312,6309,6318,6336,6315,6327, - 6297,6321,6324,6333,6330,6294,7073,6495,6492,3059, - 285,6441,6441,6764,282,709,671,682,6764,6764, - 6764,6764,5342,5364,6764,6764,6764,6764,6764,1, - 6281,6277,3630,6274,6683,6689,6686,785,4182,35, - 2946,6764,6764,6764,6764,6764,6764,6764,6764,6764, - 6764,6764,6764,6764,6764,6764,6764,6764,7073,7087, - 7088,6764,6764,6764,6764,6764,6764,6764,6764,6764, - 6764,6764,6764,6764,121,6764,7073,6850,6850,6850, - 6850,6850,6850,6850,6850,6850,6850,6850,6850,1, - 6281,6277,3630,6274,224,566,7073,785,4182,6351, - 6345,6348,2460,6254,6850,6850,6850,6850,6850,6850, - 6850,6850,6850,6850,6850,6850,6850,6850,2387,6850, - 6850,6850,6357,6354,6363,6381,6360,6372,6342,6366, - 6369,6378,6375,6339,7073,11353,11294,1772,593,6728, - 6728,6850,598,709,671,682,6850,6850,6850,6850, - 385,7073,6850,6850,6850,6850,6850,329,6268,6265, - 3630,909,709,671,682,785,4182,4518,4548,6850, - 6850,6850,6850,6850,6850,6850,6850,6850,6850,6850, - 6850,6850,6850,6850,6850,6850,37,6767,6767,6850, - 6850,6850,6850,6850,6850,6850,6850,6850,6850,6850, - 6850,6850,437,6850,39,6268,6265,5809,909,709, - 671,682,5194,4182,5106,6489,5128,2862,7672,7673, - 7336,7334,7343,7342,7338,7339,7337,7340,7341,7344, - 7335,5523,7408,7409,7332,7326,7333,7329,7305,7331, - 7330,7327,7328,7306,5084,5062,7092,7109,5172,5150, - 4988,1363,1525,7094,1381,5491,1415,7095,7093,1360, - 7089,7090,7091,5449,7469,7073,3170,7470,7471,318, - 7073,1637,7073,6780,6780,228,6776,6262,6262,6262, - 228,228,228,6784,228,1,1,1,1,1, + 1,1,1,1,1,1,1,1248,1,1, + 1,3456,1264,1,741,7089,7264,7089,7100,121, + 1,1,309,35,2153,1170,7099,3447,2891,2174, + 2868,3398,3944,3433,1078,3427,2689,3414,7089,6777, + 6777,6777,6777,6777,6777,6777,6777,6777,6777,6777, + 6777,1,6294,6290,6284,6287,223,7098,6267,6301, + 6298,6319,6313,6316,385,7089,6777,6777,6777,6777, + 6777,6777,6777,6777,6777,6777,6777,6777,6777,6777, + 6777,7089,6777,6777,6325,6322,6331,6349,6328,6340, + 6310,6334,6337,6346,6343,6307,1,6294,6290,3554, + 6287,1223,1519,6777,692,633,426,6777,744,6777, + 6777,6777,4702,4732,6777,6777,6777,6777,6777,1, + 6294,6290,3554,6287,6696,6702,6699,692,633,6502, + 7089,6777,6777,6777,6777,6777,6777,6777,6777,6777, + 6777,6777,6777,6777,6777,6777,6777,6777,37,6780, + 6780,6777,6777,6777,6777,6777,6777,6777,6777,6777, + 6777,6777,6777,6777,7089,6777,7089,6863,6863,6863, + 6863,6863,6863,6863,6863,6863,6863,6863,6863,2588, + 1,285,6454,6454,224,282,970,742,835,6364, + 6358,6361,2410,6893,6863,6863,6863,6863,6863,6863, + 6863,6863,6863,6863,6863,6863,6863,6863,6863,7125, + 6863,6863,6370,6367,6376,6394,6373,6385,6355,6379, + 6382,6391,6388,6352,1,6294,6290,3554,6287,544, + 7634,6863,692,633,7089,6863,318,6863,6863,6863, + 6896,3332,6863,6863,6863,6863,6863,329,6281,6278, + 3554,903,970,742,835,692,633,7635,7089,6863, + 6863,6863,6863,6863,6863,6863,6863,6863,6863,6863, + 6863,6863,6863,6863,6863,6863,7089,6508,6505,6863, + 6863,6863,6863,6863,6863,6863,6863,6863,6863,6863, + 6863,6863,7089,6863,39,6281,6278,5917,903,970, + 742,835,5398,633,5310,651,5332,816,7689,7690, + 7352,7350,7359,7358,7354,7355,7353,7356,7357,7360, + 7351,5772,7424,7425,7348,7342,7349,7345,7321,7347, + 7346,7343,7344,7322,5288,5266,7089,7108,5376,5354, + 5191,1764,1978,7110,1862,5751,1956,7111,7109,1690, + 7105,7106,7107,5719,7485,7089,4255,7486,7487,575, + 566,1597,7089,6793,6793,228,6789,6275,6275,6275, + 228,228,228,6797,228,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,7506,7507,7508,228,307,6281,6277,3630, - 6274,6683,6689,6686,785,4182,6692,7073,6692,48, - 6495,6492,1,6773,1,1,1,225,2292,1596, - 1108,7483,6408,6402,6405,228,7073,6268,6265,334, - 7111,360,414,1,6281,6277,3630,6274,6683,6689, - 6686,785,4182,7073,7571,6414,6411,6420,6438,6417, - 6429,6399,6423,6426,6435,6432,6396,6959,6956,7073, - 6835,6832,7506,7507,7508,7073,6780,6780,228,6776, - 6262,6262,6262,228,228,228,6892,228,1,1, + 1,1,456,2245,228,307,6294,6290,3554,6287, + 6696,6702,6699,692,633,6705,1276,6705,3960,7089, + 7103,7104,1,6786,1,1,1,1735,2198,7089, + 2239,225,7499,7089,3187,228,6421,6415,6418,594, + 6741,6741,414,599,970,742,835,1,6294,6290, + 3691,6287,4702,4732,7587,692,633,7089,365,6427, + 6424,6433,6451,6430,6442,6412,6436,6439,6448,6445, + 6409,6771,7522,7523,7524,7089,6793,6793,228,6789, + 6275,6275,6275,228,228,228,6905,228,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,7073,2460,669,228,7073, - 6281,6277,3630,6274,6683,6689,6686,785,4182,6752, - 7109,6752,395,7087,7088,1,6773,1,1,1, - 226,2292,7073,1108,7483,6456,6450,6453,228,7073, - 6268,6265,288,7111,561,413,1,6281,6277,3630, - 6274,6683,6689,6686,785,4182,7073,7571,6462,6459, - 6468,6486,6465,6477,6447,6471,6474,6483,6480,6444, - 7073,11353,11294,7633,2081,7506,7507,7508,7073,6262, - 6262,228,6262,6255,6262,6262,228,228,228,6291, + 1,1,1,1,1,39,651,228,365,7127, + 970,742,835,365,365,329,1384,329,7089,6281, + 6278,373,7127,4252,5658,1,6786,1,1,1, + 561,2198,365,2239,226,7499,7089,311,228,6469, + 6463,6466,970,742,835,413,7089,6294,6290,3554, + 6287,6696,6702,6699,692,633,6705,7587,6705,7649, + 7089,1,6475,6472,6481,6499,6478,6490,6460,6484, + 6487,6496,6493,6457,6893,7522,7523,7524,7089,6275, + 6275,228,6275,6268,6275,6275,228,228,228,6304, 228,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,11579,1,1,1,1,1,1,693,309, - 7073,228,2491,7073,7073,6281,6277,3630,6274,6683, - 6689,6686,785,4182,6692,300,6692,452,1,6259, - 1,1,1,7073,723,7073,720,7284,7372,442, - 6755,6755,7073,6755,6755,6755,6755,601,219,6755, - 311,6755,6555,6549,6552,709,671,682,7073,136, - 7571,7672,7673,7336,7334,7343,7342,7338,7339,7337, - 7340,7341,7344,7335,7073,6561,6558,6567,6585,6564, - 6576,6546,6570,6573,6582,6579,6543,2460,1223,963, - 5430,1057,6704,7073,7087,7088,219,7073,6262,6262, - 228,6262,6255,6262,6262,228,228,228,228,228, + 1,11714,1,1,1,1,1,1,7089,2410, + 228,6896,3332,47,7089,6294,6290,3554,6287,6696, + 6702,6699,692,633,6765,7089,6765,3458,1,6272, + 1,1,1,185,724,7089,741,3960,7300,442, + 6768,6768,7089,6768,6768,6768,6768,602,219,6768, + 393,6768,6568,6562,6565,970,742,835,7089,135, + 7587,7689,7690,7352,7350,7359,7358,7354,7355,7353, + 7356,7357,7360,7351,878,6574,6571,6580,6598,6577, + 6589,6559,6583,6586,6595,6592,6556,2410,393,7089, + 7103,7104,386,970,742,835,219,7089,6275,6275, + 228,6275,6268,6275,6275,228,228,228,228,228, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 11579,1,1,1,1,1,1,289,7087,7088, - 228,29,385,385,6941,385,385,385,385,385, - 385,6941,6941,6941,7073,7087,7088,1,6259,1, - 1,1,2004,723,2946,720,7284,5320,1123,385, + 11714,1,1,1,1,1,1,7089,455,228, + 29,385,385,6930,385,385,385,385,385,385, + 6930,6930,6930,7089,11495,11438,7089,1,6272,1, + 1,1,7083,724,3001,741,7089,7300,385,385, 385,385,385,385,385,385,385,385,385,385, - 385,393,544,7618,6941,584,709,671,682,7571, - 6510,6504,6507,139,7073,7073,6281,6277,3630,6274, - 6683,6689,6686,785,4182,6752,6710,6752,7073,575, - 7619,6941,6941,6516,6513,6522,6540,6519,6531,6501, - 6525,6528,6537,6534,6498,220,7073,6262,6262,228, - 6262,6255,6262,6262,228,228,228,228,228,1, + 1883,7089,6930,7089,2892,585,7089,7089,139,7587, + 6523,6517,6520,3339,7089,6294,6290,3554,6287,6696, + 6702,6699,692,633,6765,6723,6765,6774,37,6930, + 7089,6930,346,6529,6526,6535,6553,6532,6544,6514, + 6538,6541,6550,6547,6511,220,7089,6275,6275,228, + 6275,6268,6275,6275,228,228,228,228,228,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,11579, - 1,1,1,1,1,1,39,185,2460,228, - 7111,7526,2173,596,6268,6265,3630,909,709,671, - 682,785,4182,36,6987,6984,1,6259,1,1, - 1,1206,723,1,720,7284,1222,7073,6268,6265, - 1179,909,4518,4548,6844,785,4182,1535,2125,2077, - 2029,1981,1933,1885,1837,1789,1741,1693,7571,7073, - 6262,6262,228,6262,6255,6262,6262,228,228,228, - 6770,228,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,11714, + 1,1,1,1,1,1,437,2126,228,7125, + 1910,1,6294,6290,3554,6287,6696,6702,6699,692, + 633,651,307,48,6508,6505,1,6272,1,1, + 1,1311,724,7089,741,1180,7300,7089,7089,7103, + 7104,7089,2665,2078,2030,1982,1934,1886,1838,1790, + 1742,1694,1645,307,7089,6848,6845,7089,7587,7089, + 6275,6275,228,6275,6268,6275,6275,228,228,228, + 6783,228,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,11579,1,1,1,1,1,1,574, - 7073,114,228,1,6281,6277,3630,6274,6683,6689, - 6686,785,4182,7080,307,290,7506,7507,7508,1, - 6259,1,1,1,7073,723,113,720,7284,1, - 6281,6277,3617,6274,7073,7085,7067,785,4182,220, - 365,456,438,392,6393,6393,307,282,6384,6390, - 6387,7571,7073,6262,6262,228,6262,6255,6262,6262, - 228,228,228,6770,228,1,1,1,1,1, + 1,1,11714,1,1,1,1,1,1,111, + 2245,228,1,6294,6290,3554,6287,6696,6702,6699, + 692,633,5449,1171,3469,7125,7522,7523,7524,1, + 6272,1,1,1,360,724,7089,741,452,7300, + 1,6969,6969,7089,6966,6696,6702,6699,589,220, + 329,361,329,970,742,835,7089,6281,6278,7089, + 7127,7587,7089,6275,6275,228,6275,6268,6275,6275, + 228,228,228,6783,228,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,11579,1,1,1,1, - 1,1,4518,4548,2501,228,7084,5342,5364,1596, - 365,38,6701,6698,282,365,365,6707,1384,6695, - 4182,6758,1,6259,1,1,1,1,723,7073, - 720,7284,5342,5364,365,43,6841,6841,6713,1, - 6965,6965,220,6962,6683,6689,6686,29,125,329, - 361,329,455,7073,7571,7073,6262,6262,228,6262, - 6255,6262,6262,228,228,228,6770,228,1,1, + 1,1,1,1,1,11714,1,1,1,1, + 1,1,597,6717,228,5552,5592,6869,6875,6872, + 1366,361,597,6281,6278,3554,903,970,742,835, + 692,633,1,6272,1,1,1,356,724,7089, + 741,438,7300,300,7089,361,1,6294,6290,3691, + 6287,7089,220,7089,692,633,7388,6921,29,43, + 6854,6854,7095,7089,7587,7089,6275,6275,228,6275, + 6268,6275,6275,228,228,228,6783,228,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,11579,1, - 1,1,1,1,1,1772,6838,7073,228,7084, - 1,6281,6277,6271,6274,7073,7087,7088,6288,6285, - 361,7083,1668,785,4182,1,6259,1,1,1, - 422,723,6761,720,7284,7073,343,39,39,3075, - 7111,709,671,682,361,220,329,316,329,588, - 6749,4518,4548,7082,709,671,682,7571,7073,6262, - 6262,228,6262,6255,6262,6262,228,228,228,228, + 1,1,1,1,1,1,1,1,11714,1, + 1,1,1,1,1,574,6720,228,7089,1179, + 1,6294,6290,6284,6287,651,7542,6924,6301,6298, + 6851,7099,7094,6723,840,1,6272,1,1,1, + 7528,724,7444,741,530,7300,343,39,39,4006, + 7127,970,742,835,316,220,329,6762,329,392, + 6406,6406,7098,282,6397,6403,6400,7587,7089,6275, + 6275,228,6275,6268,6275,6275,228,228,228,228, 228,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,11579,1,1,1,1,1,1,443,6923, - 6923,228,6917,6908,6914,6911,1596,393,6920,7073, - 6920,386,709,671,682,124,3903,1596,1,6259, - 1,1,1,1,723,530,720,7284,343,6268, - 6265,3617,909,709,671,682,785,4182,329,7073, - 329,394,594,6725,6725,385,598,6716,6722,6719, - 7571,7073,6262,6262,228,6262,6255,6262,6262,228, + 1,11714,1,1,1,1,1,1,4702,4732, + 228,3972,443,6951,6951,651,6945,6936,6942,6939, + 282,1,6948,651,6948,395,7103,7104,1,6272, + 1,1,1,1,724,290,741,7089,7300,343, + 6281,6278,3691,903,970,742,835,692,633,329, + 288,329,595,6738,6738,114,599,6729,6735,6732, + 7587,7089,6275,6275,228,6275,6268,6275,6275,228, 228,228,228,228,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,11579,1,1,1,1,1, - 1,123,3997,7073,228,92,6953,6953,1596,6953, - 6953,6953,6953,598,7083,6953,1668,6953,4518,4548, - 424,1,6259,1,1,1,7512,723,4074,720, - 7284,7073,7008,7008,7008,7008,7008,7008,7008,7008, - 7008,7008,596,7008,7073,393,7082,6856,6862,6859, - 709,671,682,7571,7073,6262,6262,228,6262,6255, - 6262,6262,228,228,228,228,228,1,1,1, + 1,1,1,1,11714,1,1,1,1,1, + 1,125,2307,228,7089,92,6975,6975,651,6975, + 6975,6975,6975,599,2451,6975,7446,6975,7089,11495, + 11438,1,6272,1,1,1,1487,724,3788,741, + 7089,7300,7089,7029,7029,7029,7029,7029,7029,7029, + 7029,7029,7029,393,7029,289,7103,7104,970,742, + 835,5552,5592,7587,7089,6275,6275,228,6275,6268, + 6275,6275,228,228,228,228,228,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,11579,1,1, - 1,1,1,1,4518,4548,3076,228,1,6281, - 6277,3617,6274,7073,7008,29,785,4182,345,6926, - 1668,3410,7073,7073,1,6259,1,1,1,7073, - 723,7073,720,7284,7073,1,6281,6277,3617,6274, - 7077,7073,7081,785,4182,1,6281,6277,5809,6274, - 7073,126,7083,5194,4182,5106,7571,5128,6787,6793, - 6790,6820,6826,6799,6802,6814,6811,6817,6808,6805, - 6796,6823,6829,1,6281,6277,3630,6274,1596,6929, - 6710,785,4182,129,7082,5084,5062,7092,1596,5172, - 5150,4988,1363,1525,7094,1381,5491,1415,7095,7093, - 1360,7089,7090,7091,5449,1596,7073,6268,6265,7073, - 909,7080,1637,346,785,4182,3844,3282,1,39, - 39,3075,514,39,6268,6265,5809,909,6895,6926, - 7073,5194,4182,5106,7061,5128,2353,7672,7673,7336, - 7334,7343,7342,7338,7339,7337,7340,7341,7344,7335, - 5246,3782,3751,7073,7076,7073,7087,7088,7073,3720, - 3644,3667,426,5084,5062,7092,7085,5172,5150,4988, - 1363,1525,7094,1381,5491,1415,7095,7093,1360,7089, - 7090,7091,5449,1596,7073,3581,3491,4313,1596,6929, - 1637,7073,120,7073,816,6868,39,6268,6265,5809, - 909,7073,7079,7080,5194,4182,5106,6865,5128,2353, - 7672,7673,7336,7334,7343,7342,7338,7339,7337,7340, - 7341,7344,7335,5246,37,6767,6767,7084,1,709, - 671,682,4876,4485,329,3342,5084,5062,7092,7085, - 5172,5150,4988,1363,1525,7094,1381,5491,1415,7095, - 7093,1360,7089,7090,7091,5449,7073,141,6268,6265, - 5809,909,7078,1637,7073,5194,4182,5106,6868,5128, - 2353,7672,7673,7336,7334,7343,7342,7338,7339,7337, - 7340,7341,7344,7335,5246,7109,7073,6495,6492,587, - 7073,7073,122,47,709,671,682,5084,5062,7092, - 7084,5172,5150,4988,1363,1525,7094,1381,5491,1415, - 7095,7093,1360,7089,7090,7091,5449,7073,7073,7073, - 1812,1960,119,7073,1637,550,6268,6265,5809,909, - 7079,39,39,5194,4182,5106,7073,5128,2353,7672, - 7673,7336,7334,7343,7342,7338,7339,7337,7340,7341, - 7344,7335,5246,1,1408,4674,3075,7073,3669,112, - 5320,1123,4876,4485,339,5084,5062,7092,7079,5172, - 5150,4988,1363,1525,7094,1381,5491,1415,7095,7093, - 1360,7089,7090,7091,5449,4518,4548,7073,5590,128, - 7078,300,1637,1,6281,6277,5809,6274,7079,39, - 39,5194,4182,5106,7372,5128,6787,6793,6790,6820, - 6826,6799,6802,6814,6811,6817,6808,6805,6796,6823, - 6829,7073,1,1596,339,1,7073,39,7078,339, - 339,7111,7079,5084,5062,7092,161,5172,5150,4988, - 1363,1525,7094,1381,5491,1415,7095,7093,1360,7089, - 7090,7091,5449,7073,3844,5342,5364,3186,7078,7073, - 1637,39,6268,6265,5809,909,6968,39,39,5194, - 4182,5106,6865,5128,2353,7672,7673,7336,7334,7343, - 7342,7338,7339,7337,7340,7341,7344,7335,5246,3782, - 3751,7073,7078,7073,2620,2,161,3720,3644,4035, - 7073,5084,5062,7092,7081,5172,5150,4988,1363,1525, - 7094,1381,5491,1415,7095,7093,1360,7089,7090,7091, - 5449,2644,7073,7073,329,2739,3905,3001,1637,6871, - 6877,6874,3951,6868,39,6268,6265,5809,909,7073, - 11533,11533,5194,4182,5106,7077,5128,2353,7672,7673, - 7336,7334,7343,7342,7338,7339,7337,7340,7341,7344, - 7335,5246,7073,6268,6265,5682,909,963,3970,1129, - 6853,4182,7073,7080,5084,5062,7092,7073,5172,5150, - 4988,1363,1525,7094,1381,5491,1415,7095,7093,1360, - 7089,7090,7091,5449,39,6268,6265,5809,909,37, - 7109,7073,5194,4182,5106,368,5128,2353,7672,7673, - 7336,7334,7343,7342,7338,7339,7337,7340,7341,7344, - 7335,5246,7073,1063,7073,6268,6265,100,909,37, - 6767,6767,6853,4182,5084,5062,7092,6767,5172,5150, - 4988,1363,1525,7094,1381,5491,1415,7095,7093,1360, - 7089,7090,7091,5449,39,6268,6265,5809,909,7076, - 7109,1637,5194,4182,5106,7073,5128,2353,7672,7673, - 7336,7334,7343,7342,7338,7339,7337,7340,7341,7344, - 7335,5246,595,7073,1434,3550,329,709,671,682, - 2052,709,671,682,5084,5062,7092,6981,5172,5150, - 4988,1363,1525,7094,1381,5491,1415,7095,7093,1360, - 7089,7090,7091,5449,7073,7073,7073,39,6268,6265, - 5809,909,7073,7073,2129,5194,4182,5106,7073,5128, - 2353,7672,7673,7336,7334,7343,7342,7338,7339,7337, - 7340,7341,7344,7335,5246,589,45,6935,6935,1, - 709,671,682,37,6767,6767,2552,5084,5062,7092, - 361,5172,5150,4988,1363,1525,7094,1381,5491,1415, - 7095,7093,1360,7089,7090,7091,5449,39,6268,6265, - 664,909,2198,7073,1637,5194,4182,5106,5756,5128, - 2353,7672,7673,7336,7334,7343,7342,7338,7339,7337, - 7340,7341,7344,7335,5246,415,7073,6932,7073,6038, - 709,671,682,7073,2100,7073,3094,5084,5062,7092, - 361,5172,5150,4988,1363,1525,7094,1381,5491,1415, - 7095,7093,1360,7089,7090,7091,5449,39,6268,6265, - 2759,909,3929,7073,361,5194,4182,5106,1668,5128, - 2353,7672,7673,7336,7334,7343,7342,7338,7339,7337, - 7340,7341,7344,7335,5246,591,99,1,590,7073, - 6990,6996,6993,6999,7005,7002,7073,5084,5062,7092, - 6880,5172,5150,4988,1363,1525,7094,1381,5491,1415, - 7095,7093,1360,7089,7090,7091,5449,39,6268,6265, - 5758,909,7073,7015,7011,5194,4182,5106,1206,5128, - 2353,7672,7673,7336,7334,7343,7342,7338,7339,7337, - 7340,7341,7344,7335,5246,416,7073,6883,3065,48, - 709,671,682,7088,3385,7073,7022,5084,5062,7092, - 7073,5172,5150,4988,1363,1525,7094,1381,5491,1415, - 7095,7093,1360,7089,7090,7091,5449,39,6268,6265, - 5782,909,334,7109,7073,5194,4182,5106,3053,5128, - 2353,7672,7673,7336,7334,7343,7342,7338,7339,7337, - 7340,7341,7344,7335,5246,403,7073,1,48,3155, - 7408,7409,7087,7073,7088,7073,6886,5084,5062,7092, - 6880,5172,5150,4988,1363,1525,7094,1381,5491,1415, - 7095,7093,1360,7089,7090,7091,5449,39,6268,6265, - 5809,909,7073,7073,7073,5194,4182,5106,6889,5128, - 2353,7672,7673,7336,7334,7343,7342,7338,7339,7337, - 7340,7341,7344,7335,5246,1,7073,6883,3065,3206, - 100,7073,7073,7087,3934,3774,7083,5084,5062,7092, - 139,5172,5150,4988,1363,1525,7094,1381,5491,1415, - 7095,7093,1360,7089,7090,7091,5449,39,6268,6265, - 2759,909,7073,7073,7073,5194,4182,5106,7082,5128, - 2353,7672,7673,7336,7334,7343,7342,7338,7339,7337, - 7340,7341,7344,7335,5246,1,73,7073,7073,130, - 4239,4016,103,7073,7073,7019,191,5084,5062,7092, - 6981,5172,5150,4988,1363,1525,7094,1381,5491,1415, - 7095,7093,1360,7089,7090,7091,5449,39,6268,6265, - 5809,909,7073,373,7073,5194,4182,5106,191,5128, - 2353,7672,7673,7336,7334,7343,7342,7338,7339,7337, - 7340,7341,7344,7335,5246,1,7073,1179,2,1, - 7073,7043,277,5222,1535,7064,163,5084,5062,7092, - 526,5172,5150,4988,1363,1525,7094,1381,5491,1415, - 7095,7093,1360,7089,7090,7091,5449,1,366,7073, - 1538,506,8,7073,504,7540,418,7534,7073,7538, - 7079,3581,3491,7070,1,2310,32,386,386,6938, - 386,386,386,386,386,386,6938,6938,6938,7073, - 7073,103,7073,37,7019,6040,163,7532,7533,2361, - 526,7563,7564,7541,386,386,386,386,386,386, - 386,386,386,386,386,386,643,519,7073,6938, - 7073,7073,7543,7073,7073,7073,7073,1037,7073,3929, - 7078,1718,1719,7565,7544,988,7542,1494,7073,7073, - 6043,3989,7070,6045,508,2593,6938,6938,7073,7073, - 7554,7553,7073,7566,7073,7535,7536,7559,7560,7557, - 7558,7537,7539,7561,7562,7079,7073,7073,2387,2409, - 7567,7073,7547,7548,7549,7545,7546,7555,7556,7551, - 7550,7552,7073,6268,6265,7073,7111,709,671,682, - 7073,7073,7073,7073,7073,665,7672,7673,7336,7334, - 7343,7342,7338,7339,7337,7340,7341,7344,7335,5030, - 7408,7409,7332,7326,7333,7329,7305,7331,7330,7327, - 7328,7306,1,3524,7073,7078,7073,7073,7073,7073, - 1544,7073,7073,7079,240,6637,6633,7073,6641,6600, - 6594,6597,7469,3929,3170,7470,7471,665,6647,6644, - 6674,6680,6653,6656,6668,6665,6671,6662,6659,6650, - 6677,5030,6606,6603,6612,6630,6609,6621,6591,6615, - 6618,6627,6624,6588,572,580,580,580,580,580, - 580,580,580,580,6974,6974,6974,75,127,7073, - 6743,7073,7073,7078,7469,7073,3170,7470,7471,7073, - 7073,7073,580,580,580,580,580,580,580,580, - 580,580,580,580,95,7040,7040,6974,7034,7025, - 7031,7028,7073,39,7037,7073,7037,7111,709,671, - 682,6734,6731,329,7073,329,7073,7073,7073,7073, - 7073,7046,7054,7050,580,6974,7073,7058,7079,7073, - 7073,7073,7073,3844,7073,7073,7073,6746,7073,7073, - 7073,7073,7073,7073,7073,6971,7073,7073,7073,7073, - 7073,7073,7073,7073,7073,7073,7073,7073,7073,7058, - 7073,7073,7073,7073,7073,7073,7073,7073,3782,3751, - 7073,7073,7073,7073,7073,7073,3720,3644,7073,7073, - 6737,7073,7073,7073,7073,7073,7073,7073,7078,7073, - 7073,7073,7058,6056,6740 + 1,1,1,1,1,1,1,11714,1,1, + 1,1,1,1,4702,4732,228,95,7056,7056, + 7089,7050,7041,7047,7044,7029,588,7053,1831,7053, + 7089,970,742,835,1,6272,1,1,1,7089, + 724,424,741,113,7300,1,6294,6290,3554,6287, + 6696,6702,6699,692,633,1,6294,6290,5917,6287, + 334,126,100,5398,633,5310,7587,5332,6800,6806, + 6803,6833,6839,6812,6815,6827,6824,6830,6821,6818, + 6809,6836,6842,7089,6281,6278,39,903,6981,6978, + 7127,692,633,4188,7089,5288,5266,139,7108,5376, + 5354,5191,1764,1978,7110,1862,5751,1956,7111,7109, + 1690,7105,7106,7107,5719,2594,1724,1493,2410,7089, + 6281,6278,1597,903,368,7089,3922,692,633,39, + 39,7008,514,39,6281,6278,5917,903,6908,5552, + 5592,5398,633,5310,7080,5332,1433,7689,7690,7352, + 7350,7359,7358,7354,7355,7353,7356,7357,7360,7351, + 5676,3858,3826,38,6714,6711,36,7005,7002,3794, + 3717,6708,633,5288,5266,3947,7108,5376,5354,5191, + 1764,1978,7110,1862,5751,1956,7111,7109,1690,7105, + 7106,7107,5719,7089,7103,7104,7522,7523,7524,300, + 1597,692,633,1434,1180,6881,39,6281,6278,5917, + 903,2665,7388,7096,5398,633,5310,6878,5332,1433, + 7689,7690,7352,7350,7359,7358,7354,7355,7353,7356, + 7357,7360,7351,5676,37,6780,6780,7089,394,970, + 742,835,385,7089,329,7089,5288,5266,7101,7108, + 5376,5354,5191,1764,1978,7110,1862,5751,1956,7111, + 7109,1690,7105,7106,7107,5719,7089,141,6281,6278, + 5917,903,136,1597,112,5398,633,5310,6881,5332, + 1433,7689,7690,7352,7350,7359,7358,7354,7355,7353, + 7356,7357,7360,7351,5676,7125,1,6294,6290,3691, + 6287,7089,124,1831,692,633,7089,5288,5266,7100, + 7108,5376,5354,5191,1764,1978,7110,1862,5751,1956, + 7111,7109,1690,7105,7106,7107,5719,7089,7089,7089, + 7103,7104,118,7089,1597,550,6281,6278,5917,903, + 7101,39,39,5398,633,5310,7089,5332,1433,7689, + 7690,7352,7350,7359,7358,7354,7355,7353,7356,7357, + 7360,7351,5676,1,7089,651,4006,7089,6508,6505, + 5552,5592,5103,5079,339,5288,5266,3001,7108,5376, + 5354,5191,1764,1978,7110,1862,5751,1956,7111,7109, + 1690,7105,7106,7107,5719,4702,4732,1,1772,128, + 4006,7100,1597,1,6294,6290,5917,6287,6921,39, + 39,5398,633,5310,7089,5332,6800,6806,6803,6833, + 6839,6812,6815,6827,6824,6830,6821,6818,6809,6836, + 6842,329,651,7089,339,115,6884,6890,6887,339, + 339,5449,1171,5288,5266,5151,7108,5376,5354,5191, + 1764,1978,7110,1862,5751,1956,7111,7109,1690,7105, + 7106,7107,5719,120,3922,119,651,7089,6924,7089, + 1597,39,6281,6278,5917,903,6984,39,39,5398, + 633,5310,6878,5332,1433,7689,7690,7352,7350,7359, + 7358,7354,7355,7353,7356,7357,7360,7351,5676,3858, + 3826,7089,7089,5103,5079,5103,5079,3794,3717,4252, + 3969,5288,5266,7097,7108,5376,5354,5191,1764,1978, + 7110,1862,5751,1956,7111,7109,1690,7105,7106,7107, + 5719,7089,1868,5127,4669,7089,7089,7089,1597,7089, + 7089,2387,1307,6881,39,6281,6278,5917,903,7089, + 7095,7095,5398,633,5310,7093,5332,1433,7689,7690, + 7352,7350,7359,7358,7354,7355,7353,7356,7357,7360, + 7351,5676,7089,6281,6278,1,903,7089,1129,39, + 6866,633,7096,7127,5288,5266,361,7108,5376,5354, + 5191,1764,1978,7110,1862,5751,1956,7111,7109,1690, + 7105,7106,7107,5719,39,6281,6278,5917,903,2721, + 7094,7094,5398,633,5310,123,5332,1433,7689,7690, + 7352,7350,7359,7358,7354,7355,7353,7356,7357,7360, + 7351,5676,596,2894,1,329,334,970,742,835, + 970,742,835,99,5288,5266,361,7108,5376,5354, + 5191,1764,1978,7110,1862,5751,1956,7111,7109,1690, + 7105,7106,7107,5719,7424,7425,7089,7089,7089,7092, + 361,6112,7089,2151,39,6281,6278,5917,903,7089, + 11497,11497,5398,633,5310,7089,5332,1433,7689,7690, + 7352,7350,7359,7358,7354,7355,7353,7356,7357,7360, + 7351,5676,7089,6281,6278,7089,903,2,4702,4732, + 6866,633,7038,7089,5288,5266,7095,7108,5376,5354, + 5191,1764,1978,7110,1862,5751,1956,7111,7109,1690, + 7105,7106,7107,5719,39,6281,6278,5917,903,4005, + 7125,1597,5398,633,5310,4066,5332,1433,7689,7690, + 7352,7350,7359,7358,7354,7355,7353,7356,7357,7360, + 7351,5676,590,2923,37,6780,6780,970,742,835, + 7089,7089,6780,6140,5288,5266,7094,7108,5376,5354, + 5191,1764,1978,7110,1862,5751,1956,7111,7109,1690, + 7105,7106,7107,5719,39,6281,6278,5833,903,519, + 7089,1597,5398,633,5310,366,5332,1433,7689,7690, + 7352,7350,7359,7358,7354,7355,7353,7356,7357,7360, + 7351,5676,7089,2997,7089,1814,45,6957,6957,37, + 6780,6780,7089,7095,5288,5266,1964,7108,5376,5354, + 5191,1764,1978,7110,1862,5751,1956,7111,7109,1690, + 7105,7106,7107,5719,39,6281,6278,5844,903,7089, + 6998,6994,5398,633,5310,2060,5332,1433,7689,7690, + 7352,7350,7359,7358,7354,7355,7353,7356,7357,7360, + 7351,5676,117,7089,1494,1,2691,6954,7089,1831, + 1718,7089,5151,7094,5288,5266,161,7108,5376,5354, + 5191,1764,1978,7110,1862,5751,1956,7111,7109,1690, + 7105,7106,7107,5719,39,6281,6278,5882,903,7089, + 7125,7089,5398,633,5310,3960,5332,1433,7689,7690, + 7352,7350,7359,7358,7354,7355,7353,7356,7357,7360, + 7351,5676,415,7089,100,592,122,970,742,835, + 7011,7017,7014,1311,5288,5266,161,7108,5376,5354, + 5191,1764,1978,7110,1862,5751,1956,7111,7109,1690, + 7105,7106,7107,5719,39,6281,6278,5898,903,7089, + 5127,4669,5398,633,5310,506,5332,1433,7689,7690, + 7352,7350,7359,7358,7354,7355,7353,7356,7357,7360, + 7351,5676,116,591,345,7089,7089,3127,7020,7026, + 7023,73,5151,7008,5288,5266,7093,7108,5376,5354, + 5191,1764,1978,7110,1862,5751,1956,7111,7109,1690, + 7105,7106,7107,5719,39,6281,6278,5917,903,4702, + 4732,7089,5398,633,5310,504,5332,1433,7689,7690, + 7352,7350,7359,7358,7354,7355,7353,7356,7357,7360, + 7351,5676,416,29,2824,7089,48,970,742,835, + 7104,3239,7089,651,5288,5266,7059,7108,5376,5354, + 5191,1764,1978,7110,1862,5751,1956,7111,7109,1690, + 7105,7106,7107,5719,39,6281,6278,5923,903,7089, + 5127,4669,5398,633,5310,7089,5332,1433,7689,7690, + 7352,7350,7359,7358,7354,7355,7353,7356,7357,7360, + 7351,5676,1,48,4068,2,7089,7103,1831,6155, + 7092,7104,7089,163,5288,5266,422,7108,5376,5354, + 5191,1764,1978,7110,1862,5751,1956,7111,7109,1690, + 7105,7106,7107,5719,39,6281,6278,5917,903,7089, + 7089,7089,5398,633,5310,7089,5332,1433,7689,7690, + 7352,7350,7359,7358,7354,7355,7353,7356,7357,7360, + 7351,5676,7089,7089,75,1,3388,6756,7103,7089, + 37,7089,3390,163,5288,5266,6726,7108,5376,5354, + 5191,1764,1978,7110,1862,5751,1956,7111,7109,1690, + 7105,7106,7107,5719,1,7089,7089,1301,3739,1, + 7089,8,7556,7089,7550,7089,7554,7095,6747,6744, + 6857,7097,7086,32,386,386,6927,386,386,386, + 386,386,386,6927,6927,6927,7089,7089,7089,3912, + 7089,7089,7089,6759,7548,7549,7089,7100,7579,7580, + 7557,386,386,386,386,386,386,386,386,386, + 386,386,386,7089,7089,6927,3573,3644,7089,7559, + 7089,4217,103,1627,403,7035,7089,7094,2130,2150, + 7581,7560,751,7558,7089,6899,2502,6750,2266,7096, + 7096,7086,6927,418,6927,7089,7089,7570,7569,1410, + 7582,6753,7551,7552,7575,7576,7573,7574,7553,7555, + 7577,7578,277,2314,4127,7077,6902,7583,7089,7563, + 7564,7565,7561,7562,7571,7572,7567,7566,7568,7089, + 6281,6278,1,7127,970,742,835,103,7089,7089, + 7035,5889,755,7689,7690,7352,7350,7359,7358,7354, + 7355,7353,7356,7357,7360,7351,5234,7424,7425,7348, + 7342,7349,7345,7321,7347,7346,7343,7344,7322,7089, + 7089,7089,2543,7089,1519,685,7089,7089,7089,7089, + 7089,240,6650,6646,7089,6654,6613,6607,6610,7485, + 7089,4255,7486,7487,755,6660,6657,6687,6693,6666, + 6669,6681,6678,6684,6675,6672,6663,6690,5234,6619, + 6616,6625,6643,6622,6634,6604,6628,6631,6640,6637, + 6601,572,580,580,580,580,580,580,580,580, + 580,6972,6972,6972,7089,7089,1,7089,7089,7089, + 127,7485,7089,4255,7486,7487,7095,7101,7099,580, + 580,580,580,580,580,580,580,580,580,580, + 580,7089,7089,6972,508,573,581,581,581,581, + 581,581,581,581,581,7032,7032,7032,7089,7098, + 7089,7089,7089,7062,7070,7066,7089,7089,7089,7074, + 580,7095,6972,581,581,581,581,581,581,581, + 581,581,581,581,581,3922,7094,7032,7100,7089, + 1,1544,1,3282,1,1,7089,6987,2362,7089, + 7074,7099,7089,526,7089,7095,191,7089,7089,7089, + 7089,7089,7089,7089,581,7089,7032,7089,7089,7089, + 3858,3826,7089,2829,7089,7089,7089,7089,3794,3717, + 7089,7094,7098,7089,7074,7089,4840,191,7089,7089, + 7089,7089,7089,7089,7089,7089,7089,7089,7089,7089, + 7089,7089,7089,7089,7089,7089,7089,7089,7089,7089, + 7089,7089,7089,526,7089,7094 }; }; public final static char termAction[] = TermAction.termAction; @@ -2258,67 +2267,68 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface Asb { public final static char asb[] = {0, - 1186,1,724,150,1057,1223,206,681,1281,633, - 1185,1091,1006,555,1114,555,555,555,55,1114, - 47,1114,629,1114,1114,1091,1009,1114,967,1101, - 1095,42,1223,1173,617,1114,1114,1017,1009,1114, - 1009,555,445,869,447,157,55,146,1009,1007, - 141,677,356,1281,153,49,203,47,633,1091, - 629,360,1009,1009,204,1093,967,967,967,967, - 967,967,967,967,967,967,576,619,967,555, - 445,445,445,445,1091,555,1114,54,54,801, - 821,58,58,1176,855,800,1173,1173,1009,1234, - 357,360,360,1114,299,357,1114,1114,445,1114, - 1009,492,877,169,158,158,157,157,157,1091, - 1009,1007,501,426,500,86,356,355,357,153, - 1009,51,1298,438,204,55,136,1009,360,204, - 1009,488,557,557,557,557,357,357,966,928, - 1237,1056,492,1114,947,1057,1057,1057,1057,1009, - 312,74,74,312,966,54,55,1091,821,255, - 1173,1114,1009,966,576,1173,821,488,1114,1114, - 360,360,1176,299,299,1007,877,169,157,138, - 157,1009,801,801,141,801,423,1281,845,844, - 356,138,1009,153,253,633,445,1005,1283,153, - 51,439,54,51,54,204,136,136,1009,869, - 834,758,763,760,767,765,774,772,776,775, - 777,302,778,868,1009,1093,1009,357,947,357, - 357,357,498,929,299,1056,966,357,357,869, - 869,869,869,204,357,1006,1008,1006,357,299, - 55,505,1009,555,299,791,1173,1180,357,138, - 55,1173,821,1183,1114,869,869,1114,357,70, - 830,69,868,445,432,432,138,138,1009,1010, - 357,86,357,311,357,492,1285,54,54,54, - 54,1009,136,138,624,82,1176,873,66,65, - 967,967,967,967,967,967,967,967,967,967, - 967,967,967,967,967,967,967,967,967,967, - 967,966,966,966,966,966,966,966,966,966, - 966,966,208,967,947,488,1120,1120,1091,619, - 967,640,967,966,928,253,967,253,801,927, - 555,555,555,929,555,1009,509,801,801,1009, - 55,967,1057,1114,1114,357,555,555,555,555, - 1009,1009,1009,1008,492,638,1091,1009,312,138, - 576,1114,1114,812,966,67,67,871,1176,3, - 169,158,169,867,867,801,357,845,1007,800, - 967,253,822,849,797,1285,54,54,804,138, - 967,1009,834,357,875,877,760,760,758,758, - 758,765,765,765,765,765,765,763,763,772, - 767,767,775,774,776,253,253,777,1009,492, - 1124,918,929,253,1012,929,947,947,945,1015, - 947,801,801,828,638,357,1114,1176,966,966, - 966,966,555,555,1093,1009,1007,638,357,576, - 1114,732,812,966,966,875,830,169,1057,1057, - 311,801,1285,967,967,797,797,1285,1285,505, - 1090,805,1009,357,877,966,966,204,1007,929, - 967,929,357,1173,357,945,1223,555,357,638, - 1114,1114,1114,966,1114,357,357,357,357,312, - 312,496,1114,1093,919,555,82,1114,814,868, - 797,797,804,1009,1091,1091,1009,861,357,1009, - 929,828,929,801,1223,966,929,926,1114,312, - 967,299,357,357,496,3,81,92,814,916, - 1009,1009,1009,861,861,1157,966,927,312,801, - 357,1114,357,299,357,357,1170,81,81,555, - 432,1009,1009,863,861,929,357,801,55,55, - 1172,878,867,863,863,929,845,1006,863,1057 + 1142,1,751,206,43,1179,445,708,1237,1038, + 1141,77,1012,634,1062,634,634,634,1031,1062, + 1023,1062,1034,1062,1062,77,1015,1062,973,1049, + 1043,201,1179,1121,1299,1062,1062,3,1015,1062, + 1015,634,531,844,128,396,1031,291,1015,1013, + 513,680,388,1237,392,1025,442,1023,1038,77, + 1034,447,1015,1015,443,79,973,973,973,973, + 973,973,973,973,973,973,1239,1301,973,634, + 531,531,531,531,77,634,1062,1030,1030,833, + 699,185,185,1124,871,832,1121,1121,1015,1190, + 389,447,447,1062,125,389,1062,1062,531,1062, + 1015,173,883,408,397,397,396,396,396,77, + 1015,1013,639,518,638,285,388,387,389,392, + 1015,1027,1133,524,443,1031,280,1015,447,443, + 1015,169,1239,1239,1239,1239,389,389,389,934, + 850,953,1193,42,173,1062,953,43,43,43, + 43,1015,344,224,224,344,972,1030,1031,77, + 699,81,1121,1062,1015,972,1258,1121,699,169, + 1062,1062,447,447,1124,125,125,1013,883,408, + 396,282,396,1015,833,833,513,833,510,1237, + 861,860,388,282,1015,392,586,1038,531,1011, + 209,392,1027,525,1030,1027,1030,443,280,280, + 1015,844,790,795,792,799,797,806,804,808, + 807,809,334,810,843,1015,79,1015,389,389, + 389,389,935,1124,879,193,192,636,1068,1068, + 77,1301,973,643,125,42,972,389,389,844, + 844,844,844,443,389,972,1012,1014,1012,389, + 125,1031,684,1015,634,125,823,1121,1128,389, + 282,1031,1121,699,1131,1062,844,844,1062,389, + 197,846,196,843,531,179,179,282,282,1015, + 1016,389,285,389,343,389,173,211,1030,1030, + 1030,1030,1015,280,282,759,232,973,973,973, + 973,973,973,973,973,973,973,973,973,973, + 973,973,973,973,973,973,973,973,972,972, + 972,972,972,972,972,972,972,972,972,541, + 973,953,169,973,934,586,973,586,833,933, + 634,634,634,935,634,1015,588,833,833,1015, + 1031,850,389,881,883,972,1015,173,1072,1239, + 973,43,1062,1062,389,634,634,634,634,1015, + 1015,1015,1014,173,688,77,1015,344,282,1258, + 1062,1062,690,972,194,194,877,1124,295,408, + 397,408,842,842,833,389,861,1013,832,973, + 586,700,865,829,211,1030,1030,533,282,973, + 1015,792,792,790,790,790,797,797,797,797, + 797,797,795,795,804,799,799,807,806,808, + 586,586,809,924,935,586,1018,935,953,953, + 951,1021,953,833,833,706,688,389,883,443, + 1013,389,389,1062,1124,972,972,972,972,634, + 634,79,1015,1013,688,389,1258,1062,764,690, + 972,972,881,846,408,43,43,343,833,211, + 973,973,829,829,211,211,684,76,534,1015, + 972,972,935,973,935,389,1121,389,951,1179, + 634,389,688,836,389,1015,1072,1062,1062,1062, + 972,1062,389,389,389,389,344,344,177,1062, + 79,925,634,232,1062,692,843,829,829,533, + 1015,77,77,1015,935,706,935,833,1179,972, + 935,932,836,836,1105,1062,344,973,125,389, + 389,177,295,231,236,692,922,1015,1015,1015, + 972,933,344,833,389,838,836,1062,389,125, + 389,389,1118,231,231,634,179,1015,1015,935, + 389,833,838,838,1031,1031,1120,884,842,935, + 838,861,1012,43 }; }; public final static char asb[] = Asb.asb; @@ -2326,137 +2336,137 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface Asr { public final static char asr[] = {0, - 128,0,14,15,5,31,16,17,60,28, - 18,62,32,33,19,34,35,20,21,36, - 37,22,23,38,63,39,13,64,24,30, - 25,29,26,1,2,4,27,6,7,95, - 0,11,73,72,78,0,61,4,1,2, - 6,7,5,73,72,11,0,5,78,73, - 43,72,6,7,3,70,77,79,76,11, - 71,95,0,9,4,61,8,1,2,0, - 43,11,80,76,0,11,76,71,1,28, - 0,74,75,67,44,45,12,10,40,41, - 8,46,51,59,27,3,4,9,56,57, - 58,42,54,49,53,17,26,16,22,20, - 21,23,24,19,18,25,14,15,13,48, - 52,50,47,55,72,1,2,80,11,0, - 11,73,71,42,0,11,72,79,0,3, - 29,0,110,111,112,73,80,9,11,3, - 12,10,8,43,69,66,92,68,14,15, - 5,31,16,17,60,28,18,62,32,33, - 19,34,35,20,21,36,37,22,23,38, - 63,39,13,64,24,30,25,29,26,27, - 6,7,4,1,2,61,0,14,15,16, + 128,0,75,74,40,41,10,98,99,104, + 12,105,8,46,79,65,77,118,119,115, + 116,117,123,122,124,94,93,120,121,102, + 103,100,101,106,107,44,45,76,96,113, + 69,3,17,26,16,22,20,21,23,24, + 19,18,25,14,15,27,13,62,60,63, + 64,31,37,38,33,36,35,32,28,29, + 5,7,6,34,39,30,1,2,4,0, + 74,75,3,13,48,52,50,47,55,17, + 26,16,22,20,21,23,24,19,18,25, + 14,15,56,57,58,43,54,49,53,8, + 9,4,44,45,12,10,40,41,46,51, + 59,27,1,2,125,11,0,14,15,31, + 16,17,60,28,18,62,32,92,33,19, + 34,35,20,21,36,66,37,22,23,38, + 63,39,13,64,24,68,30,25,29,26, + 3,12,4,42,27,70,72,11,5,10, + 6,7,9,61,1,2,8,0,77,79, + 76,1,2,0,5,78,73,42,72,6, + 7,3,69,77,79,76,11,71,95,0, + 11,73,72,78,0,3,29,0,42,11, + 3,9,8,73,12,10,4,1,2,6, + 7,5,0,9,4,61,8,1,2,0, + 42,11,80,76,0,74,75,67,44,45, + 12,10,40,41,8,46,51,59,27,3, + 4,9,56,57,58,43,54,49,53,17, + 26,16,22,20,21,23,24,19,18,25, + 14,15,13,48,52,50,47,55,72,1, + 2,80,11,0,11,76,71,1,28,0, + 11,72,79,0,14,15,5,31,16,17, + 60,28,18,62,32,33,19,34,35,20, + 21,36,37,22,23,38,63,39,13,64, + 24,30,25,29,26,1,2,4,27,6, + 7,95,0,5,77,73,95,125,80,42, + 6,7,76,14,15,16,17,47,74,18, + 48,49,19,20,21,75,9,50,22,23, + 51,52,53,67,54,55,13,24,25,26, + 56,57,58,43,2,44,45,12,10,40, + 41,8,46,4,27,59,3,1,71,11, + 0,110,111,112,73,80,9,11,3,12, + 10,8,42,70,66,92,68,14,15,5, + 31,16,17,60,28,18,62,32,33,19, + 34,35,20,21,36,37,22,23,38,63, + 39,13,64,24,30,25,29,26,27,6, + 7,4,1,2,61,0,14,15,5,31, + 16,17,60,28,47,74,18,48,62,32, + 33,49,19,34,35,20,21,36,75,9, + 37,50,22,23,51,38,52,63,53,67, + 54,39,55,13,64,24,30,25,29,26, + 56,57,58,43,2,3,44,45,12,40, + 41,8,46,77,4,27,59,6,7,1, + 10,0,11,73,71,43,0,11,73,76, + 71,3,0,4,11,73,72,6,7,5, + 65,0,30,1,2,4,110,111,112,0, + 14,15,16,17,47,74,18,48,49,19, + 20,21,75,9,50,22,23,51,52,53, + 67,54,55,13,24,25,26,56,57,58, + 43,1,2,3,44,45,12,10,40,41, + 8,46,4,27,59,73,0,14,15,16, 17,47,74,18,48,49,19,20,21,75, 9,50,22,23,51,52,53,67,54,55, - 13,24,25,26,56,57,58,42,1,2, - 3,44,45,12,10,40,41,8,46,4, - 27,59,73,0,74,75,3,13,48,52, - 50,47,55,17,26,16,22,20,21,23, - 24,19,18,25,14,15,56,57,58,42, - 54,49,53,8,9,4,44,45,12,10, - 40,41,46,51,59,27,1,2,125,11, - 0,5,77,73,95,125,80,43,6,7, - 76,14,15,16,17,47,74,18,48,49, - 19,20,21,75,9,50,22,23,51,52, - 53,67,54,55,13,24,25,26,56,57, - 58,42,2,44,45,12,10,40,41,8, - 46,4,27,59,3,1,71,11,0,14, - 15,5,31,16,17,60,28,47,74,18, - 48,62,32,33,49,19,34,35,20,21, - 36,75,9,37,50,22,23,51,38,52, - 63,53,67,54,39,55,13,64,24,30, - 25,29,26,56,57,58,42,2,3,44, - 45,12,40,41,8,46,77,4,27,59, - 6,7,1,10,0,11,73,76,71,3, - 0,77,79,76,1,2,0,4,11,73, - 72,6,7,5,65,0,14,15,31,16, - 17,60,28,18,62,32,92,33,19,34, - 35,20,21,36,66,37,22,23,38,63, - 39,13,64,24,68,30,25,29,26,3, - 12,4,43,27,69,72,11,5,10,6, - 7,9,61,1,2,8,0,125,43,76, - 71,11,73,0,11,72,76,0,14,15, - 16,17,47,74,18,48,49,19,20,21, - 75,9,50,22,23,51,52,53,67,54, - 55,13,24,25,26,56,57,58,42,1, - 2,44,45,12,10,40,41,8,46,4, - 27,59,43,11,3,0,5,31,60,28, - 62,32,33,34,35,36,37,38,63,39, - 64,30,29,6,7,14,15,16,17,47, - 18,48,49,19,20,21,50,22,23,51, - 52,53,67,54,55,13,24,25,26,56, - 57,58,42,3,44,45,12,10,40,41, - 46,4,27,59,72,11,9,8,1,2, - 75,74,0,11,76,80,79,0,4,6, - 7,5,72,11,1,2,0,126,0,14, - 15,5,31,16,17,28,18,32,33,19, - 34,35,20,21,36,9,37,22,23,38, - 39,24,30,25,29,26,1,2,70,12, - 10,8,4,43,6,7,71,11,3,0, - 60,28,18,62,32,19,34,35,20,21, - 36,37,22,23,38,63,39,64,24,30, - 25,29,26,17,16,31,27,15,14,11, - 3,12,10,43,68,92,33,69,65,6, - 7,5,61,9,1,2,8,4,13,66, - 0,31,32,33,34,35,36,9,37,38, - 67,78,39,30,1,2,70,3,127,113, - 44,45,8,4,72,28,29,97,96,10, - 98,99,40,41,94,93,65,100,101,108, - 109,102,103,12,104,105,106,77,71,79, - 115,116,117,118,119,120,121,122,123,124, - 73,95,125,80,107,114,6,7,5,76, - 43,11,0,30,1,2,4,110,111,112, - 0,28,29,67,78,77,73,95,71,72, - 3,5,11,76,43,6,7,79,0,95, - 9,8,79,77,5,1,2,12,10,4, - 6,7,70,3,71,11,76,0,73,5, - 70,6,7,65,11,76,43,79,3,0, - 28,29,67,11,95,71,79,76,77,0, - 8,9,3,70,10,12,95,14,15,5, - 31,16,17,28,18,62,32,33,19,34, - 35,20,21,36,37,22,23,38,63,39, - 13,64,24,30,25,29,26,1,2,4, - 27,6,7,71,11,60,0,71,92,110, - 111,112,61,73,128,126,129,80,69,78, - 68,66,82,84,90,88,81,86,87,89, - 91,72,83,85,43,11,5,31,60,28, - 62,32,33,34,35,36,37,38,63,39, - 64,30,29,6,7,67,74,75,48,52, - 50,47,55,17,26,16,22,20,21,23, - 24,19,18,25,14,15,56,57,58,42, - 54,49,53,3,44,45,12,10,40,41, - 46,51,59,27,13,4,9,8,2,1, - 0,73,95,0,81,0,75,74,40,41, - 10,98,99,104,12,105,8,46,79,65, - 77,118,119,115,116,117,123,122,124,94, - 93,120,121,102,103,100,101,106,107,44, - 45,76,96,113,70,3,17,26,16,22, - 20,21,23,24,19,18,25,14,15,27, - 13,62,60,63,64,31,37,38,33,36, - 35,32,28,29,5,7,6,34,39,30, - 1,2,4,0,27,13,62,60,63,64, - 17,26,16,22,20,21,23,24,19,18, - 25,14,15,78,73,95,125,80,72,127, - 113,44,45,97,96,40,41,98,99,93, - 94,65,77,100,101,102,103,104,105,106, - 107,114,79,115,116,117,118,119,120,121, - 122,123,124,76,108,109,31,28,32,33, - 34,35,36,37,38,39,30,29,43,11, - 71,70,8,9,3,12,1,2,4,6, - 7,5,10,0,80,14,15,31,16,17, - 60,28,18,62,32,19,34,35,20,21, - 36,37,22,23,38,63,39,13,64,24, - 30,25,29,26,27,128,69,66,33,92, - 68,61,5,11,43,6,7,8,9,1, - 2,4,3,10,12,0,74,75,44,45, - 12,10,40,41,8,46,51,59,27,3, - 4,9,56,57,58,54,49,53,17,26, + 13,24,25,26,56,57,58,43,1,2, + 44,45,12,10,40,41,8,46,4,27, + 59,42,11,3,0,125,42,76,71,11, + 73,0,14,15,5,31,16,17,28,18, + 32,33,19,34,35,20,21,36,9,37, + 22,23,38,39,24,30,25,29,26,1, + 2,69,12,10,8,4,42,6,7,71, + 11,3,0,11,72,76,0,126,0,28, + 29,67,78,77,73,95,71,72,3,5, + 11,76,42,6,7,79,0,60,28,18, + 62,32,19,34,35,20,21,36,37,22, + 23,38,63,39,64,24,30,25,29,26, + 17,16,31,27,15,14,11,3,12,10, + 42,68,92,33,70,65,6,7,5,61, + 9,1,2,8,4,13,66,0,11,76, + 80,79,0,31,32,33,34,35,36,9, + 37,38,67,78,39,30,1,2,69,3, + 127,113,44,45,8,4,72,28,29,97, + 96,10,98,99,40,41,94,93,65,100, + 101,108,109,102,103,12,104,105,106,77, + 71,79,115,116,117,118,119,120,121,122, + 123,124,73,95,125,80,107,114,6,7, + 5,76,42,11,0,28,29,67,11,95, + 71,79,76,77,0,95,9,8,79,77, + 5,1,2,12,10,4,6,7,69,3, + 71,11,76,0,73,5,69,6,7,65, + 11,76,42,79,3,0,8,9,3,69, + 10,12,95,14,15,5,31,16,17,28, + 18,62,32,33,19,34,35,20,21,36, + 37,22,23,38,63,39,13,64,24,30, + 25,29,26,1,2,4,27,6,7,71, + 11,60,0,71,92,110,111,112,61,73, + 128,126,129,80,70,78,68,66,82,84, + 90,88,81,86,87,89,91,72,83,85, + 42,11,62,60,63,64,31,37,38,33, + 36,35,30,32,28,29,5,7,6,34, + 39,67,74,75,48,52,50,47,55,17, + 26,16,22,20,21,23,24,19,18,25, + 14,15,56,57,58,43,54,49,53,3, + 44,45,12,10,40,41,46,51,59,27, + 13,4,9,8,2,1,0,73,95,0, + 81,0,61,4,1,2,6,7,5,73, + 72,11,0,4,6,7,5,72,11,1, + 2,0,27,13,62,60,63,64,17,26, 16,22,20,21,23,24,19,18,25,14, - 15,13,48,52,50,47,55,70,1,2, - 42,0,43,11,3,9,8,73,12,10, - 4,1,2,6,7,5,0,4,11,73, - 72,6,7,5,0 + 15,78,73,95,125,80,72,127,113,44, + 45,97,96,40,41,98,99,93,94,65, + 77,100,101,102,103,104,105,106,107,114, + 79,115,116,117,118,119,120,121,122,123, + 124,76,108,109,31,28,32,33,34,35, + 36,37,38,39,30,29,42,11,71,69, + 8,9,3,12,1,2,4,6,7,5, + 10,0,4,11,73,72,6,7,5,0, + 80,14,15,31,16,17,60,28,18,62, + 32,19,34,35,20,21,36,37,22,23, + 38,63,39,13,64,24,30,25,29,26, + 27,128,70,66,33,92,68,61,5,11, + 42,6,7,8,9,1,2,4,3,10, + 12,0,74,75,44,45,12,10,40,41, + 8,46,51,59,27,3,4,9,56,57, + 58,54,49,53,17,26,16,22,20,21, + 23,24,19,18,25,14,15,13,48,52, + 50,47,55,69,1,2,43,0,5,31, + 60,28,62,32,33,34,35,36,37,38, + 63,39,64,30,29,6,7,67,44,45, + 12,10,40,41,46,51,59,27,3,4, + 56,57,58,43,54,49,53,17,26,16, + 22,20,21,23,24,19,18,25,14,15, + 13,48,52,50,47,55,72,11,9,8, + 1,2,75,74,0 }; }; public final static char asr[] = Asr.asr; @@ -2464,67 +2474,68 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface Nasb { public final static char nasb[] = {0, - 235,13,19,81,5,282,13,194,13,21, - 194,70,70,13,254,13,13,13,209,254, - 147,254,147,254,13,11,228,254,66,253, - 246,222,140,217,177,13,13,231,271,13, - 228,13,13,13,208,222,209,13,264,264, - 77,307,16,13,222,83,70,262,21,70, - 262,222,228,12,13,13,66,66,66,66, - 66,66,66,66,66,66,159,228,267,13, - 13,13,13,13,70,13,13,222,44,156, - 147,26,26,291,59,13,173,256,228,13, - 307,222,222,113,107,307,13,13,13,13, - 12,133,222,222,194,194,222,235,222,70, - 126,177,307,13,13,46,72,13,307,274, - 84,147,147,13,264,209,222,264,34,53, - 84,94,158,158,158,158,307,307,66,56, - 66,61,133,13,190,39,39,39,39,228, - 48,28,28,48,168,44,137,98,262,102, - 173,262,228,128,64,141,147,243,147,147, - 34,34,291,107,107,177,151,151,235,57, - 235,264,156,156,77,156,13,77,307,13, - 307,57,228,156,13,125,13,19,281,274, - 147,147,222,262,222,53,222,272,12,13, - 182,13,13,13,13,13,13,13,13,13, - 13,66,13,13,84,13,12,307,1,307, - 307,307,13,205,107,39,128,307,307,13, - 13,13,13,132,307,176,228,176,307,107, - 137,13,264,13,107,13,257,147,307,222, - 209,256,262,13,222,13,13,297,307,13, - 215,13,13,13,111,111,57,57,126,13, - 307,46,307,66,307,133,140,222,222,14, - 14,84,272,57,13,13,291,181,26,26, - 66,66,66,66,66,66,66,66,66,66, - 66,66,66,66,66,66,66,66,66,66, - 66,66,66,66,66,66,66,66,66,66, - 66,66,90,66,34,94,13,13,11,228, - 66,13,66,66,164,13,118,13,156,13, - 13,13,13,165,13,272,154,156,156,272, - 161,66,39,222,87,307,13,13,13,13, - 84,12,228,211,133,222,98,12,48,57, - 222,147,199,222,66,13,13,214,291,151, - 151,194,222,13,13,156,307,307,177,156, - 66,13,75,13,147,256,14,14,201,57, - 66,272,295,307,289,222,13,13,13,13, + 252,13,34,54,5,57,13,203,13,29, + 203,96,96,13,265,13,13,13,212,265, + 173,265,173,265,13,11,41,265,92,264, + 257,232,166,227,195,13,13,14,285,13, + 41,13,13,13,211,232,212,13,270,270, + 135,302,122,13,232,199,96,279,29,96, + 279,232,41,12,13,13,92,92,92,92, + 92,92,92,92,92,92,294,41,281,13, + 13,13,13,13,96,13,13,232,133,177, + 173,52,52,290,72,13,191,273,41,13, + 302,232,232,36,23,302,13,13,13,13, + 12,76,232,232,203,203,232,252,232,96, + 151,195,302,13,13,107,64,13,302,234, + 200,173,173,13,270,212,232,270,44,84, + 200,112,294,294,294,294,302,302,302,69, + 242,1,92,105,76,13,296,49,49,49, + 49,41,109,78,78,109,218,133,184,98, + 279,18,191,279,41,102,90,167,173,267, + 173,173,44,44,290,23,23,195,181,181, + 252,70,252,270,177,177,135,177,13,135, + 302,13,302,70,41,177,13,150,13,34, + 56,234,173,173,232,279,232,84,232,286, + 12,13,13,13,13,13,13,13,13,13, + 13,13,92,13,13,200,13,12,302,302, + 302,302,208,290,241,52,52,13,13,13, + 11,41,92,13,23,49,102,302,302,13, + 13,13,13,75,302,92,194,41,194,302, + 23,184,13,270,13,23,13,274,173,302, + 232,212,273,279,13,232,13,13,248,302, + 13,225,13,13,13,39,39,70,70,151, + 13,302,107,302,92,302,76,166,232,232, + 131,131,200,286,70,13,13,92,92,92, + 92,92,92,92,92,92,92,92,92,92, + 92,92,92,92,92,92,92,92,92,92, + 92,92,92,92,92,92,92,92,92,162, + 92,44,112,92,214,13,143,13,177,13, + 13,13,13,215,13,286,175,177,177,286, + 140,246,302,288,232,92,41,76,13,294, + 92,49,232,137,302,13,13,13,13,200, + 12,41,157,76,232,98,12,109,70,232, + 173,160,232,92,13,13,224,290,181,181, + 203,232,13,13,177,302,302,195,177,92, + 13,187,13,173,273,131,131,153,70,92, + 286,13,13,13,13,13,13,13,13,13, 13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,228,133, - 13,13,165,13,13,165,224,224,149,13, - 224,156,156,13,222,307,116,297,168,168, - 168,168,13,13,13,271,84,51,307,64, - 222,199,199,66,66,289,171,151,39,39, - 66,156,141,66,66,262,147,256,13,13, - 70,79,264,307,151,66,66,131,84,165, - 66,165,307,217,307,301,222,13,307,51, - 222,24,13,168,297,307,307,307,307,48, - 48,212,13,13,109,13,57,199,222,13, - 147,262,186,264,70,70,12,222,307,84, - 165,13,165,156,141,168,165,109,116,48, - 66,107,307,307,212,39,42,63,135,13, - 12,264,264,199,222,13,66,13,240,156, - 307,24,307,107,307,307,222,42,13,13, - 111,12,12,222,199,165,307,156,161,161, - 215,305,13,135,222,165,307,176,135,39 + 13,13,13,13,215,13,13,215,304,304, + 179,13,304,177,177,13,232,302,181,74, + 200,302,302,120,248,218,218,218,218,13, + 13,13,285,200,67,302,90,232,160,160, + 92,92,288,189,181,49,49,92,177,167, + 92,92,279,173,273,13,13,96,125,270, + 92,92,215,92,215,302,227,302,25,232, + 13,302,67,232,302,200,13,232,127,13, + 218,248,302,302,302,302,109,109,158,13, + 13,32,13,70,160,232,13,173,279,116, + 270,96,96,12,215,13,215,177,167,218, + 215,32,160,232,13,120,109,92,23,302, + 302,158,49,87,89,129,13,12,270,270, + 92,13,221,177,302,232,160,127,302,23, + 302,302,232,87,13,13,39,12,12,215, + 302,177,129,232,140,140,225,300,13,215, + 129,302,194,49 }; }; public final static char nasb[] = Nasb.nasb; @@ -2533,36 +2544,36 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface Nasr { public final static char nasr[] = {0, 13,3,10,9,162,187,160,131,159,158, - 5,2,0,118,0,215,31,0,167,0, - 1,43,0,152,0,87,0,5,2,9, - 10,150,0,5,10,9,2,13,4,48, - 0,173,0,170,0,183,0,4,103,0, - 172,0,2,73,0,4,81,0,198,0, - 189,0,81,139,43,13,2,9,10,5, - 0,31,185,0,205,0,146,0,207,0, - 216,0,50,2,3,0,4,191,0,4, - 44,125,0,73,149,148,0,180,5,179, - 0,13,2,9,10,5,89,0,124,0, - 116,0,4,209,0,154,0,13,2,9, - 10,5,218,0,43,112,0,4,35,0, - 2,125,73,0,136,0,43,171,0,97, - 4,5,10,9,2,67,41,0,44,195, - 23,4,0,4,44,45,0,48,4,44, - 43,54,0,81,43,53,74,4,44,0, - 101,100,41,67,69,5,10,9,2,0, - 31,100,101,4,0,5,108,176,0,4, - 48,44,0,4,53,88,90,0,70,0, - 5,108,206,0,53,44,193,4,43,0, - 2,126,0,31,101,100,67,5,2,9, - 10,4,0,4,48,110,0,2,50,0, - 4,48,210,0,111,88,53,4,0,4, - 192,0,41,73,0,2,5,131,127,128, - 129,147,13,93,0,4,5,10,9,2, - 67,24,0,2,68,0,5,10,9,13, - 3,1,0,4,53,88,108,51,5,0, - 45,5,2,9,10,4,169,0,23,4, - 5,41,97,0,101,100,41,5,69,0, - 48,4,194,0,48,4,31,0 + 5,2,0,4,48,210,0,13,2,9, + 10,5,89,0,48,4,194,0,1,43, + 0,124,0,167,0,4,209,0,116,0, + 2,50,0,5,10,9,2,13,4,48, + 0,87,0,216,0,45,5,2,9,10, + 4,169,0,30,185,0,172,0,4,81, + 0,198,0,2,125,73,0,5,2,9, + 10,150,0,2,73,0,173,0,81,139, + 43,13,2,9,10,5,0,180,5,179, + 0,4,34,0,189,0,183,0,4,103, + 0,73,149,148,0,5,108,176,0,154, + 0,215,30,0,207,0,152,0,136,0, + 118,0,170,0,146,0,4,191,0,43, + 51,0,13,2,9,10,5,218,0,43, + 112,0,5,108,206,0,2,126,0,70, + 0,4,44,125,0,97,4,5,10,9, + 2,67,41,0,4,44,45,0,44,195, + 22,4,0,43,171,0,205,0,101,100, + 41,67,69,5,10,9,2,0,50,2, + 3,0,4,54,88,90,0,54,44,193, + 4,43,0,81,43,54,74,4,44,0, + 4,192,0,30,101,100,67,5,2,9, + 10,4,0,4,54,88,108,52,5,0, + 30,100,101,4,0,101,100,41,5,69, + 0,111,88,54,4,0,2,5,131,127, + 128,129,147,13,93,0,41,73,0,2, + 68,0,4,5,10,9,2,67,24,0, + 5,10,9,13,3,1,0,22,4,5, + 41,97,0,43,51,4,48,44,0,48, + 4,30,0,4,48,110,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -2574,9 +2585,9 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym 119,9,104,48,49,52,56,64,72,78, 79,90,91,106,109,111,126,58,110,108, 51,68,70,74,77,80,87,93,102,11, - 12,116,124,7,8,14,59,65,71,88, + 12,124,116,7,8,14,59,65,71,88, 92,94,98,101,103,113,114,115,127,57, - 97,67,95,105,19,81,99,107,130,1, + 97,67,95,105,19,81,99,107,1,130, 122,125,30,62,82,44,20,100,33,123, 112,53,54,60,61,63,73,75,76,89, 96,69,17,18,32,6,4,15,16,21, @@ -2592,11 +2603,11 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public final static char nonterminalIndex[] = {0, 137,142,143,0,0,141,0,0,236,242, 140,0,150,139,0,0,149,155,0,0, - 156,165,187,251,0,0,0,166,167,168, - 133,169,170,171,158,172,173,174,175,0, + 156,187,165,251,0,0,0,166,167,133, + 168,169,170,158,171,172,173,174,175,0, 252,148,136,138,135,176,0,159,145,144, - 184,0,0,179,0,0,0,0,0,0, - 0,211,0,0,152,208,212,0,162,193, + 179,184,0,0,0,0,0,0,0,0, + 152,0,211,0,0,208,212,0,162,193, 182,0,0,178,0,0,0,0,0,0, 134,0,0,0,0,0,213,0,132,185, 0,0,192,0,0,164,209,219,215,216, @@ -2624,17 +2635,17 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym 366,388,410,428,112,377,495,533,252,697, 583,90,121,141,150,155,160,215,280,383, 421,436,441,65,229,358,372,611,97,229, - 485,441,716,97,302,333,1,53,57,61, - 73,84,131,146,176,446,464,468,551,576, - 605,632,636,726,730,734,167,77,167,513, - 529,542,560,624,186,186,314,542,647,663, - 674,685,292,594,13,25,48,126,126,241, - 307,7,126,328,349,7,7,126,472,573, - 580,241,126,749,7,42,180,450,517,557, - 567,126,195,401,450,195,195,401,504,262, - 18,18,33,174,33,33,33,33,555,738, - 745,18,18,37,323,738,745,135,523,222, - 174,323,174,338 + 485,441,716,97,302,333,1,37,37,57, + 61,73,84,131,146,176,446,464,468,551, + 576,605,632,636,726,730,734,167,77,167, + 513,529,542,560,624,186,186,314,542,647, + 663,674,685,292,594,13,25,54,126,126, + 241,307,7,126,328,349,7,7,126,472, + 573,580,241,126,749,7,48,180,450,517, + 557,567,126,195,401,450,195,195,401,504, + 262,18,18,33,174,33,33,33,33,555, + 738,745,18,18,43,323,738,745,135,523, + 222,174,323,174,338 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2642,21 +2653,21 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface ScopeSuffix { public final static char scopeSuffix[] = { - 88,51,51,220,51,51,51,51,482,220, + 88,41,41,220,41,41,41,41,482,220, 165,220,220,434,118,363,501,539,258,137, 589,95,95,95,129,129,165,220,285,220, 426,426,434,70,234,363,171,616,108,237, - 490,703,721,102,296,296,5,51,51,51, - 51,88,51,129,165,426,165,165,220,331, - 51,51,51,51,51,331,747,81,171,482, - 482,482,564,616,190,204,318,546,651,651, - 651,651,296,598,16,16,51,129,129,51, - 51,310,312,331,51,5,5,312,165,51, - 331,51,609,51,10,45,183,453,520,45, - 570,628,190,416,619,198,209,404,507,265, - 23,31,35,165,456,458,460,462,165,740, - 740,20,28,39,325,742,742,137,525,224, - 287,318,272,340 + 490,703,721,102,296,296,5,41,41,41, + 41,41,88,41,129,165,426,165,165,220, + 331,41,41,41,41,41,331,747,81,171, + 482,482,482,564,616,190,204,318,546,651, + 651,651,651,296,598,16,16,41,129,129, + 41,41,310,312,331,41,5,5,312,165, + 41,331,41,609,41,10,51,183,453,520, + 51,570,628,190,416,619,198,209,404,507, + 265,23,31,35,165,456,458,460,462,165, + 740,740,20,28,45,325,742,742,137,525, + 224,287,318,272,340 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2664,21 +2675,21 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface ScopeLhs { public final static char scopeLhs[] = { - 51,17,17,129,17,17,17,17,77,92, - 52,85,129,128,82,58,77,76,51,17, - 19,3,7,8,176,176,175,127,51,86, - 128,128,130,25,138,59,52,150,143,138, - 77,17,17,143,102,61,71,18,18,182, - 145,80,179,176,175,130,196,56,54,154, - 18,17,17,17,17,17,12,124,175,77, - 76,76,40,150,140,140,69,76,17,17, - 17,17,102,19,119,135,16,180,176,198, - 100,107,63,87,62,169,71,130,78,155, - 154,189,150,16,71,75,175,130,110,75, - 21,150,140,129,150,140,140,129,77,51, - 119,135,187,175,161,160,159,158,72,148, - 50,119,135,218,69,148,50,179,110,127, - 51,69,51,61 + 52,17,17,129,17,17,17,17,77,92, + 53,85,129,128,82,58,77,76,52,17, + 19,3,7,8,176,176,175,127,52,86, + 128,128,130,25,138,59,53,150,143,138, + 77,17,17,143,102,62,71,147,18,18, + 182,145,80,179,176,175,130,196,56,51, + 154,18,17,17,17,17,17,12,124,175, + 77,76,76,40,150,140,140,69,76,17, + 17,17,17,102,19,119,135,16,180,176, + 198,100,107,64,87,63,169,71,130,78, + 155,154,189,150,16,71,75,175,130,110, + 75,21,150,140,129,150,140,140,129,77, + 52,119,135,187,175,161,160,159,158,72, + 148,50,119,135,218,69,148,50,179,110, + 127,52,69,52,62 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2687,20 +2698,20 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface ScopeLa { public final static char scopeLa[] = { 126,71,71,80,71,71,71,71,71,80, - 43,80,80,1,77,1,71,129,72,3, - 71,77,77,77,1,1,43,80,72,80, + 42,80,80,1,77,1,71,129,72,3, + 71,77,77,77,1,1,42,80,72,80, 1,1,1,71,80,1,1,4,77,76, - 43,1,1,77,71,71,1,71,71,71, - 71,126,71,1,43,1,43,43,80,125, - 71,71,71,71,71,125,1,71,1,71, - 71,71,73,4,1,1,10,71,77,77, - 77,77,71,3,6,6,71,1,1,71, - 71,3,1,125,71,1,1,1,43,71, - 125,71,8,71,6,73,1,61,79,73, - 71,1,1,72,61,1,1,1,81,78, - 1,1,27,43,1,62,60,60,43,4, - 4,1,1,95,12,4,4,3,1,72, - 1,10,1,3 + 42,1,1,77,71,71,1,71,71,71, + 71,71,126,71,1,42,1,42,42,80, + 125,71,71,71,71,71,125,1,71,1, + 71,71,71,73,4,1,1,10,71,77, + 77,77,77,71,3,6,6,71,1,1, + 71,71,3,1,125,71,1,1,1,42, + 71,125,71,8,71,6,73,1,61,79, + 73,71,1,1,72,61,1,1,1,81, + 78,1,1,27,42,1,62,60,60,42, + 4,4,1,1,95,12,4,4,3,1, + 72,1,10,1,3 }; }; public final static char scopeLa[] = ScopeLa.scopeLa; @@ -2708,21 +2719,21 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface ScopeStateSet { public final static char scopeStateSet[] = { - 361,223,223,300,223,223,223,223,372,387, - 361,385,300,300,385,363,372,372,361,223, - 223,150,194,194,21,21,55,300,361,385, - 300,300,300,304,296,363,361,47,40,296, - 372,223,223,40,67,126,132,223,223,58, - 1,372,44,21,55,300,38,363,75,13, - 223,223,223,223,223,223,198,8,55,372, - 372,372,261,47,300,300,345,372,223,223, - 223,223,67,223,142,98,223,44,21,61, - 67,69,126,63,126,147,132,300,372,5, - 13,50,47,223,132,372,55,300,16,372, - 228,47,300,300,47,300,300,300,372,361, - 142,98,301,55,301,301,301,301,26,52, - 102,142,98,24,345,52,102,44,16,300, - 361,345,361,126 + 362,228,228,151,228,228,228,228,373,388, + 362,386,151,151,386,364,373,373,362,228, + 228,155,199,199,21,21,55,151,362,386, + 151,151,151,305,301,364,362,47,40,301, + 373,228,228,40,67,127,133,151,228,228, + 58,1,373,44,21,55,151,38,364,75, + 13,228,228,228,228,228,228,203,8,55, + 373,373,373,266,47,151,151,346,373,228, + 228,228,228,67,228,143,99,228,44,21, + 61,67,69,127,63,127,148,133,151,373, + 5,13,50,47,228,133,373,55,151,16, + 373,233,47,151,151,47,151,151,151,373, + 362,143,99,152,55,152,152,152,152,26, + 52,103,143,99,24,346,52,103,44,16, + 151,362,346,362,127 }; }; public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet; @@ -2733,12 +2744,12 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym 171,227,134,0,208,0,227,134,0,252, 208,0,249,171,0,252,0,171,0,231, 252,0,231,0,201,171,0,182,252,0, - 182,0,292,0,258,0,226,0,32,164, - 0,348,83,0,30,178,0,184,3,0, - 133,0,195,3,27,0,195,3,59,0, + 182,0,292,0,258,0,191,3,27,0, + 133,0,226,0,32,164,0,348,83,0, + 30,178,0,181,3,0,191,3,59,0, 344,3,313,0,343,3,3,6,0,133, 133,0,342,3,67,0,341,3,126,0, - 133,179,0,134,184,78,0,223,0,271, + 133,179,0,134,181,78,0,223,0,271, 134,65,132,0,20,0,311,134,65,61, 0,20,57,0,33,139,0,20,57,0, 0,311,134,65,61,218,0,20,185,0, @@ -2747,25 +2758,25 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym 271,134,65,139,0,198,135,238,0,198, 135,30,238,0,198,135,337,30,0,136, 203,180,135,0,135,0,203,180,135,0, - 141,135,0,183,0,333,134,183,0,134, - 183,0,229,135,0,180,332,261,0,143, + 141,135,0,184,0,333,134,184,0,134, + 184,0,229,135,0,180,332,261,0,143, 0,0,0,0,332,261,0,144,143,0, 0,0,0,142,0,0,0,0,144,142, 0,0,0,0,331,134,173,270,0,134, 0,270,0,136,0,0,134,0,330,134, 173,269,0,134,0,0,44,134,0,0, - 165,3,0,134,301,300,134,78,299,183, - 0,300,134,78,299,183,0,222,0,223, - 0,299,183,0,100,0,0,222,0,223, + 164,3,0,134,301,300,134,78,299,184, + 0,300,134,78,299,184,0,222,0,223, + 0,299,184,0,100,0,0,222,0,223, 0,210,100,0,0,222,0,223,0,300, - 134,299,183,0,222,0,210,0,0,222, + 134,299,184,0,222,0,210,0,0,222, 0,243,134,3,0,133,0,0,0,0, 0,243,134,3,230,0,237,3,0,215, - 0,153,0,194,180,135,0,10,0,0, - 0,0,194,0,9,0,0,226,70,0, - 132,0,243,134,3,192,0,192,0,2, + 0,153,0,195,180,135,0,10,0,0, + 0,0,195,0,9,0,0,226,69,0, + 132,0,243,134,3,193,0,193,0,2, 0,0,133,0,0,0,0,0,201,3, - 0,239,134,173,42,33,0,198,135,66, + 0,239,134,173,43,33,0,198,135,66, 68,0,203,135,0,136,198,135,297,68, 0,198,135,297,68,0,198,135,79,131, 66,0,239,134,173,66,0,239,134,173, @@ -2776,34 +2787,34 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym 294,261,0,143,0,198,135,294,261,0, 203,180,135,13,0,180,135,13,0,180, 135,0,97,143,0,199,0,198,0,197, - 0,196,0,287,134,153,0,287,134,183, + 0,196,0,287,134,152,0,287,134,184, 0,174,90,0,322,175,324,325,3,87, 0,133,178,0,324,325,3,87,0,135, 0,133,178,0,174,3,81,204,86,0, 133,135,0,204,86,0,112,2,138,133, 135,0,240,3,81,0,201,178,0,33, 176,0,178,0,182,33,176,0,240,3, - 91,0,204,161,240,3,89,0,66,178, + 91,0,204,160,240,3,89,0,66,178, 0,240,3,89,0,133,178,66,178,0, 323,134,173,0,174,0,226,83,0,174, - 114,169,0,30,176,0,195,3,0,133, - 156,0,233,3,0,226,70,284,0,174, - 70,0,195,3,319,75,135,0,133,0, + 114,169,0,30,176,0,191,3,0,133, + 156,0,233,3,0,226,69,284,0,174, + 69,0,191,3,319,75,135,0,133,0, 0,0,0,319,75,135,0,2,152,133, - 0,0,0,0,195,3,51,0,154,0, + 0,0,0,0,191,3,51,0,154,0, 133,61,180,135,0,31,154,0,97,143, 31,154,0,234,198,135,0,153,31,154, - 0,195,3,55,0,174,3,55,0,174, - 3,77,195,65,47,0,195,65,47,0, - 20,2,138,133,0,174,3,77,195,65, - 50,0,195,65,50,0,174,3,77,195, - 65,52,0,195,65,52,0,174,3,77, - 195,65,48,0,195,65,48,0,233,3, + 0,191,3,55,0,174,3,55,0,174, + 3,77,191,65,47,0,191,65,47,0, + 20,2,138,133,0,174,3,77,191,65, + 50,0,191,65,50,0,174,3,77,191, + 65,52,0,191,65,52,0,174,3,77, + 191,65,48,0,191,65,48,0,233,3, 133,203,180,135,13,0,133,203,180,135, 13,0,143,2,0,133,0,233,3,132, 255,180,135,13,0,255,180,135,13,0, 142,2,0,133,0,233,3,143,0,233, - 3,147,0,174,70,147,0,279,0,31, + 3,147,0,174,69,147,0,279,0,31, 0,31,146,0,179,0,141,0,174,3, 0 }; @@ -2813,46 +2824,46 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface ScopeState { public final static char scopeState[] = {0, - 2836,2741,2619,0,2896,728,0,2634,1661,1813, - 854,0,3313,2252,0,5898,6038,4313,3667,0, - 3076,3342,0,2269,0,4321,4203,4157,4119,4073, - 4035,3989,3951,3905,3867,2775,3383,2739,0,4690, - 963,3875,0,3059,1587,0,839,772,0,1123, - 0,2822,1568,0,4136,5544,0,988,816,0, - 1076,0,2846,2712,1160,756,2983,5634,4284,3617, - 3075,3478,3346,0,4321,2825,2742,4203,4157,4119, - 4073,4035,3989,3951,3905,2359,3867,2775,2761,3383, - 2711,5809,5782,5758,2759,664,0,3030,3142,2726, - 0,5963,5953,5910,5894,2214,2118,5889,5880,5867, - 2022,5858,1926,1830,5837,5569,4793,1734,1487,1377, - 4789,4701,4572,3836,0,2983,678,5553,4448,4402, - 3011,4284,3030,4653,3617,3478,4801,3142,4625,3630, - 2726,3354,3282,3254,650,0,5553,3011,0,3269, - 2897,5963,5953,2637,2148,2575,5910,2100,5894,2052, - 2004,2214,1043,3572,2118,1956,5889,1908,5880,5867, - 2483,1517,2022,5858,1926,1830,1408,5837,5569,831, - 1678,4793,1734,1620,1487,1377,4789,4701,4572,785, - 4578,3836,2744,3390,1476,1319,909,3524,4284,3030, - 4653,3354,3282,2983,3254,3617,650,3478,4801,678, - 3550,1063,5553,3142,4448,839,772,4625,4402,3630, - 2726,3011,5523,5491,5449,5246,5030,5408,5386,1179, - 2908,3102,2946,3581,3491,3214,4548,4518,3844,3813, - 3782,3751,3720,3644,4946,4923,4900,4876,4485,5364, - 5342,5320,5194,5172,5150,5128,5106,5084,5062,4988, - 2409,2685,2644,2361,2310,2593,2552,1544,1494,1434, - 2501,2460,1384,2269,2221,1002,2173,2125,2077,2029, - 1981,1933,1885,1837,1789,1741,1693,1277,602,1637, - 936,856,1596,1336,790,1129,1081,1223,0,4578, - 602,2744,0,3030,2524,6028,3354,4729,1663,3282, - 3254,4642,6010,1433,4801,6000,678,602,1308,5992, - 5958,5950,4057,4406,4571,3142,1276,1027,5945,4582, - 4625,4394,881,710,4578,901,3906,3314,3170,3063, - 727,2973,1178,2744,5750,2983,5582,2816,5576,5634, - 5746,5699,650,5824,5688,4448,4402,5642,2726,0, - 4136,5544,5430,4764,4689,4675,5227,5216,4969,3245, - 4249,4321,4203,4157,4119,4073,4035,3989,3951,3905, - 3867,2775,3383,0,4136,5544,5430,4764,4689,4675, - 5227,5216,4969,3245,4249,0 + 2356,2120,2024,0,2105,1824,0,1739,729,1574, + 931,0,1920,1516,0,705,6155,6140,6112,0, + 1493,2588,0,2174,0,4551,4432,4371,4310,4249, + 4188,4127,4066,4005,3944,3609,3385,2691,0,6066, + 4252,4069,0,1248,1154,0,2949,1064,0,1171, + 0,2912,1475,0,2715,3959,0,751,1307,0, + 1023,0,1535,1456,1381,842,3038,4189,4513,3691, + 3480,4006,3431,0,4551,2728,2389,4432,4371,4310, + 4249,4188,4127,4066,4005,5923,2153,3944,3609,3197, + 3385,2727,5917,5898,5882,5844,5833,0,3085,711, + 2676,0,6073,6042,6022,6013,6148,6136,6009,5999, + 5989,6093,5985,5495,4937,5979,5811,4993,4541,3526, + 3227,4904,4796,4780,783,0,3038,5524,916,4632, + 2852,3066,4513,3085,3704,3691,3480,5004,711,4809, + 3554,2676,3354,3282,3254,2750,0,916,3066,0, + 4762,603,2780,0,3310,3113,6073,6042,2945,2526, + 6022,1879,6013,1814,1735,1718,2434,2618,6148,1686, + 6136,1377,6009,5999,5989,3142,991,6093,5985,5495, + 4937,878,5979,5811,847,2704,4993,4541,1536,3526, + 3227,4904,4796,4780,692,4762,783,2780,1586,1476, + 1319,903,2829,4513,3085,3704,3354,3282,3038,3254, + 3691,2750,3480,5004,5524,2923,2894,916,711,4632, + 2949,1064,4809,2852,3554,2676,3066,5772,5751,5719, + 5676,5234,5636,5614,1180,2963,3157,3001,3583,3493, + 3193,4732,4702,3922,3890,3858,3826,3794,3717,5151, + 5127,4669,5103,5079,5592,5552,5449,5398,5376,5354, + 5332,5310,5288,5266,5191,2362,2635,2594,2314,2266, + 2543,2502,1544,1494,1434,2451,2410,1384,2215,2174, + 999,2126,2078,2030,1982,1934,1886,1838,1790,1742, + 1694,1645,1277,1336,1597,936,854,651,603,791, + 1129,1081,1223,0,3085,3246,4624,3354,4333,3108, + 3282,3254,4315,4132,3056,5004,4128,5524,2856,6106, + 6078,3949,3610,4766,4150,711,2565,2473,603,4858, + 3632,4809,3426,1247,1024,4762,3384,4008,3958,4255, + 3028,4071,963,675,2780,5805,3038,5799,4433,4976, + 5793,4189,2750,5929,4800,4372,4632,2852,4311,2676, + 0,2715,3959,5658,4967,4874,4859,5431,5420,5173, + 3245,4478,4551,4432,4371,4310,4249,4188,4127,4066, + 4005,3944,3609,3385,0,2715,3959,5658,4967,4874, + 4859,5431,5420,5173,3245,4478,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2860,67 +2871,68 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface InSymb { public final static char inSymb[] = {0, - 0,318,68,5,134,183,218,61,33,66, + 0,318,68,5,134,184,218,61,33,66, 241,66,297,346,288,6,7,5,270,289, 261,290,62,291,132,13,135,317,27,293, 292,299,134,3,4,140,139,9,8,132, - 135,192,61,65,42,173,242,131,135,135, + 135,193,61,65,43,173,242,131,135,135, 3,3,3,3,173,332,294,171,327,294, 171,65,135,198,180,179,27,59,51,46, 41,40,10,12,45,44,3,135,8,55, 47,50,52,48,13,143,147,78,134,287, - 201,197,192,134,265,298,227,171,135,194, - 201,65,65,178,70,3,74,75,132,131, + 201,197,193,134,265,298,227,171,135,195, + 201,65,65,178,69,3,74,75,132,131, 198,180,3,65,77,134,173,134,173,79, - 198,198,347,42,276,3,345,1,42,134, + 198,198,347,43,276,3,345,1,43,134, 180,246,133,132,135,131,173,135,134,180, - 61,4,3,3,3,3,184,174,134,173, - 74,75,180,133,3,65,65,65,65,135, - 3,113,127,3,70,134,300,73,171,70, - 227,171,135,3,79,76,201,180,12,10, - 134,134,134,70,70,203,134,134,134,239, - 134,135,242,136,73,161,3,76,343,313, - 3,331,135,181,238,66,61,68,183,334, - 133,132,247,171,247,198,173,134,198,271, - 178,152,159,158,162,160,164,163,167,166, - 168,67,169,274,203,279,203,195,134,195, - 195,195,286,134,70,319,3,195,174,195, - 195,195,195,180,233,61,135,61,233,174, - 300,309,135,310,226,169,171,180,165,173, - 269,171,171,194,194,271,271,227,243,244, - 153,245,311,61,13,60,239,239,198,10, - 1,76,161,3,1,180,134,247,247,134, - 134,203,134,295,131,296,134,3,231,230, - 96,97,41,40,99,98,10,109,108,101, - 100,77,65,93,94,12,103,102,105,104, - 106,124,123,122,121,120,119,118,117,116, - 115,79,114,107,76,4,133,132,13,135, - 27,143,161,76,323,85,83,1,174,11, + 61,4,3,3,3,3,191,181,174,173, + 178,134,74,75,180,133,3,65,65,65, + 65,135,3,113,127,3,69,134,300,73, + 171,69,227,171,135,3,79,76,201,180, + 12,10,134,134,134,69,69,203,134,134, + 134,239,134,135,242,136,73,160,3,76, + 343,313,3,331,135,182,238,66,61,68, + 184,334,133,132,247,171,247,198,173,134, + 198,271,153,159,158,162,161,165,163,167, + 166,168,67,169,274,203,279,203,191,191, + 191,191,134,134,3,231,230,286,133,132, + 13,135,27,143,69,319,3,191,174,191, + 191,191,191,180,233,134,61,135,61,233, + 174,300,309,135,310,226,169,171,180,164, + 173,269,171,171,195,195,271,271,227,243, + 244,152,245,311,61,13,60,239,239,198, + 10,1,76,160,3,1,180,134,247,247, + 134,134,203,134,295,131,296,96,97,41, + 40,99,98,10,109,108,101,100,77,65, + 93,94,12,103,102,105,104,106,124,123, + 122,121,120,119,118,117,116,115,79,114, + 107,76,4,160,323,85,83,1,174,11, 91,89,87,86,81,88,90,84,82,66, - 78,219,3,320,178,165,77,77,77,77, - 203,255,135,198,180,301,76,198,3,134, - 173,10,134,161,79,237,201,3,134,76, - 76,77,65,246,246,242,1,344,203,333, - 73,251,201,132,249,171,134,134,73,295, - 79,76,227,237,134,3,158,158,152,152, - 152,160,160,160,160,160,160,159,159,163, - 162,162,166,164,167,255,174,168,135,180, - 148,11,73,348,226,73,3,3,3,204, - 3,131,174,131,184,195,134,134,3,3, - 3,3,133,132,234,8,61,134,233,134, - 194,200,134,79,79,134,227,134,79,79, - 76,136,76,73,79,171,249,171,154,336, - 238,30,135,243,134,73,73,180,61,73, - 95,73,240,178,240,325,153,81,240,134, - 161,281,284,70,199,174,174,174,174,3, - 3,4,131,133,302,126,330,134,235,311, - 249,171,76,135,30,337,198,161,243,203, - 161,201,161,324,134,3,161,302,134,3, - 70,174,233,233,4,3,211,76,134,77, - 198,135,135,134,161,133,79,204,175,287, - 174,281,233,226,95,341,178,211,11,67, - 60,198,198,235,134,129,322,161,161,161, - 134,3,246,134,235,161,342,79,134,76 + 78,227,237,134,3,76,135,180,148,3, + 219,3,320,178,164,77,77,77,77,203, + 255,135,198,180,301,76,198,3,134,173, + 10,134,160,79,237,201,3,134,76,76, + 77,65,246,246,242,1,344,203,333,73, + 251,201,132,249,171,134,134,73,295,79, + 76,158,158,153,153,153,161,161,161,161, + 161,161,159,159,163,162,162,166,165,167, + 255,174,168,11,73,348,226,73,3,3, + 3,204,3,131,174,131,181,243,134,180, + 61,191,191,134,134,3,3,3,3,133, + 132,234,8,61,134,233,134,195,200,134, + 79,79,134,227,134,79,79,76,136,76, + 73,79,171,249,171,154,336,238,30,135, + 73,73,73,95,73,240,178,240,325,152, + 81,240,134,160,243,203,160,160,281,284, + 69,199,174,174,174,174,3,3,4,131, + 133,302,126,330,134,235,311,249,171,76, + 135,30,337,198,160,201,160,324,134,3, + 160,302,134,160,133,134,3,69,174,233, + 233,4,3,211,76,134,77,198,135,135, + 79,204,175,287,174,235,134,281,233,226, + 95,341,178,211,11,67,60,198,198,129, + 322,160,134,235,160,160,134,3,246,160, + 134,342,79,76 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -3201,9 +3213,9 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public final String name(int index) { return name[index]; } public final static int - ERROR_SYMBOL = 69, - SCOPE_UBOUND = 143, - SCOPE_SIZE = 144, + ERROR_SYMBOL = 70, + SCOPE_UBOUND = 144, + SCOPE_SIZE = 145, MAX_NAME_LENGTH = 37; public final int getErrorSymbol() { return ERROR_SYMBOL; } @@ -3212,20 +3224,20 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 610, + NUM_STATES = 614, NT_OFFSET = 130, - LA_STATE_OFFSET = 7674, + LA_STATE_OFFSET = 7691, MAX_LA = 2147483647, - NUM_RULES = 601, + NUM_RULES = 602, NUM_NONTERMINALS = 221, NUM_SYMBOLS = 351, SEGMENT_SIZE = 8192, - START_STATE = 4249, + START_STATE = 4478, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 128, EOLT_SYMBOL = 128, - ACCEPT_ACTION = 6254, - ERROR_ACTION = 7073; + ACCEPT_ACTION = 6267, + ERROR_ACTION = 7089; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParsersym.java index 682f1006f69..99a8206e59d 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParsersym.java @@ -83,12 +83,12 @@ public interface GPPParsersym { TK_integer = 56, TK_floating = 57, TK_charconst = 58, - TK_stringlit = 42, + TK_stringlit = 43, TK_identifier = 1, TK_Completion = 2, TK_EndOfCompletion = 11, TK_Invalid = 130, - TK_LeftBracket = 70, + TK_LeftBracket = 69, TK_LeftParen = 3, TK_Dot = 127, TK_DotStar = 97, @@ -135,7 +135,7 @@ public interface GPPParsersym { TK_RightBracket = 125, TK_RightParen = 71, TK_RightBrace = 80, - TK_SemiColon = 43, + TK_SemiColon = 42, TK_LeftBrace = 72, TK_typeof = 27, TK___alignof__ = 59, @@ -143,7 +143,7 @@ public interface GPPParsersym { TK___declspec = 7, TK_MAX = 108, TK_MIN = 109, - TK_ERROR_TOKEN = 69, + TK_ERROR_TOKEN = 70, TK_EOF_TOKEN = 128; public final static String orderedTerminalSymbols[] = { @@ -189,8 +189,8 @@ public interface GPPParsersym { "typedef", "Plus", "Minus", - "stringlit", "SemiColon", + "stringlit", "PlusPlus", "MinusMinus", "Bang", @@ -216,8 +216,8 @@ public interface GPPParsersym { "namespace", "throw", "using", - "ERROR_TOKEN", "LeftBracket", + "ERROR_TOKEN", "RightParen", "LeftBrace", "Colon", diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParser.java index d45ebcdda48..b41ee2323a5 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParser.java @@ -17,13 +17,20 @@ import lpg.lpgjavaruntime.*; import java.util.*; import org.eclipse.cdt.core.dom.ast.*; +import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter; +import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap; import org.eclipse.cdt.core.dom.lrparser.IParser; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.ITokenCollector; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack; +import org.eclipse.cdt.core.parser.IScanner; +import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider; +import org.eclipse.cdt.core.index.IIndex; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; +import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser; import org.eclipse.cdt.core.dom.ast.cpp.*; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPNodeFactory; @@ -33,7 +40,9 @@ import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPSecondaryParserFactory; import org.eclipse.cdt.core.dom.lrparser.action.gnu.GPPBuildASTParserAction; import org.eclipse.cdt.core.dom.lrparser.action.gnu.GPPSecondaryParserFactory; -public class GPPSizeofExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser< IASTExpression > +public class GPPSizeofExpressionParser extends PrsStream implements RuleAction, ITokenStream, + ITokenCollector, IParser< IASTExpression > + , ISecondaryParser< IASTExpression > { private static ParseTable prs = new GPPSizeofExpressionParserprs(); private FixedBacktrackingParser btParser; @@ -171,7 +180,11 @@ public class GPPSizeofExpressionParser extends PrsStream implements RuleAction , private CPPBuildASTParserAction action; private IASTCompletionNode compNode; -public GPPSizeofExpressionParser() { // constructor + +public GPPSizeofExpressionParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Set options) { + initActions(options); + action.initializeTranslationUnit(scanner, builtinBindingsProvider, index); + CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap); } private void initActions(Set options) { @@ -195,10 +208,9 @@ public void addToken(IToken token) { } -public IASTExpression parse(Set options) { +public IASTExpression parse() { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(options); final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse @@ -241,12 +253,12 @@ public void setTokens(List tokens) { addToken(new Token(null, 0, 0, GPPSizeofExpressionParsersym.TK_EOF_TOKEN)); } -public GPPSizeofExpressionParser(IParserActionTokenProvider parser) { // constructor +public GPPSizeofExpressionParser(ITokenStream parser, Set options) { // constructor for creating secondary parser + initActions(options); tokenMap = new TokenMap(GPPSizeofExpressionParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols()); } - private GPPBuildASTParserAction gnuAction; public void ruleAction(int ruleNumber) @@ -2011,41 +2023,53 @@ private GPPBuildASTParserAction gnuAction; // case 575: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; } + + // + // Rule 576: typeof_type_specifier ::= typeof unary_expression + // + case 576: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break; + } + + // + // Rule 577: typeof_type_specifier ::= typeof ( type_id ) + // + case 577: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break; + } // - // Rule 580: declaration_specifiers ::= typeof_declaration_specifiers + // Rule 581: declaration_specifiers ::= typeof_declaration_specifiers // - case 580: { gnuAction.consumeDeclarationSpecifiersTypeof(); break; + case 581: { gnuAction.consumeDeclarationSpecifiersTypeof(); break; } // - // Rule 593: declarator ::= ptr_operator_seq attribute_or_decl_specifier_seq direct_declarator + // Rule 594: declarator ::= ptr_operator_seq attribute_or_decl_specifier_seq direct_declarator // - case 593: { action. consumeDeclaratorWithPointer(true); break; + case 594: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 595: simple_type_specifier ::= _Complex - // - case 595: { action. consumeToken(); break; - } - - // - // Rule 596: simple_type_specifier ::= _Imaginary + // Rule 596: simple_type_specifier ::= _Complex // case 596: { action. consumeToken(); break; } + + // + // Rule 597: simple_type_specifier ::= _Imaginary + // + case 597: { action. consumeToken(); break; + } // - // Rule 597: declaration_specifiers ::= simple_declaration_specifiers + // Rule 598: declaration_specifiers ::= simple_declaration_specifiers // - case 597: { gnuAction.consumeDeclarationSpecifiersSimple(); break; + case 598: { gnuAction.consumeDeclarationSpecifiersSimple(); break; } // - // Rule 599: no_sizeof_type_id_start ::= ERROR_TOKEN + // Rule 600: no_sizeof_type_id_start ::= ERROR_TOKEN // - case 599: { action. consumeEmpty(); break; + case 600: { action. consumeEmpty(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParserprs.java index 46c85eecb27..45b2048715e 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParserprs.java @@ -94,561 +94,558 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 4,0,1,1,1,3,1,0,4,3, 1,2,1,3,4,4,6,1,0,1, 3,1,3,0,1,4,5,2,2,3, - 3,5,3,4,3,2,1,2,2,2, - 1,1,2,2,3,2,2,3,1,1, - 1,1,4,1,1,1,2,1,1,-65, - 0,0,0,-468,0,0,0,0,0,0, + 3,5,3,4,3,2,4,1,2,2, + 2,1,1,2,2,3,2,2,3,1, + 1,1,1,4,1,1,1,2,1,1, + -65,0,0,0,-2,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-2,0, - -370,0,0,0,0,0,-66,0,0,0, - 0,0,-328,-247,-293,0,0,0,0,-4, - -212,0,0,0,-301,0,0,0,0,0, - 0,0,0,0,0,0,0,-127,0,-60, - 0,0,0,0,-193,0,0,0,0,0, - 0,0,-5,-286,0,0,-526,-202,0,0, - 0,0,0,-592,-111,0,-6,0,0,-161, + 0,0,0,0,0,0,0,0,0,-68, + 0,-10,0,0,0,0,0,0,0,0, + 0,-147,0,-208,0,-583,0,0,-14,0, + -237,-4,0,-229,0,-303,0,0,0,0, + 0,0,0,0,0,0,0,0,-479,0, + 0,-193,0,0,0,-5,0,0,0,0, + 0,0,-288,0,0,-51,0,-6,0,0, + 0,0,0,0,0,0,0,0,0,-7, + -605,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-198, + 0,0,-8,0,0,-137,0,0,0,0, + 0,0,-60,0,0,0,-9,-53,0,-395, + 0,0,0,0,0,0,-11,0,0,0, + 0,0,0,-52,-391,0,0,0,0,0, + 0,0,0,0,-120,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-267,0,0,-198,0,0,0,0,0, - 0,0,-69,-7,-16,0,0,0,0,0, - 0,0,0,0,0,-8,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-120,0,0,0,0,0,0, + 0,0,0,0,0,0,-192,0,0,0, + 0,0,0,-12,0,0,0,0,0,-161, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-121,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-56, + 0,0,0,0,0,0,0,0,0,-498, + 0,0,0,0,-13,-372,-133,0,0,0, + 0,0,-452,0,-15,0,-75,0,0,0, + 0,0,0,0,0,0,0,0,0,-236, + 0,0,-437,0,0,0,0,0,0,0, + -141,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-160,0,0,0,0,0, - 0,0,-192,0,0,0,0,0,-603,0, + 0,0,0,-537,0,0,0,0,0,0, + 0,-55,0,0,0,0,0,0,0,0, + 0,-348,0,0,0,-59,0,0,-127,0, + 0,-338,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-238,0,0,-263, 0,0,0,0,0,0,0,0,0,0, - 0,-383,0,0,0,-121,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-271,0, + 0,0,-30,0,0,0,0,0,0,0, + -139,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-50,0,0,-330,0,0, + 0,0,-163,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-64,0,-61,-485, + 0,0,0,0,0,0,-567,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-313,0,-133,0, - 0,0,0,0,0,-346,0,0,0,-75, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-9,0,0,0,0,-141,0, + 0,0,0,0,0,0,0,-31,0,0, + 0,0,0,0,0,0,0,-32,-148,0, + 0,0,0,0,-595,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-45, + 0,0,0,0,0,-206,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-279,0,0,-372,0,0,0,0,-55, - 0,0,0,0,0,-10,0,0,0,0, - 0,-11,0,0,0,0,0,0,0,0, - 0,0,-336,0,0,0,0,0,0,0, + 0,0,-62,0,-112,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -262,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-33,-69,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-416,0,0,-206,0,0,0, + -277,0,0,-209,0,0,-239,0,0,-441, + 0,0,0,-34,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-140,-536,0,0,0,0,0,0, + -241,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-272,0,0, + 0,0,-404,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -53,-208,0,0,0,-163,0,0,0,0, + 0,0,0,0,0,-156,-151,0,0,0, + 0,0,0,-223,0,0,0,0,-309,0, + 0,0,0,0,-16,0,0,0,0,0, + 0,0,0,0,0,-63,-18,0,0,0, + -160,0,-3,0,0,0,-313,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-147,0,-565,0,0,0,-148,0,0, + 0,0,0,0,0,-35,0,0,0,0, + 0,-254,0,-528,0,0,0,0,0,0, + 0,0,0,-146,0,0,0,0,0,0, + -351,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-151,0,0, + 0,0,0,0,0,-248,-165,0,0,0, + 0,-36,0,0,0,0,-315,0,0,0, + 0,0,0,0,-358,-158,0,0,0,0, + -422,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -12,0,0,0,-280,0,0,0,0,0, - 0,0,-593,0,0,0,-387,0,0,0, + 0,0,0,0,-118,0,0,0,0,-207, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-287,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-315,0,0,0,0,0,0, - -56,-400,-112,0,0,0,-243,0,0,0, + 0,-37,0,0,0,0,0,0,0,0, + 0,-423,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-316,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-276, - 0,0,0,-332,0,0,-13,-439,0,0, + 0,0,0,0,-242,0,-46,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-281,0,0,0,-440,0,0,-300, + 0,-510,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-435,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-513,0,0,-15,-402, 0,0,0,0,0,0,0,0,0,0, + 0,0,-77,0,0,-204,0,0,0,0, + -113,-376,-41,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-535,0,0,0,0,0,0,0, - -352,0,0,0,0,0,-393,0,0,0, - 0,-159,0,0,0,0,0,0,0,0, - 0,0,-30,0,-209,-18,0,0,0,0, - -3,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-280,0,0,0,0, + 0,0,0,-38,0,0,0,0,0,0, + 0,0,0,-39,-49,0,0,0,0,0, + -43,0,0,0,-389,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-31, - 0,-139,0,0,0,0,0,0,0,0, - 0,-450,-68,0,0,0,0,0,-349,0, + 0,0,0,-289,0,0,0,0,0,-40, + 0,-42,0,0,0,0,0,0,0,0, + 0,-57,0,0,-58,0,0,0,0,-100, + 0,0,0,-70,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-317,0,0,0,0,0,-243,0, + -71,0,0,0,0,0,0,0,0,0, + -73,-199,0,0,0,0,0,-101,0,0, + 0,-74,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-347,0,0,0,0,0,-32,0,-222, - 0,0,0,0,0,-228,0,0,0,0, - 0,0,-356,-568,0,0,0,-420,0,0, + -318,0,0,0,0,0,0,0,-470,0, + 0,0,0,0,0,0,0,0,-44,0, + 0,-408,0,0,0,-102,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-349,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-51,0,0,0,0,0,0,0, - 0,0,0,0,-33,0,0,0,0,-449, + 0,0,0,0,0,0,0,-211,0,0, + 0,0,0,-103,0,0,0,-114,0,0, 0,0,0,0,0,0,0,0,0,0, - -311,-146,0,0,-157,0,0,0,0,-421, + 0,0,0,0,0,0,-360,0,0,0, + 0,0,-337,0,-115,0,0,0,0,0, + 0,0,0,0,-78,0,0,-116,0,0, + 0,-104,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-416,0,0,0,0,0, + 0,0,-117,0,0,0,0,0,0,0, + 0,0,-119,-222,0,0,0,0,0,-105, + 0,0,0,-124,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-52,0,0,0,0,0, - 0,0,0,0,0,0,-237,0,0,0, - -50,-448,0,0,0,0,0,0,-508,0, - 0,0,-34,0,0,0,0,0,0,0, + 0,0,-458,0,-221,-310,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-499,0,0,0,0,0,0,0, - 0,0,0,0,0,-77,0,0,0,0, - 0,0,0,0,0,0,-235,0,0,-41, - 0,0,0,-266,0,0,0,0,0,0, + -257,0,0,0,0,0,0,-106,0,0, + 0,-125,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-551,0,0,0,0,-496,0, - -35,0,0,0,0,0,0,0,0,0, - -36,0,-37,0,0,0,0,-43,0,0, + -553,0,0,-386,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-164,-252, + 0,0,0,0,0,-107,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-501,0, + -247,-126,0,0,0,0,-217,0,0,0, + 0,0,0,0,0,0,-258,0,0,-142, + 0,0,0,-108,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -358,0,0,0,0,0,-38,0,-39,0, - 0,0,0,0,0,0,0,0,0,-414, - 0,0,0,0,0,-100,0,0,0,-118, + 0,0,0,0,0,0,-554,0,0,-495, + 0,0,0,0,-149,0,0,0,0,0, + 0,0,0,0,0,-331,0,0,0,0, + 0,-109,0,0,0,-150,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-552, - 0,0,0,0,-242,0,-140,0,0,0, - 0,0,0,0,0,0,-59,0,-477,0, - 0,0,0,-101,0,0,0,-156,0,0, + 0,0,0,0,0,0,-278,-527,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-40,-601,0,0, + 0,0,-259,0,0,-154,0,0,0,-110, + 0,0,0,-383,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -321,0,0,0,0,0,0,-42,-563,0, - 0,-102,0,0,0,-165,0,0,0,0, + 0,0,-414,-415,0,-457,0,0,0,0, + -418,0,0,0,0,0,0,0,0,0, + 0,-561,0,0,0,0,0,-145,0,0, + 0,-594,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -212,0,0,0,0,0,0,0,-166,0, + 0,0,0,0,0,0,0,0,-227,0, + 0,0,-167,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -335,0,0,0,0,0,0,0,-322,0, - 0,0,0,0,-241,0,0,0,0,-103, - 0,0,0,-216,0,0,0,0,0,0, + 0,0,0,-323,0,0,0,0,0,-168, + 0,0,0,0,-301,0,0,0,0,-580, + 0,0,0,-260,-347,0,0,0,0,0, + 0,-477,0,0,-169,-255,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-500,0,0,0,0,0,-238,0, - 0,0,0,0,0,0,-453,0,0,0, - 0,0,-57,0,0,0,0,-104,0,0, 0,0,0,0,0,0,0,0,0,0, + -170,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-402,-205,0,0, + 0,0,0,-256,0,0,0,-171,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-204,0,0,0,0,0,-374,0, - 0,0,0,0,-536,0,0,0,0,-456, - -58,0,0,0,0,-105,0,0,0,-253, + 0,0,0,0,0,0,0,-603,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-70,-71, - 0,0,0,0,-569,0,-455,0,0,0, - 0,0,0,0,0,0,-61,-62,-73,0, - -353,0,0,-106,0,0,0,0,0,0, + 0,0,0,0,-1,0,0,-172,0,0, + 0,-483,0,0,0,-173,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-598,0,0,0, - 0,0,0,0,-74,0,0,0,0,0, - -158,0,0,0,0,-63,-114,0,0,0, - 0,-107,0,0,0,-506,0,0,0,0, + 0,0,0,0,-174,-506,0,-175,0,0, + 0,0,-210,0,0,0,0,0,0,0, + 0,0,-176,-159,0,0,0,0,0,0, + 0,0,0,0,-332,0,0,0,0,0, + 0,0,-362,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-591,0,0,0,0, + 0,0,0,-512,0,0,0,0,0,0, + 0,0,0,-456,0,0,0,-177,0,0, 0,0,0,0,0,0,0,0,0,0, - -298,0,0,0,0,0,0,0,-438,0, - 0,0,0,-113,-115,-116,-117,0,0,-108, - 0,0,0,-381,0,0,0,0,0,0, + 0,0,0,0,0,0,-178,0,0,0, + 0,0,-373,0,-354,0,0,0,0,-355, + 0,0,0,0,-201,-592,0,0,0,-508, + -406,-468,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,-240,0, - -299,0,0,0,0,0,0,0,0,0, - -119,-164,-345,0,0,0,0,-109,0,0, - 0,-475,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,-126,0, - 0,0,0,0,-220,0,0,0,0,-201, - -218,-142,-149,0,0,-110,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-412,-413, - 0,0,0,0,-330,0,-371,0,0,0, - 0,0,0,0,0,0,-343,0,0,-150, - -154,0,0,-145,0,0,0,-528,0,0, + 0,0,-478,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-166,0,-546,0, + 0,0,0,0,0,-435,0,-417,0,0, + 0,0,0,0,0,0,0,0,-179,0, + 0,0,0,-111,-345,0,0,0,0,-584, + -520,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-180,-181,-182,-431,0,0,0, + 0,-183,0,0,0,0,0,0,0,0, + 0,-521,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -406,0,0,0,-226,0,0,0,-429,0, + 0,0,0,0,-385,-539,-267,0,0,0, + 0,0,-530,0,0,0,0,-474,0,0, + 0,0,-451,0,0,0,-184,-185,0,0, + 0,0,0,0,-411,0,0,0,0,0, + 0,0,0,0,0,0,0,-343,-72,0, + -219,-157,0,-244,-454,0,0,0,0,0, + 0,0,-186,-550,-54,0,0,0,-467,0, + 0,0,0,0,0,0,-187,0,-585,-597, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-570,0,0,0,-99,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-188,0,0,0,0,0,0,-123, + 0,0,0,0,0,0,-374,-189,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-436,0,0,0,0,-486,-600,0,0, + 0,0,0,-378,0,0,0,-129,0,0, + 0,0,0,0,0,0,-249,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-190,0,0, + 0,0,-302,-191,0,0,0,0,0,0, + -438,0,0,0,0,0,0,0,-194,0, + 0,0,-401,0,0,0,0,0,0,0, + -195,0,0,0,0,0,0,-97,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -389,0,0,0,0,-167,0,0,0,0, - 0,-474,0,0,0,0,0,-380,0,0, - 0,0,0,-246,0,0,0,0,0,0, - -254,0,0,0,0,0,0,0,0,0, + -450,0,0,-496,0,0,-196,0,-200,0, + 0,0,0,-425,0,0,0,-499,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-168,-169,-170,-307,0,0,0, + -47,-311,0,-503,0,0,0,0,0,0, + -432,0,0,0,0,0,0,0,0,0, + 0,0,0,-203,0,-251,0,0,0,0, + -213,0,0,0,0,0,0,0,0,-215, + 0,0,-218,0,0,0,0,0,0,0, + 0,0,0,-462,0,0,0,-224,-226,0, + 0,0,0,0,-559,0,-228,0,0,0, + 0,0,0,0,-393,0,0,-230,0,0, + 0,0,0,0,0,0,-98,0,0,0, + -231,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-232, + 0,-326,-233,0,0,0,0,0,0,0, + 0,-22,0,0,0,-235,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-248,-269,0,-171,-172,0,0,-255,0, + 0,0,0,0,0,0,-19,0,0,0, + -250,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-270,-324, + -261,-262,-282,0,-94,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-269,-275,0, + -284,0,0,0,0,0,0,0,-442,0, 0,0,0,0,0,0,0,0,0,0, - 0,-452,0,0,-308,0,0,-173,0,0, - 0,0,0,0,0,-174,0,0,0,0, - -281,0,-175,-176,0,0,-481,0,0,0, - -177,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-178, - -472,0,0,0,0,0,0,-179,0,0, - 0,0,0,-277,0,0,0,0,-460,0, - 0,0,0,0,0,0,0,0,0,-510, - -300,-534,0,0,0,-433,0,0,-360,0, + 0,-253,0,0,0,-382,0,0,0,-421, + -131,0,0,0,0,-473,0,0,0,0, + 0,0,0,0,0,0,0,0,-286,0, + -502,0,0,0,0,0,0,-216,0,0, + 0,0,0,0,-444,-290,-292,0,0,0, + 0,0,0,0,0,-293,0,-504,-511,0, + 0,0,0,0,-298,-306,-307,0,0,0, + 0,-334,0,0,-534,0,0,0,0,0, + 0,0,-308,-475,-316,0,0,-519,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-325,-283,0,0,0,-460,0, 0,0,0,0,0,0,0,0,0,0, - 0,-559,0,0,0,0,0,0,0,-582, - 0,0,0,0,0,-180,0,0,0,-454, - 0,0,0,-404,0,0,0,0,0,0, + -128,0,0,0,-563,-575,0,-505,0,0, + -565,0,0,0,0,0,0,0,0,0, + 0,-328,-312,0,0,0,0,0,0,0, + -333,-287,0,0,0,0,0,-544,0,-524, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-309,0,0,0,0,0, + 0,0,-433,0,0,-342,0,0,0,0, + 0,0,0,0,0,0,-76,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-384,-578,0,0,0,0,-466,0,0, + 0,0,-335,0,0,0,0,0,0,-596, + 0,0,0,0,0,0,-336,-352,-344,0, + 0,0,0,0,0,0,-95,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -589,0,0,0,0,0,0,0,-181,0, - 0,0,0,0,0,0,0,0,-476,0, + -353,-346,0,0,0,0,0,-369,0,-377, + 0,-66,0,0,0,0,-350,0,0,0, + 0,-548,-392,-396,-319,0,0,0,0,-96, + 0,0,0,-397,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-268,-155,0,0,0,0,0, + -320,0,-20,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-182,-525,0,0,-504,0,0, + 0,0,0,0,0,-321,0,-409,0,-368, + 0,0,0,0,-322,0,-489,0,0,0, + -410,-419,-420,-427,0,0,0,0,0,0, + 0,0,0,0,-264,-225,0,-429,0,0, + -455,-202,-265,-327,0,0,0,-447,0,0, + 0,0,0,0,0,-448,-453,0,0,0, + 0,0,-469,-471,0,0,0,0,0,-484, + 0,0,0,-329,0,0,0,-522,0,0, + 0,-371,-490,0,-492,0,0,0,0,0, + 0,0,0,0,0,-500,-513,0,-525,0, + 0,0,0,0,0,0,-526,0,-542,0, + 0,0,0,0,0,0,0,-285,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-183,-415,0,-518,0,0,0, + -356,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-549,-439,0,0,0,-556, + 0,0,0,0,0,0,0,0,0,-571, + -518,0,-359,-364,0,-551,-366,0,0,0, + 0,0,0,0,0,0,-384,0,0,0, + 0,-390,0,0,-370,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-445,0, + -552,0,0,-562,0,0,0,0,0,-578, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-590, - 0,0,0,0,0,-184,0,-185,0,0, - 0,0,0,-186,0,0,0,-519,0,0, + -579,-407,-598,-601,0,0,0,0,-381,0, + 0,0,0,-86,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-398,0,0, + 0,0,-399,0,-87,0,0,0,-403,0, 0,0,0,0,0,0,0,0,0,0, - -537,0,-129,-187,0,0,-188,0,-561,0, - 0,0,0,0,-72,0,0,0,0,-310, - -1,-317,-493,-189,0,0,0,0,0,0, - -409,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-318,-49,0,0,0,-319, + 0,0,0,0,0,0,0,-602,0,-604, + 0,0,0,0,0,-476,0,0,0,0, + 0,-557,0,0,-405,-446,0,-461,0,0, + 0,0,-88,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,-190,0, - 0,0,0,0,-557,0,-320,-399,0,0, - 0,0,-191,0,0,0,0,0,-194,0, - 0,0,0,0,0,0,0,-434,0,0, - 0,0,0,-99,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-195,0,-324,0, - 0,0,0,0,-123,0,0,0,0,0, - -196,-340,0,-200,0,0,0,0,0,0, - 0,0,0,0,-325,-327,-203,0,0,0, - 0,0,-213,-342,0,-214,0,0,-465,-376, - 0,0,0,-217,0,0,0,0,0,0, - 0,0,0,0,-357,0,0,0,0,0, - 0,0,0,0,0,0,-252,0,0,0, - 0,-344,-348,0,0,0,0,0,0,-362, - 0,0,-366,-14,-223,0,0,0,0,0, - 0,0,0,0,0,0,0,-225,0,0, - 0,0,-594,0,0,0,-364,0,0,-473, - 0,-368,0,-97,0,0,0,0,0,0, + 0,0,0,-89,0,0,0,-488,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-493,-497,-412,-507, + 0,0,0,0,-90,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-207, - 0,0,0,0,-227,0,0,0,0,-423, - 0,0,0,-419,0,0,0,0,0,0, - 0,0,0,0,0,0,-229,-369,-230,-231, - 0,0,0,0,0,0,-232,-76,0,0, - 0,-379,0,0,0,0,0,0,0,0, - 0,0,-484,-234,-249,-430,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-396,0,0,-131,0,0,0, - 0,0,0,-382,-388,0,-405,0,0,0, - 0,0,-260,-410,-261,0,0,0,0,0, - 0,0,0,-497,0,-501,-268,0,0,0, - 0,0,-274,-282,0,0,0,0,0,0, - 0,0,-98,0,0,0,0,0,0,0, + 0,0,0,0,0,-91,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-284,0,-288,0,0, - 0,0,0,0,0,0,0,-205,0,0, - 0,-290,-397,-558,-94,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-533, + -234,-543,0,0,0,0,-92,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-458,0,0,-411,0, - -424,-291,0,-296,0,0,0,-401,-403,-457, - -548,-462,0,0,-444,0,-464,-45,-210,-304, - 0,0,-305,0,-440,0,0,0,0,0, - 0,0,0,0,0,0,0,-502,0,0, + 0,-48,0,0,0,0,0,-482,-413,0, + 0,0,0,0,0,0,-426,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-291,-130,-459,0,0,-538,0,-266,-464, 0,0,0,0,0,0,0,0,0,0, - 0,-471,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-199,0,0,0, - 0,0,-459,0,0,0,0,0,-478,-306, - 0,-137,0,0,0,0,-314,0,-323,0, - 0,0,0,-492,0,0,-326,0,-509,-583, - 0,0,-331,0,0,0,0,0,0,-486, - 0,0,0,-122,0,0,0,0,0,-272, - -491,-495,0,-517,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-128,0,-333,-595,0,0,0, - 0,-529,-505,-46,0,0,-532,0,0,0, - 0,0,0,0,-334,0,0,0,0,0, - 0,0,0,0,0,-350,-295,-483,0,0, - 0,0,0,0,0,-522,0,0,0,0, - 0,0,0,0,0,0,0,0,-531,0, - 0,-250,0,0,0,0,0,-541,0,0, - 0,0,0,0,0,-351,-543,-367,-533,0, - 0,0,0,0,0,-375,0,0,-390,0, - 0,0,0,0,0,0,-394,-395,0,-211, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-95,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-341,-407,-408,-544,0, - 0,0,0,-417,0,-538,-539,0,0,0, - 0,-545,-44,-480,-418,0,0,-564,0,0, - 0,0,0,0,0,-96,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -155,-425,0,0,0,0,0,0,-19,0, - 0,0,-427,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -542,-567,0,-445,-572,-446,-575,0,0,0, - 0,0,0,0,0,0,-221,0,0,0, - 0,0,0,-451,0,0,0,0,0,-442, - -591,-224,0,0,0,0,-236,-584,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-467,0,0,0,0,-469,-482,0,-488, - 0,0,-490,-498,0,0,-511,-523,0,-524, - 0,-507,-540,0,0,0,0,-547,-549,0, - 0,0,0,0,-550,0,0,0,0,0, - -560,0,-576,-577,0,0,-596,-599,-600,-602, - 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,-354,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-437,0,0,0,0,0,0,0,0, - 0,0,0,0,-573,0,-555,0,0,0, - 0,0,0,0,0,0,0,0,-251,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-436,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-86, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-365,0,0,0,0,0, - -87,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-88,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-89, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -90,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-233,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,-285,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-289,-130,0,0, - 0,-78,0,-263,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-292,-132,0, - 0,0,0,0,0,0,0,-494,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-503, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-359,-135, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -487,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-566, - 0,0,0,0,-329,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-361, - -64,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-134, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -426,0,0,0,0,0,0,0,0,-520, - 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,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-428,-441,0,0,0,0,0,0,-264, - 0,0,0,0,0,0,0,0,0,0, - 0,-152,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-432,0,0,0,0,0,0,0, - 0,0,-554,0,0,0,0,0,0,0, - 0,0,-162,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -47,0,0,0,0,0,0,0,0,0, - 0,-257,0,0,0,0,0,0,0,0, - 0,0,0,-530,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-275,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-48,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-265,0,-562,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,0,0,0,0,0,-443,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-570,0,0,0,0, - 0,0,0,0,0,0,0,0,-92,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-20,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-93,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-81,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -82,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-138,0,0,0,0,0,-259, - 0,0,0,0,0,0,0,0,-245,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-377,0,0,0,0,0,0,0,0, - 0,0,0,0,-516,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-485,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-587,-588,0,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,-461,0,0,0, - 0,-391,0,-273,0,0,0,0,0,0, 0,0,-515,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-466,0,-545,0, + 0,0,0,-560,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-294,-132,-480,0,0,0,0,0, + -494,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-531,-535,-540,0,0, + 0,0,0,-509,-541,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-361,-135,-546,0,0,0,-566, + -569,-547,0,0,0,0,0,0,0,0, + 0,0,0,-134,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-574,0, + 0,0,0,0,-568,-577,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-363,0,-586,0,0,0, + 0,0,0,-593,0,0,0,0,0,0, + 0,0,0,0,-152,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-246,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-428,0,0,0,0, + 0,0,0,0,-273,0,0,0,0,0, + 0,0,0,0,0,-162,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-589,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-430,0,0,0, + 0,0,0,0,0,-274,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,-590,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-434,0,0, + 0,0,0,0,0,0,-340,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,-599, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-532,0, + 0,0,0,0,0,0,0,-341,0,0, + 0,0,0,0,0,0,0,0,-305,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-17,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-585,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-400,-564, + 0,0,0,0,0,0,0,0,-443,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-470,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -572,0,0,0,0,0,0,0,0,0, + 0,0,0,-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,0, 0,0,0,0,0,0,0,0,0,0, - 0,-83,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-21,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-84,0,0,0,0,0,0,0,0, + 0,0,0,-81,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-85,0,0,0,0,0, + 0,0,0,0,0,0,-82,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-22,0,0, + 0,0,0,0,0,0,0,0,0,-138, + 0,0,0,0,0,-122,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-472, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-23, + 0,0,0,0,0,0,0,0,-523,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,-24,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-481,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-25,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-26,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-27,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-28, + 0,0,-463,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-29,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-67,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-79,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-80,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-143, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-244,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-463,0,0,0,0,0,0, - -479,0,0,0,0,0,0,0,0,0, - 0,0,0,-398,0,-303,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-487, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-512,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-380, + 0,0,0,-517,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-587,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-378,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -17,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-555,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-83,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-84,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -85,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-23,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-24,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-25,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-26, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-27,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-28,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-29,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-67,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-79, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-80,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-143,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-245,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-465,0,0, + 0,0,0,0,0,0,0,0,0,0, 0,-514,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-571,-431,0,0, + 0,0,0,0,0,0,0,-240,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-574,0,0,0,0, + 0,0,-516,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-573,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-21,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-136,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-153,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-302,0,0,0,0,0, - 0,0,0,0,0,0,0,-363,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-586,0,-270, - 0,0,0,0,0,0,-239,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-385,0,0,0,0,0,0,0,0, - -337,0,0,0,0,0,0,0,0,0, - 0,0,-219,0,0,0,0,0,0,-294, - -297,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-576,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-422, - 0,0,0,0,0,0,-215,0,0,0, - 0,0,0,0,-386,0,0,0,0,0, + 0,0,0,0,0,0,0,-136,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-144,0,0,0,0,0,0,0, - -581,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-153,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-304,0,0,0,0, + 0,0,0,0,0,0,0,0,-365,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-521,0,0,0,0,0,-312,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-355,0,0, - 0,-373,0,0,0,0,0,0,-392,0, + 0,0,-220,0,-271,0,0,0,0,0, + -339,0,0,0,0,0,0,0,-387,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-447,0,0,0,-197,0, - 0,0,0,0,0,-489,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-527,0,0, - 0,-556,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-579,0,0,0,0, - 0,0,0,0,-338,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-424,0, 0,0,0,0,0,0,0,0,0,0, - 0,-580,0,0,0,0,0,0,0,0, - 0,-339,0,0,0,-553,-597,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-144,0,0,0,0, + 0,0,0,0,0,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, + -357,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-375,0,0, + 0,0,0,0,-394,0,-297,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-214,0,0,0,0,0,0,-197, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-367,-295,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-388, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-449,0,0,0,0,0,0,0, + -491,0,0,0,-529,0,0,0,-558,0, + 0,0,-581,0,0,0,0,0,0,0, + -582,0,0,0,0,0,-588,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-296,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,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, 0,0,0,0,0,0,0,0,0,0, @@ -659,7 +656,10 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,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; @@ -669,8 +669,8 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseAction { public final static char baseAction[] = { - 188,4,123,89,89,31,31,81,81,43, - 43,45,45,220,1,1,15,15,15,15, + 188,4,123,89,89,31,31,81,81,44, + 44,45,45,220,1,1,15,15,15,15, 15,15,15,16,16,16,14,11,11,6, 6,6,6,6,6,2,73,73,5,5, 12,12,49,49,148,148,149,67,67,48, @@ -682,31 +682,31 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 152,152,20,20,21,21,22,22,22,27, 27,27,27,28,28,28,30,30,30,32, 32,32,32,32,33,33,33,34,34,35, - 35,36,36,38,38,39,39,40,40,47, + 35,37,37,38,38,39,39,40,40,47, 47,46,46,46,46,46,46,46,46,46, - 46,46,46,46,44,37,156,156,103,103, + 46,46,46,46,43,36,156,156,103,103, 192,192,93,221,221,74,74,74,74,74, - 74,74,74,74,75,75,75,72,72,64, - 64,193,193,76,76,76,109,109,194,194, + 74,74,74,74,75,75,75,72,72,54, + 54,193,193,76,76,76,109,109,194,194, 77,77,77,195,195,78,78,78,78,78, 79,79,94,94,94,94,94,94,94,94, - 54,54,54,54,54,126,126,124,124,55, - 196,29,29,29,29,52,52,90,90,90, + 55,55,55,55,55,126,126,124,124,56, + 196,29,29,29,29,53,53,90,90,90, 90,90,162,162,163,163,163,163,163,158, 158,158,159,159,159,160,160,160,161,161, 161,91,91,91,91,91,92,92,92,13, 13,13,13,13,13,13,13,13,13,13, 104,130,130,130,130,130,130,128,128,128, 164,129,129,197,166,166,165,165,132,132, - 110,85,85,86,87,57,51,167,167,58, + 110,85,85,86,87,58,52,167,167,59, 96,96,168,168,157,157,133,134,134,135, - 71,71,169,169,65,65,65,60,60,59, - 66,66,82,82,68,68,68,62,97,97, - 106,105,105,69,69,61,61,70,70,53, + 71,71,169,169,65,65,65,61,61,60, + 66,66,82,82,69,69,69,63,97,97, + 106,105,105,70,70,62,62,68,68,50, 107,107,107,99,99,99,100,100,101,101, 101,102,102,111,111,111,113,113,112,112, 222,222,98,98,199,199,199,199,199,137, - 50,50,171,198,198,138,138,138,138,139, + 51,51,171,198,198,138,138,138,138,139, 173,200,200,42,42,127,140,140,140,140, 202,115,114,114,131,131,131,174,175,175, 175,175,175,175,175,175,175,175,175,204, @@ -724,656 +724,656 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 122,122,211,211,211,145,145,136,136,212, 212,23,23,23,41,41,24,24,213,213, 182,182,182,183,183,214,214,184,184,25, - 25,215,215,185,185,185,26,63,216,216, + 25,215,215,185,185,185,26,64,216,216, 217,217,186,186,186,146,146,146,18,18, - 32,32,40,16,75,218,147,187,187,187, - 29,56,90,135,135,135,117,117,117,197, - 202,115,62,71,164,13,13,29,188,188, - 1547,35,2190,2143,3971,4312,27,30,31,1197, - 1249,26,28,2191,25,23,50,1303,104,75, - 76,106,1340,582,531,532,533,1445,1388,1803, - 1601,3680,1523,1613,1611,1649,1647,2371,1737,1758, - 141,3501,270,3732,2255,172,156,142,5939,600, - 1612,1347,35,1930,384,1657,35,1091,32,5972, - 5448,27,30,31,1197,1249,335,28,2795,229, - 1347,1949,2142,34,339,1347,35,3055,534,531, - 532,533,154,71,2297,35,274,1673,2601,186, - 232,227,228,270,258,1806,4762,1350,5688,1311, - 2859,35,1091,32,271,3699,27,30,31,1197, - 1249,59,28,1883,315,1951,317,2834,180,550, - 310,1281,2601,328,385,163,935,239,242,245, - 248,2693,154,2104,1767,1897,35,1091,32,2664, - 668,41,30,31,1197,1249,1926,577,535,531, - 532,533,2860,549,2900,272,650,1641,2825,3314, - 3988,4049,4734,3242,2646,35,1091,32,2751,1306, - 27,30,31,1197,1249,26,28,952,25,23, - 50,1303,104,75,76,106,1340,4110,302,306, - 1889,1445,1388,339,1601,434,1523,1613,1611,1649, - 1647,2788,1737,1758,141,1719,1292,675,443,417, - 513,142,2177,1347,35,2142,3053,4171,2658,2932, - 35,1091,32,3396,3699,27,30,31,1197,1249, - 26,28,2489,507,514,91,2646,35,1091,32, - 2751,1306,27,30,31,1197,1249,26,28,952, - 25,23,50,1303,104,75,76,106,1340,1347, - 35,6112,6085,1445,1388,339,1601,377,1523,1613, - 1611,1649,1647,551,1737,1758,141,2377,3372,76, - 35,276,513,142,3410,509,1347,35,279,4171, - 3315,35,1091,32,3124,4373,27,30,31,1197, - 1249,57,28,722,2105,2779,514,552,2817,2646, - 35,1091,32,2751,1306,27,30,31,1197,1249, - 26,28,952,25,23,50,1303,104,75,76, - 106,1340,2207,35,274,623,1445,1388,339,1601, - 1680,1523,1613,1611,1649,1647,62,1737,1758,141, - 3372,2736,1486,42,3015,513,142,509,534,531, - 532,533,4171,2353,35,1091,32,2721,5396,27, - 30,31,1197,1249,335,28,3729,2831,3536,514, - 2817,2872,35,1091,32,2751,1306,27,30,31, - 1197,1249,26,28,952,25,23,50,1303,104, - 75,76,106,1340,3732,1382,399,62,1445,1388, - 339,1601,4434,1523,1613,1611,1649,1647,560,1737, - 1758,141,312,3180,317,44,3015,513,142,494, - 509,1304,2633,1190,4171,3274,2859,35,1091,32, - 61,3699,27,30,31,1197,1249,58,28,3175, - 2856,514,2796,2817,3158,35,1091,32,1487,1306, - 27,30,31,1197,1249,26,28,952,25,23, - 50,1303,104,75,76,106,1340,2424,76,35, - 276,1445,1388,3547,1601,281,1523,1613,1611,1649, - 1647,2762,1737,1758,141,1347,35,2142,273,3254, - 375,142,510,2724,35,1091,32,3562,1306,27, - 30,31,1197,1249,26,28,952,25,23,50, - 1303,104,75,76,106,1340,2757,35,2142,273, - 1445,1388,2441,1601,349,1523,1613,1611,1649,1647, - 350,1737,1758,141,1347,3407,2142,73,3254,375, - 142,3810,1481,3465,35,1091,32,2795,1306,27, - 30,31,1197,1249,26,28,952,25,23,50, - 1303,104,75,76,106,1340,2757,35,2142,3408, - 1445,1388,493,1601,1977,1523,1613,1611,1649,1647, - 2795,2694,381,2713,2633,35,290,2797,3018,35, - 1091,32,637,1306,27,30,31,1197,1249,26, - 28,952,25,23,50,1303,104,75,76,106, - 1340,2515,76,35,449,1445,1388,6026,1601,518, - 1523,1613,1611,1649,1647,2892,1737,1758,141,3047, - 439,382,2713,3254,375,142,2633,3608,290,3014, - 2945,35,1091,32,3260,1306,27,30,31,1197, - 1249,26,28,952,25,23,50,1303,104,75, - 76,106,1340,1347,35,1930,384,1445,1388,1352, - 1601,3153,1523,1613,1611,1649,1647,1262,1737,1758, - 141,3047,1978,35,1091,32,547,142,40,30, - 31,1197,1249,3987,2231,62,2020,35,1930,384, - 4829,3285,35,1091,32,448,1306,27,30,31, - 1197,1249,26,28,952,25,23,50,1303,104, - 75,76,106,1340,539,3257,373,2713,1445,1388, - 1303,1601,1680,1523,1613,1611,1649,1647,49,1737, - 1758,141,3705,2079,1929,733,2231,156,142,3285, - 35,1091,32,320,1306,27,30,31,1197,1249, - 26,28,952,25,23,50,1303,104,75,76, - 106,1340,1347,35,2142,275,1445,1388,2160,1601, - 1833,1523,1613,1611,1649,1647,2973,1737,1758,141, - 442,3590,3593,1723,2795,369,142,2751,3285,35, - 1091,32,69,1306,27,30,31,1197,1249,26, - 28,952,25,23,50,1303,104,75,76,106, - 1340,456,3644,172,545,1445,1388,764,1601,177, - 1523,1613,1611,1649,1647,2166,1737,1758,141,637, - 1978,35,1091,32,369,142,3198,30,31,1197, - 1249,3152,2831,1292,3233,3009,5763,650,521,2751, - 3285,35,1091,32,519,1306,27,30,31,1197, - 1249,26,28,952,25,23,50,1303,104,75, - 76,106,1340,347,339,172,368,1445,1388,836, - 1601,357,1523,1613,1611,1649,1647,2973,1737,1758, - 141,3494,1347,35,290,1311,369,142,644,3085, - 35,1091,32,2729,1306,27,30,31,1197,1249, - 26,28,952,25,23,50,1303,104,75,76, - 106,1340,1465,3620,348,367,1445,1388,158,1601, - 196,1523,1613,1611,1649,1647,3494,1737,1758,141, - 1311,340,1058,1052,345,547,142,1347,2031,2141, - 2799,35,1091,32,1481,1306,27,30,31,1197, - 1249,26,28,952,25,23,50,1303,104,75, - 76,106,1340,158,2683,35,392,1445,1388,2489, - 1601,2080,1523,1613,1611,1649,1647,365,1737,1758, - 141,154,2261,1258,2091,3399,140,142,3285,35, - 1091,32,3066,1306,27,30,31,1197,1249,26, - 28,952,25,23,50,1303,104,75,76,106, - 1340,1347,35,2142,3502,1445,1388,1276,1601,246, - 1523,1613,1611,1649,1647,2284,1737,1758,141,2092, - 1347,35,2142,278,157,142,3285,35,1091,32, - 1528,1306,27,30,31,1197,1249,26,28,952, - 25,23,50,1303,104,75,76,106,1340,563, - 2683,35,392,1445,1388,2939,1601,1680,1523,1613, - 1611,1649,1647,546,1737,1758,141,172,3623,1347, - 3454,909,153,142,3285,35,1091,32,1680,1306, - 27,30,31,1197,1249,26,28,952,25,23, - 50,1303,104,75,76,106,1340,158,2683,35, - 392,1445,1388,813,1601,3536,1523,1613,1611,1649, - 1647,3494,1737,1758,141,1311,538,3257,2269,3562, - 152,142,3285,35,1091,32,1680,1306,27,30, - 31,1197,1249,26,28,952,25,23,50,1303, - 104,75,76,106,1340,561,455,2845,158,1445, - 1388,1654,1601,675,1523,1613,1611,1649,1647,3494, - 1737,1758,141,1311,3624,1347,3240,5352,151,142, - 3285,35,1091,32,1680,1306,27,30,31,1197, - 1249,26,28,952,25,23,50,1303,104,75, - 76,106,1340,1347,35,290,158,1445,1388,2973, - 1601,285,1523,1613,1611,1649,1647,3494,1737,1758, - 141,1311,3630,2394,3034,51,150,142,3285,35, - 1091,32,2365,1306,27,30,31,1197,1249,26, - 28,952,25,23,50,1303,104,75,76,106, - 1340,518,195,172,158,1445,1388,5710,1601,1801, - 1523,1613,1611,1649,1647,3494,1737,1758,141,1311, - 1262,2640,3123,322,149,142,3285,35,1091,32, - 2548,1306,27,30,31,1197,1249,26,28,952, - 25,23,50,1303,104,75,76,106,1340,338, - 3290,2480,158,1445,1388,2795,1601,1680,1523,1613, - 1611,1649,1647,3531,1737,1758,141,3810,3810,1289, - 3323,2763,148,142,3285,35,1091,32,2365,1306, - 27,30,31,1197,1249,26,28,952,25,23, - 50,1303,104,75,76,106,1340,258,573,5330, - 637,1445,1388,1292,1601,1418,1523,1613,1611,1649, - 1647,172,1737,1758,141,1311,3810,357,3468,520, - 147,142,3285,35,1091,32,1680,1306,27,30, - 31,1197,1249,26,28,952,25,23,50,1303, - 104,75,76,106,1340,70,95,24,2332,1445, - 1388,2973,1601,321,1523,1613,1611,1649,1647,172, - 1737,1758,141,1311,3810,449,541,633,146,142, - 3285,35,1091,32,3378,1306,27,30,31,1197, - 1249,26,28,952,25,23,50,1303,104,75, - 76,106,1340,2454,199,68,3281,1445,1388,1432, - 1601,2973,1523,1613,1611,1649,1647,308,1737,1758, - 141,3810,3810,2877,3454,96,145,142,3285,35, - 1091,32,3732,1306,27,30,31,1197,1249,26, - 28,952,25,23,50,1303,104,75,76,106, - 1340,2708,53,52,197,1445,1388,1292,1601,2832, - 1523,1613,1611,1649,1647,172,1737,1758,141,3957, - 3145,3810,3318,3913,144,142,3285,35,1091,32, - 376,1306,27,30,31,1197,1249,26,28,952, - 25,23,50,1303,104,75,76,106,1340,3684, - 3684,537,346,1445,1388,3553,1601,2973,1523,1613, - 1611,1649,1647,282,1737,1758,141,3261,35,277, - 3664,2908,143,142,3225,35,1091,32,2656,1306, - 27,30,31,1197,1249,26,28,952,25,23, - 50,1303,104,75,76,106,1340,2252,400,3221, - 219,1445,1388,5487,1601,284,1523,1613,1611,1649, - 1647,2795,1737,2864,162,3465,35,1091,32,2973, - 1306,27,30,31,1197,1249,26,28,952,25, - 23,50,1303,104,75,76,106,1340,1004,3465, - 1660,3614,1445,1388,3535,1601,3433,1523,1613,1611, - 1649,1647,1973,1737,2864,162,3172,6048,1347,35, - 1930,384,3348,323,172,386,387,1814,1461,423, - 423,3285,35,1091,32,3183,1306,27,30,31, - 1197,1249,26,28,952,25,23,50,1303,104, - 75,76,106,1340,2066,2359,2580,62,1445,1388, - 270,1601,5742,1523,1613,1611,1649,1647,3162,1737, - 1758,141,3810,3810,352,2184,2478,572,142,3285, - 35,1091,32,527,1306,27,30,31,1197,1249, - 26,28,952,25,23,50,1303,104,75,76, - 106,1340,3811,88,556,62,1445,1388,2544,1601, - 5855,1523,1613,1611,1649,1647,2809,1737,1758,141, - 2605,3810,336,2914,3024,138,142,3285,35,1091, - 32,2164,1306,27,30,31,1197,1249,26,28, - 952,25,23,50,1303,104,75,76,106,1340, - 2612,3684,2893,86,1445,1388,100,1601,1793,1523, - 1613,1611,1649,1647,172,1737,1758,141,2093,1978, - 35,1091,32,187,142,3259,30,31,1197,1249, - 3732,1092,1988,35,449,631,3680,6026,425,3465, - 35,1091,32,3122,1306,27,30,31,1197,1249, - 26,28,952,25,23,50,1303,104,75,76, - 106,1340,1347,35,1930,384,1445,1388,3600,1601, - 3866,1523,1613,1611,1649,1647,3013,1737,2864,162, - 3465,35,1091,32,2104,1306,27,30,31,1197, - 1249,26,28,952,25,23,50,1303,104,75, - 76,106,1340,2608,427,172,3399,1445,1388,1107, - 1601,294,1523,1613,1611,1649,1647,389,1737,2864, - 162,423,62,1347,35,1930,384,6015,3465,35, - 1091,32,575,1306,27,30,31,1197,1249,26, - 28,952,25,23,50,1303,104,75,76,106, - 1340,1347,35,1930,384,1445,1388,2429,1601,3953, - 1523,1613,1611,1649,1647,430,1737,2864,162,3465, - 35,1091,32,2006,1306,27,30,31,1197,1249, - 26,28,952,25,23,50,1303,104,75,76, - 106,1340,519,429,430,2345,1445,1388,3814,1601, - 6052,1523,1613,1611,1649,1647,4131,1737,2864,162, - 446,3590,3593,443,614,2877,3454,3465,35,1091, - 32,419,1306,27,30,31,1197,1249,26,28, - 952,25,23,50,1303,104,75,76,106,1340, - 1347,35,1930,384,1445,1388,2955,1601,2364,1523, - 1613,1611,1649,1647,2789,1737,2864,162,3585,35, - 1091,32,289,1306,27,30,31,1197,1249,26, - 28,952,25,23,50,1303,104,75,76,106, - 1340,3732,428,2110,250,1445,1388,3080,1601,2656, - 1523,1613,1611,1649,1647,2370,1737,2864,162,1311, - 3810,2573,3810,2795,3120,1311,534,531,532,533, - 418,1910,35,3587,32,5972,5448,27,30,31, - 1197,1249,335,28,2960,3810,1347,35,1930,384, - 3810,3045,154,67,534,531,532,533,154,1996, - 637,3770,35,1930,384,598,4190,284,3456,3124, - 87,421,3212,100,234,62,66,3810,2578,1947, - 6076,65,378,3146,582,531,532,533,49,725, - 315,1951,317,2834,1929,1670,310,1281,2795,328, - 2102,3465,604,270,3465,35,1091,32,64,1306, - 27,30,31,1197,1249,26,28,952,25,23, - 50,1303,104,75,76,106,1340,2270,2860,172, - 229,1445,1388,2768,1601,1307,1523,1613,1611,1649, - 2656,817,172,637,2719,351,2169,3156,4964,415, - 3582,232,227,228,527,3650,3081,1401,582,531, - 532,533,372,3196,172,271,909,1007,2170,3677, - 1499,35,1091,32,2189,5448,27,30,31,1197, - 1249,335,28,324,331,3810,3168,554,239,242, - 245,248,2693,534,531,532,533,2016,35,1930, - 384,668,172,172,229,3118,2625,2974,577,629, - 3810,725,398,172,3645,3928,3161,3016,2751,2825, - 3314,3988,4049,4734,3242,241,227,228,2935,315, - 1951,317,2834,2656,2859,313,1281,3810,329,270, - 3684,4231,3810,339,3465,35,1091,32,4110,1306, - 27,30,31,1197,1249,26,28,952,25,23, - 50,1303,104,75,76,106,1340,1031,4292,370, - 2481,1445,1388,4353,1601,2950,1523,1613,1611,2604, - 2282,35,1091,32,2651,5448,27,30,31,1197, - 1249,335,28,535,531,532,533,93,172,3147, - 3197,3247,2446,534,531,532,533,3384,3373,35, - 1091,32,3810,4373,27,30,31,1197,1249,56, - 28,5381,71,2973,3435,1074,1883,35,1091,32, - 5972,5396,27,30,31,1197,1249,335,28,315, - 1951,317,2834,318,3810,311,1281,1351,329,534, - 531,532,533,3156,172,172,388,172,4507,2362, - 423,4837,348,3472,172,3495,220,4789,2411,319, - 534,531,532,533,2973,55,2973,3496,527,342, - 1058,1052,345,2206,1705,315,1951,317,3179,3239, - 331,310,1281,3465,35,1091,32,935,1306,27, - 30,31,1197,1249,26,28,952,25,23,50, - 1303,104,75,76,106,1340,3654,557,185,299, - 1445,1388,438,1601,452,1523,1613,2624,2683,35, - 3073,4844,3661,3810,62,3465,35,1091,32,6102, - 1306,27,30,31,1197,1249,26,28,952,25, - 23,50,1303,104,75,76,106,1340,60,302, - 306,1889,1445,1388,54,1601,2578,1523,2418,172, - 49,172,1924,2930,1687,3464,1929,859,3810,3810, - 172,3732,172,3013,3602,3652,4853,172,172,1433, - 3497,4775,2751,3555,3396,1695,35,1091,32,5972, - 5396,27,30,31,1197,1249,335,28,2973,536, - 555,1305,535,531,532,533,3064,339,534,531, - 532,533,2468,35,3587,32,5972,5396,27,30, - 31,1197,1249,335,28,3156,4789,1347,35,1930, - 384,4171,3280,3995,1032,3598,531,532,533,172, - 1431,296,3873,2198,315,1951,317,3443,1997,3647, - 310,1281,293,3356,172,236,935,3556,2691,2973, - 2977,330,331,3679,541,582,531,532,533,49, - 3810,315,1951,317,2709,1929,3994,310,1281,3227, - 439,3810,3810,604,1370,35,3587,32,5972,5396, - 27,30,31,1197,1249,335,28,534,531,532, - 533,3327,402,534,531,532,533,534,531,532, - 533,229,374,3457,1436,725,3442,3732,303,306, - 1889,3446,172,3810,172,3356,2699,2973,2751,5933, - 415,3582,237,227,228,3291,2834,582,531,532, - 533,694,328,315,1951,317,2531,3493,4011,310, - 1281,600,1311,339,99,604,2561,35,3587,32, - 5972,5396,27,30,31,1197,1249,335,28,3810, - 191,6019,1347,35,1930,384,2903,4171,3810,3598, - 531,532,533,229,154,154,3678,3810,3557,172, - 178,1396,160,1759,2045,2832,3659,3356,300,3712, - 4475,6116,415,3582,244,227,228,3616,3615,566, - 1347,35,1930,384,49,315,1951,317,1404,193, - 46,310,1281,3465,35,1091,32,604,1306,27, - 30,31,1197,1249,26,28,952,25,23,50, - 1303,104,75,76,106,1340,531,2113,3618,3810, - 1445,1388,49,1601,3740,2486,172,172,1929,932, - 1054,4150,4015,172,2651,3968,4556,1311,3810,535, - 531,532,533,5933,415,3582,3465,35,1091,32, - 1935,1306,27,30,31,1197,1249,26,28,952, - 25,23,50,1303,104,75,76,106,1340,447, - 154,277,3621,1445,1388,600,1601,2044,2569,3405, - 35,1091,32,3821,1306,27,30,31,1197,1249, - 26,28,952,25,23,50,1303,569,75,76, - 225,2973,3810,3156,3704,172,3969,172,154,4915, - 3369,5708,3785,194,178,1396,637,1347,35,1930, - 384,201,213,5717,3708,200,210,211,212,214, - 3253,4000,1,567,581,167,600,3493,172,3322, - 331,1311,2923,166,295,181,165,168,169,170, - 171,172,3954,534,531,532,533,2909,2253,49, - 3988,225,525,3813,3219,1929,684,3713,3973,154, - 3991,725,2578,1000,154,178,1396,637,3972,2975, - 198,2081,201,213,5717,3862,200,210,211,212, - 214,3815,3249,3993,4017,581,167,3115,3989,3267, - 4019,7048,7048,1292,166,7048,182,165,168,169, - 170,171,172,179,2099,35,1091,32,5968,5396, - 27,30,31,1197,1249,335,28,3046,35,1091, - 32,5840,5396,27,30,31,1197,1249,335,28, - 7048,3156,1499,35,1091,32,7048,5448,27,30, - 31,1197,1249,335,28,3718,7048,1973,347,2751, - 7048,7048,6048,7048,3562,534,531,532,533,1347, - 35,1930,384,315,1951,317,7048,326,331,310, - 1281,7048,7048,5381,3644,3386,315,1951,317,7048, - 7048,7048,310,1281,7048,7048,348,7048,3002,715, - 7048,315,1951,317,2834,7048,7048,311,1281,348, - 329,49,7048,340,1058,1052,345,1929,733,7048, - 7048,3346,535,531,532,533,340,1058,1052,345, - 3465,35,1091,32,2141,1306,27,30,31,1197, - 1249,26,28,952,25,23,50,1303,104,75, - 76,106,1340,501,7048,3613,7048,1445,1388,600, - 2335,3465,35,1091,32,2605,1306,27,30,31, - 1197,1249,26,28,952,25,23,50,1303,104, - 75,76,106,1340,339,7048,7048,7048,1445,1388, - 7048,2336,154,7048,7048,7048,7048,499,500,186, - 7048,7048,7048,7048,7048,7048,7048,7048,5688,3465, - 35,1091,32,362,1306,27,30,31,1197,1249, - 26,28,952,25,23,50,1303,104,75,76, - 106,1340,7048,426,7048,7048,1445,1388,7048,2368, - 3465,35,1091,32,7048,1306,27,30,31,1197, - 1249,26,28,952,25,23,50,1303,104,75, - 76,106,1340,7048,188,7048,7048,1445,1388,7048, - 2376,3465,35,1091,32,7048,1306,27,30,31, - 1197,1249,26,28,952,25,23,50,1303,104, - 75,76,106,1340,7048,7048,369,7048,1445,1388, - 600,2383,3465,35,1091,32,7048,1306,27,30, - 31,1197,1249,26,28,952,25,23,50,1303, - 104,75,76,106,1340,225,7048,3554,7048,1445, - 1388,2751,2384,154,7048,7048,7048,7048,7048,178, - 1396,637,7048,7048,7048,7048,201,213,5717,2239, - 200,210,211,212,214,7048,3644,461,1679,581, - 167,600,172,7048,255,7048,1311,7048,166,7048, - 3164,165,168,169,170,171,172,7048,7048,7048, - 7048,582,531,532,533,7048,225,534,531,532, - 533,7048,7048,7048,154,7048,7048,7048,7048,154, - 178,1396,637,7048,7048,725,1766,201,213,5717, - 7048,200,210,211,212,214,7048,7048,553,1792, - 581,167,600,7048,7048,356,3249,229,991,166, - 7048,176,165,168,169,170,171,172,2875,3074, - 3106,7048,582,531,532,533,7048,225,247,227, - 228,535,531,532,533,154,7048,7048,7048,7048, - 2484,178,1396,637,2751,7048,7048,7048,201,213, - 5717,7048,200,210,211,212,214,7048,7048,645, - 1976,581,167,600,7048,7048,7048,7048,229,339, - 166,7048,174,165,168,169,170,171,172,7048, - 7048,2795,7048,582,531,532,533,7048,225,250, - 227,228,7048,3462,7048,7048,154,7048,7048,7048, - 2651,7048,178,1396,637,1347,35,1930,384,201, - 213,5717,7048,200,210,211,212,214,7048,7048, - 737,2605,581,167,600,5893,637,7048,7048,229, - 7048,166,7048,574,165,168,169,170,171,172, - 1670,35,1930,384,7048,372,7048,49,7048,225, - 579,227,228,1929,2494,7048,7048,154,7048,7048, - 7048,7048,7048,178,1396,637,7048,7048,7048,3156, - 201,213,5717,7048,200,210,211,212,214,7048, - 7048,829,49,581,167,600,7048,7048,1929,2853, - 1083,7048,166,7048,175,165,168,169,170,171, - 172,7048,7048,348,172,3568,331,651,1311,7048, - 225,7048,7048,535,531,532,533,7048,154,7048, - 340,1058,1052,345,178,1396,637,7048,338,7048, - 7048,201,213,5717,7048,200,210,211,212,214, - 7048,154,921,807,581,167,600,7048,2712,7048, - 347,3449,3389,166,7048,185,165,168,169,170, - 171,172,2096,35,1930,384,534,531,532,533, - 7048,225,7048,534,531,532,533,7048,7048,154, - 7048,7048,7048,7048,4058,178,1396,637,7048,7048, - 7048,725,201,213,5717,7048,200,210,211,212, - 214,7048,7048,1013,49,581,167,600,7048,7048, - 1929,1390,325,2900,166,7048,3588,165,168,169, - 170,171,172,1691,35,1930,384,7048,7048,651, - 7048,7048,225,7048,7048,7048,535,531,532,533, - 154,172,7048,7048,7048,2751,178,1396,637,7048, - 7048,7048,172,201,213,5717,1311,200,210,211, - 212,214,7048,7048,1105,49,581,167,600,7048, - 339,1929,1910,7048,7048,166,7048,190,165,168, - 169,170,171,172,1691,35,1930,384,7048,154, - 2887,7048,7048,225,4171,7048,2735,7048,7048,7048, - 7048,154,172,7048,7048,7048,2751,178,1396,637, - 7048,2046,7048,7048,201,213,5717,7048,200,210, - 211,212,214,347,7048,1197,49,581,167,600, - 172,339,1929,47,1311,7048,166,7048,184,165, - 168,169,170,171,172,7048,534,531,532,533, - 7048,2187,7048,7048,225,4171,7048,3554,7048,7048, - 7048,2751,154,7048,725,7048,7048,154,178,1396, - 637,7048,2047,7048,2740,201,213,5717,7048,200, - 210,211,212,214,7048,2819,3644,7048,581,167, - 7048,7048,7048,7048,7048,7048,7048,166,7048,192, - 165,168,169,170,171,172,3186,35,1091,32, - 5968,5396,27,30,31,1197,1249,335,28,3465, - 35,1091,32,7048,1306,27,30,31,1197,1249, - 26,28,952,25,23,50,1303,104,75,76, - 106,1340,7048,7048,7048,7048,1445,2391,7048,7048, - 7048,7048,7048,7048,7048,356,7048,7048,7048,7048, - 7048,7048,7048,7048,7048,315,1951,317,3282,3074, - 3106,310,1281,7048,7048,7048,7048,522,7048,7048, - 7048,7048,7048,7048,3405,35,1091,32,348,1306, - 27,30,31,1197,1249,26,28,952,25,23, - 50,1303,568,75,76,340,1058,1052,345,3465, - 35,1091,32,523,1306,27,30,31,1197,1249, - 26,28,952,25,23,50,1303,104,75,76, - 106,1340,7048,7048,7048,7048,1445,2410,3465,35, - 1091,32,7048,1306,27,30,31,1197,1249,26, - 28,952,25,23,50,1303,104,75,76,106, - 1340,3465,35,1091,32,2217,1306,27,30,31, - 1197,1249,26,28,952,25,23,50,1303,104, - 75,76,106,1340,3822,35,1930,384,2266,4190, - 172,7048,7048,7048,1311,7048,7048,235,7048,172, - 7048,7048,7048,2751,7048,7048,7048,582,531,532, - 533,7048,1770,35,1091,32,5972,5396,27,30, - 31,1197,1249,335,28,3718,270,154,339,2751, - 7048,7048,7048,7048,2767,535,531,532,533,2069, - 35,1091,32,5972,5396,27,30,31,1197,1249, - 335,28,4171,229,3644,172,172,7048,7048,2751, - 2751,7048,535,531,532,533,7048,7048,7048,2710, - 7048,315,1951,317,233,227,228,310,1281,1670, - 35,1930,384,4293,339,339,7048,1840,271,7048, - 7048,2751,172,7048,1923,7048,1311,7048,315,1951, - 317,7048,7048,2119,310,1281,7048,2751,4171,4171, - 4293,240,243,246,249,2693,225,534,531,532, - 533,49,7048,501,668,505,503,1929,47,154, - 7048,578,225,7048,7048,3446,1937,203,213,5717, - 7048,202,210,211,212,214,886,7048,2370,7048, - 581,7048,600,203,213,5717,7048,202,210,211, - 212,214,7048,7048,7048,2212,581,498,500,2751, - 204,206,208,291,292,3335,7048,339,7048,7048, - 7048,215,205,207,7048,154,204,206,208,291, - 292,3335,1996,637,225,7048,7048,215,205,207, - 7048,4171,7048,7048,7048,7048,3609,7048,7048,2854, - 7048,2440,1947,5472,899,203,213,5717,1948,202, - 210,211,212,214,7048,7048,7048,3171,581,5472, - 7048,7048,7048,7048,7048,7048,7048,534,531,532, - 533,7048,7048,7048,7048,7048,7048,7048,204,206, - 208,291,292,3335,7048,4240,7048,7048,7048,215, - 205,207,3465,35,1091,32,7048,1306,27,30, - 31,1197,1249,26,28,952,25,23,50,1303, - 104,75,76,106,2314,7048,7048,7048,7048,3317, - 7048,5472,3465,35,1091,32,7048,1306,27,30, - 31,1197,1249,26,28,952,25,23,50,1303, - 104,75,76,106,2315,3465,35,1091,32,7048, - 1306,27,30,31,1197,1249,26,28,952,25, - 23,50,1303,104,75,76,106,2316,3465,35, - 1091,32,7048,1306,27,30,31,1197,1249,26, - 28,952,25,23,50,1303,104,75,76,84, - 3465,1949,1091,1985,7048,1306,27,30,31,1197, - 1249,26,28,952,25,23,50,1303,104,75, - 76,83,3465,35,1091,32,7048,1306,27,30, - 31,1197,1249,26,28,952,25,23,50,1303, - 104,75,76,82,3465,35,1091,32,7048,1306, - 27,30,31,1197,1249,26,28,952,25,23, - 50,1303,104,75,76,81,3465,35,1091,32, - 7048,1306,27,30,31,1197,1249,26,28,952, - 25,23,50,1303,104,75,76,80,3465,35, - 1091,32,7048,1306,27,30,31,1197,1249,26, - 28,952,25,23,50,1303,104,75,76,79, - 3465,35,1091,32,7048,1306,27,30,31,1197, - 1249,26,28,952,25,23,50,1303,104,75, - 76,78,3465,35,1091,32,7048,1306,27,30, - 31,1197,1249,26,28,952,25,23,50,1303, - 104,75,76,77,3345,35,1091,32,7048,1306, - 27,30,31,1197,1249,26,28,952,25,23, - 50,1303,104,75,76,102,3465,35,1091,32, - 7048,1306,27,30,31,1197,1249,26,28,952, - 25,23,50,1303,104,75,76,108,3465,35, - 1091,32,7048,1306,27,30,31,1197,1249,26, - 28,952,25,23,50,1303,104,75,76,107, - 3465,35,1091,32,7048,1306,27,30,31,1197, - 1249,26,28,952,25,23,50,1303,104,75, - 76,105,3465,35,1091,32,7048,1306,27,30, - 31,1197,1249,26,28,952,25,23,50,1303, - 104,75,76,103,2305,7048,7048,7048,2751,7048, - 7048,1808,35,1091,32,7048,5396,27,30,31, - 1197,1249,335,28,347,7048,1670,35,1930,384, - 7048,7048,7048,225,535,531,532,533,7048,7048, - 7048,7048,7048,7048,7048,7048,7048,534,531,532, - 533,7048,7048,1933,203,213,5717,2751,202,210, - 211,212,214,7048,7048,725,7048,581,49,7048, - 315,1951,317,7048,1929,2054,593,1281,1670,35, - 1930,384,225,7048,7048,7048,3170,204,206,208, - 291,292,3335,2278,7048,7048,7048,7048,516,205, - 207,7048,2026,203,213,5717,2751,202,210,211, - 212,214,7048,7048,7048,7048,581,2398,172,7048, - 49,2751,1311,7048,7048,7048,1929,3560,7048,7048, - 7048,225,7048,7048,7048,7048,204,206,208,291, - 292,3335,7048,7048,7048,2278,225,515,205,207, - 7048,7048,203,213,5717,154,202,210,211,212, - 214,7048,3270,7048,7048,581,2491,203,213,5717, - 2751,202,210,211,212,214,7048,7048,7048,7048, - 581,7048,7048,7048,7048,204,206,208,291,292, - 3335,7048,7048,7048,7048,225,216,205,207,7048, - 204,206,208,291,292,3335,7048,7048,7048,7048, - 7048,301,205,207,7048,7048,203,213,5717,7048, - 202,210,211,212,214,3405,35,1091,32,581, - 1306,27,30,31,1197,1249,26,28,952,25, - 23,50,1303,85,75,76,7048,7048,7048,204, - 206,208,291,292,3335,7048,7048,7048,7048,7048, - 495,205,207,3405,35,1091,32,7048,1306,27, - 30,31,1197,1249,26,28,952,25,23,50, - 1303,576,75,76,3525,35,1091,32,7048,1306, - 27,30,31,1197,1249,26,28,952,25,23, - 50,1303,2905,75,76,2752,35,1091,32,5972, - 5396,27,30,31,1197,1249,335,28,2784,35, - 1091,32,5972,5396,27,30,31,1197,1249,335, - 28,7048,7048,7048,7048,7048,7048,7048,3720,7048, - 1614,7048,2751,7048,2751,4155,7048,1476,35,1091, - 32,655,5396,27,30,31,1197,1249,335,28, - 7048,7048,7048,7048,315,1951,317,3644,7048,225, - 310,1281,2978,35,1930,384,3002,315,1951,317, - 7048,1727,7048,310,1281,2751,4155,7048,7048,3513, - 2175,403,963,4002,7048,7048,7048,2751,3227,7048, - 172,172,7048,7048,600,600,312,3180,317,7048, - 225,7048,7048,7048,49,7048,534,531,532,533, - 1929,47,3644,404,405,406,291,292,3335,339, - 339,2175,403,963,725,7048,501,154,154,1512, - 7048,7048,7048,7048,186,186,7048,7048,3263,7048, - 7048,7048,7048,5688,5688,2834,7048,7048,7048,7048, - 7048,328,7048,7048,404,405,406,291,292,3335, - 4002,7048,7048,7048,2751,3227,7048,2534,7048,7048, - 498,500,3227,7048,7048,1691,35,1930,384,3263, - 5847,356,7048,534,531,532,533,7048,7048,3644, - 534,531,532,533,2381,3074,3106,7048,7048,2927, - 2932,725,7048,7048,407,409,2441,7048,725,3627, - 7048,7048,7048,2709,7048,7048,7048,49,3227,7048, - 7048,4016,2834,1929,47,2751,7048,7048,328,2834, - 7048,643,7048,7048,5751,329,534,531,532,533, - 7048,7048,1450,7048,7048,407,410,7048,7048,348, - 339,7048,526,1175,725,7048,7048,2970,356,2709, - 7048,7048,7048,7048,3227,7048,342,1058,1052,345, - 7048,2381,3074,3106,4171,2834,534,531,532,533, - 7048,328,534,531,532,533,7048,7048,2709,7048, - 7048,529,2709,3227,4363,7048,7048,3227,7048,2441, - 725,7048,7048,7048,3227,7048,7048,7048,7048,7048, - 5847,534,531,532,533,534,531,532,533,7048, - 7048,2834,534,531,532,533,7048,5979,7048,725, - 7048,7048,7048,725,7048,3163,35,1930,384,2191, - 725,7048,7048,7048,3227,7048,1670,35,1930,384, - 2834,7048,7048,7048,2834,7048,328,7048,7048,7048, - 328,2834,534,531,532,533,7048,5979,1670,35, - 1930,384,1670,35,1930,384,7048,49,7048,7048, - 725,7048,7048,1929,47,2970,7048,7048,49,3672, - 7048,7048,7048,7048,1929,47,1670,35,1930,384, - 7048,2834,1833,7048,7048,439,7048,329,7048,7048, - 49,7048,92,1273,49,7048,1929,47,7048,7048, - 1929,47,1670,35,1930,384,7048,7048,534,531, - 532,533,1267,3561,7048,2472,2295,172,49,2533, - 7048,2751,7048,7048,1929,47,3446,7048,7048,7048, - 7048,7048,94,7048,7048,534,531,532,533,534, - 531,532,533,2561,49,7048,339,7048,7048,7048, - 1929,47,7048,3446,7048,7048,7048,4240,7048,7048, - 7048,7048,7048,7048,7048,7048,7048,7048,7048,2650, - 4171,7048,7048,7048,7048,7048,7048,7048,7048,7048, - 7048,7048,7048,7048,7048,7048,7048,530,7048,7048, - 7048,7048,7048,7048,7048,7048,7048,7048,7048,7048, - 3054,7048,7048,7048,7048,7048,7048,7048,7048,7048, - 7048,7048,7048,7048,7048,7048,7048,7048,7048,7048, - 7048,7048,7048,7048,7048,7048,7048,3159,7048,0, - 39,7063,0,39,7062,0,1433,29,0,436, - 1495,0,450,1707,0,38,670,0,38,7063, - 0,38,7062,0,7111,74,0,7110,74,0, - 890,74,0,2998,74,0,1556,74,0,3992, - 74,0,3901,124,0,1,440,0,454,1342, - 0,453,1697,0,7056,1,0,1991,89,0, - 1433,383,0,35,33,0,32,34,0,39, - 670,0,1,946,0,1,7644,0,1,7643, - 0,1,7317,0,1,7316,0,1,7315,0, - 1,7314,0,1,7313,0,1,7312,0,1, - 7311,0,1,7310,0,1,7309,0,1,7308, - 0,1,7307,0,39,1,7063,0,39,1, - 7062,0,735,1,0,1,3509,0,7279,221, - 0,7278,221,0,2073,221,0,2121,221,0, - 2129,221,0,7382,221,0,7381,221,0,7306, - 221,0,7305,221,0,7304,221,0,7303,221, - 0,7302,221,0,7301,221,0,7300,221,0, - 7299,221,0,7279,222,0,7278,222,0,2073, - 222,0,2121,222,0,2129,222,0,7382,222, - 0,7381,222,0,7306,222,0,7305,222,0, - 7304,222,0,7303,222,0,7302,222,0,7301, - 222,0,7300,222,0,7299,222,0,2129,390, - 0,2121,390,0,2073,390,0,280,390,0, - 7279,223,0,7278,223,0,2073,223,0,2121, - 223,0,2129,223,0,7382,223,0,7381,223, - 0,7306,223,0,7305,223,0,7304,223,0, - 7303,223,0,7302,223,0,7301,223,0,7300, - 223,0,7299,223,0,280,283,0,7279,224, - 0,7278,224,0,2073,224,0,2121,224,0, - 2129,224,0,7382,224,0,7381,224,0,7306, - 224,0,7305,224,0,7304,224,0,7303,224, - 0,7302,224,0,7301,224,0,7300,224,0, - 7299,224,0,7063,48,0,7062,48,0,7279, - 580,0,7278,580,0,2073,580,0,2121,580, - 0,2129,580,0,7382,580,0,7381,580,0, - 7306,580,0,7305,580,0,7304,580,0,7303, - 580,0,7302,580,0,7301,580,0,7300,580, - 0,7299,580,0,7279,597,0,7278,597,0, - 2073,597,0,2121,597,0,2129,597,0,7382, - 597,0,7381,597,0,7306,597,0,7305,597, - 0,7304,597,0,7303,597,0,7302,597,0, - 7301,597,0,7300,597,0,7299,597,0,7279, - 238,0,7278,238,0,2073,238,0,2121,238, - 0,2129,238,0,7382,238,0,7381,238,0, - 7306,238,0,7305,238,0,7304,238,0,7303, - 238,0,7302,238,0,7301,238,0,7300,238, - 0,7299,238,0,39,7063,238,0,39,7062, - 238,0,7086,238,0,7644,238,0,7643,238, - 0,7317,238,0,7316,238,0,7315,238,0, - 7314,238,0,7313,238,0,7312,238,0,7311, - 238,0,7310,238,0,7309,238,0,7308,238, - 0,7307,238,0,7054,1,0,7053,1,0, - 32,384,0,29,383,0,1511,234,0,1, - 226,2965,0,7057,226,0,2987,226,0,1, - 226,2079,0,1,226,0,43,7084,0,43, - 37,0,3901,126,0,3901,125,0,2129,441, - 0,2121,441,0,2073,441,0,7086,441,0, - 327,441,0,39,441,0,2129,592,0,2121, - 592,0,2073,592,0,2129,590,0,2121,590, - 0,2073,590,0,594,590,0,594,589,0, - 1,2129,0,1,2121,0,1,2073,0,7086, - 1,0,39,1,0,47,37,0,569,576, - 0,3108,226,0,10,12,0,1,5675,0, - 1,2904,0,1,670,0,1,90,0,2129, - 327,0,2121,327,0,2073,327,0,497,3316, - 0,7086,1,226,0,39,1,226,0,226, - 412,0,7063,37,0,7062,37,0,7063,2, - 37,0,7062,2,37,0,7063,36,0,7062, - 36,0,8,10,12,0,1,327,0,4842, - 98,0,7084,45,0,37,45,0,7058,401, - 0,7057,401,0,226,411,0,3044,314,0, - 1,592,0,1847,101,0,2490,97,0,2129, - 93,0,2121,93,0,2073,93,0,7086,93, - 0,327,93,0,39,93,0,35,72,0, - 7382,332,0,7381,332,0,1751,275,0,7060, - 379,0,7059,379,0,497,5423,0,226,218, - 0,183,4414,0,226,217,0,1,1594,0, - 1,1690,0,2129,587,0,2121,587,0,2073, - 587,0,2129,586,0,2121,586,0,2073,586, - 0,534,535,0,7060,1,0,2129,587,588, - 0,2121,587,588,0,2073,587,588,0,587, - 588,0,3628,379,0,8,12,0 + 32,32,40,16,75,218,147,147,187,187, + 187,29,57,90,135,135,135,117,117,117, + 197,202,115,63,71,164,13,13,29,188, + 188,1547,35,2106,2085,1316,4235,27,30,31, + 875,885,26,28,2146,25,23,50,1003,104, + 75,76,106,1088,583,531,532,533,1178,1098, + 1776,1336,62,1204,1462,1392,1614,1615,1604,1650, + 1652,141,2301,270,2751,1191,3825,156,142,3761, + 2755,2972,1468,2755,2934,1313,2072,35,814,32, + 5898,4940,27,30,31,875,885,335,28,1528, + 3562,229,1528,35,3162,339,71,526,339,534, + 531,532,533,2193,35,274,258,154,1315,2127, + 765,232,227,228,2275,198,1047,4798,177,738, + 2004,1769,35,814,32,271,2000,27,30,31, + 875,885,26,28,529,507,315,2530,317,2969, + 163,310,2525,2833,349,328,3989,2837,239,242, + 245,248,2868,1528,1711,2050,34,2976,1882,236, + 802,959,4756,535,531,532,533,623,578,583, + 531,532,533,2864,258,3763,1837,652,834,2830, + 3331,4033,4094,4750,726,2645,35,814,32,2755, + 1307,27,30,31,875,885,26,28,747,25, + 23,50,1003,104,75,76,106,1088,4155,302, + 306,1572,1178,1098,339,1336,229,1204,1462,1392, + 1614,285,1604,1650,1652,141,672,1528,35,2050, + 3161,513,142,2523,3018,1047,237,227,228,2742, + 1656,35,814,32,3470,2000,27,30,31,875, + 885,59,28,514,2645,35,814,32,2755,1307, + 27,30,31,875,885,26,28,747,25,23, + 50,1003,104,75,76,106,1088,438,4224,452, + 2967,1178,1098,339,1336,69,1204,1462,1392,1614, + 3610,1604,1650,1652,141,3048,3739,76,35,276, + 513,142,1808,2070,1047,3073,509,3787,35,814, + 32,493,4296,27,30,31,875,885,57,28, + 1528,1520,514,76,35,449,2919,86,6021,2931, + 100,2645,35,814,32,2755,1307,27,30,31, + 875,885,26,28,747,25,23,50,1003,104, + 75,76,106,1088,1528,35,1701,384,1178,1098, + 339,1336,1693,1204,1462,1392,1614,439,1604,1650, + 1652,141,1528,35,279,509,258,513,142,3180, + 911,1047,3808,35,814,32,2725,4479,27,30, + 31,875,885,335,28,2967,448,2934,2931,514, + 2865,35,814,32,2755,1307,27,30,31,875, + 885,26,28,747,25,23,50,1003,104,75, + 76,106,1088,4102,1566,519,399,1178,1098,339, + 1336,1693,1204,1462,1392,1614,3596,1604,1650,1652, + 141,196,312,3276,317,2788,513,142,2639,1313, + 1047,494,509,1656,35,814,32,61,2000,27, + 30,31,875,885,58,28,2852,4103,514,2967, + 3306,5816,3030,443,1313,2931,561,3151,35,814, + 32,158,1307,27,30,31,875,885,26,28, + 747,25,23,50,1003,104,75,76,106,1088, + 573,442,3623,3625,1178,1098,154,1336,536,1204, + 1462,1392,1614,160,1604,1650,1652,141,2085,2300, + 456,510,4101,375,142,2723,35,814,32,385, + 1307,27,30,31,875,885,26,28,747,25, + 23,50,1003,104,75,76,106,1088,1903,348, + 258,2903,1178,1098,2755,1336,62,1204,1462,1392, + 1614,4357,1604,1650,1652,141,340,1099,642,345, + 4101,375,142,2967,338,3521,35,814,32,339, + 1307,27,30,31,875,885,26,28,747,25, + 23,50,1003,104,75,76,106,1088,347,3056, + 1047,350,1178,1098,5374,1336,2858,1204,1462,1392, + 1614,3180,1604,2767,62,381,2080,2934,1818,4418, + 3011,35,814,32,2721,1307,27,30,31,875, + 885,26,28,747,25,23,50,1003,104,75, + 76,106,1088,1693,352,35,449,1178,1098,6021, + 1336,2827,1204,1462,1392,1614,3462,1604,1650,1652, + 141,195,3970,382,2080,4101,375,142,1528,35, + 4468,4407,2434,2938,35,814,32,2769,1307,27, + 30,31,875,885,26,28,747,25,23,50, + 1003,104,75,76,106,1088,1693,76,35,276, + 1178,1098,1904,1336,2007,1204,1462,1392,1614,62, + 1604,1650,1652,141,5729,1784,35,814,32,547, + 142,41,30,31,875,885,2967,1834,35,1701, + 384,1915,455,3278,35,814,32,3111,1307,27, + 30,31,875,885,26,28,747,25,23,50, + 1003,104,75,76,106,1088,1797,24,373,2080, + 1178,1098,3311,1336,2278,1204,1462,1392,1614,49, + 1604,1650,1652,141,2932,1674,1179,2434,5713,156, + 142,3278,35,814,32,5396,1307,27,30,31, + 875,885,26,28,747,25,23,50,1003,104, + 75,76,106,1088,3016,347,2708,1693,1178,1098, + 5843,1336,154,1204,1462,1392,1614,3257,1604,1650, + 1652,141,446,3623,3625,2484,258,369,142,2755, + 1313,3278,35,814,32,2434,1307,27,30,31, + 875,885,26,28,747,25,23,50,1003,104, + 75,76,106,1088,3658,1399,348,545,1178,1098, + 3045,1336,2877,1204,1462,1392,1614,3277,1604,1650, + 1652,141,434,340,1099,642,345,369,142,42, + 3141,2741,1258,535,531,532,533,3848,755,652, + 3016,3483,3278,35,814,32,51,1307,27,30, + 31,875,885,26,28,747,25,23,50,1003, + 104,75,76,106,1088,1528,3293,258,368,1178, + 1098,2755,1336,357,1204,1462,1392,1614,807,1604, + 1650,1652,141,1528,35,2050,273,258,369,142, + 2934,1313,3078,35,814,32,339,1307,27,30, + 31,875,885,26,28,747,25,23,50,1003, + 104,75,76,106,1088,44,3141,1047,367,1178, + 1098,4074,1336,3907,1204,1462,1392,1614,672,1604, + 1650,1652,141,2788,199,1845,258,1313,547,142, + 5715,2967,1979,2792,35,814,32,91,1307,27, + 30,31,875,885,26,28,747,25,23,50, + 1003,104,75,76,106,1088,2022,35,274,158, + 1178,1098,68,1336,1558,1204,1462,1392,1614,365, + 1604,1650,1652,141,246,1528,35,1701,384,140, + 142,3278,35,814,32,1705,1307,27,30,31, + 875,885,26,28,747,25,23,50,1003,104, + 75,76,106,1088,2853,35,2050,273,1178,1098, + 158,1336,1896,1204,1462,1392,1614,49,1604,1650, + 1652,141,1688,1674,1435,2021,1999,157,142,1789, + 3278,35,814,32,338,1307,27,30,31,875, + 885,26,28,747,25,23,50,1003,104,75, + 76,106,1088,1528,3484,2050,73,1178,1098,3076, + 1336,3075,1204,1462,1392,1614,546,1604,1650,1652, + 141,1289,1528,35,1701,384,153,142,3278,35, + 814,32,1418,1307,27,30,31,875,885,26, + 28,747,25,23,50,1003,104,75,76,106, + 1088,2853,35,2050,3494,1178,1098,518,1336,3762, + 1204,1462,1392,1614,49,1604,1650,1652,141,258, + 1674,3575,3180,1313,152,142,3278,35,814,32, + 308,1307,27,30,31,875,885,26,28,747, + 25,23,50,1003,104,75,76,106,1088,1528, + 35,2050,275,1178,1098,154,1336,883,1204,1462, + 1392,1614,1571,1604,1650,1652,141,4040,1528,35, + 1701,384,151,142,3278,35,814,32,817,1307, + 27,30,31,875,885,26,28,747,25,23, + 50,1003,104,75,76,106,1088,1528,35,2050, + 3564,1178,1098,2444,1336,909,1204,1462,1392,1614, + 49,1604,1650,1652,141,258,1674,1596,1001,1313, + 150,142,3278,35,814,32,1936,1307,27,30, + 31,875,885,26,28,747,25,23,50,1003, + 104,75,76,106,1088,1528,35,2050,278,1178, + 1098,154,1336,1093,1204,1462,1392,1614,1387,1604, + 1650,1652,141,2967,1528,35,1701,384,149,142, + 3278,35,814,32,1981,1307,27,30,31,875, + 885,26,28,747,25,23,50,1003,104,75, + 76,106,1088,802,53,258,62,1178,1098,3362, + 1336,5970,1204,1462,1392,1614,49,1604,1650,1652, + 141,258,1674,683,417,1313,148,142,3278,35, + 814,32,2998,1307,27,30,31,875,885,26, + 28,747,25,23,50,1003,104,75,76,106, + 1088,2600,35,392,62,1178,1098,154,1336,6013, + 1204,1462,1392,1614,3485,1604,1650,1652,141,2967, + 1528,35,1701,384,147,142,3278,35,814,32, + 1936,1307,27,30,31,875,885,26,28,747, + 25,23,50,1003,104,75,76,106,1088,3828, + 52,258,3000,1178,1098,1317,1336,1693,1204,1462, + 1392,1614,49,1604,1650,1652,141,258,1674,1179, + 3146,1313,146,142,3278,35,814,32,70,1307, + 27,30,31,875,885,26,28,747,25,23, + 50,1003,104,75,76,106,1088,2600,35,392, + 3180,1178,1098,154,1336,4045,1204,1462,1392,1614, + 3521,1604,1650,1652,141,3750,1528,35,1701,384, + 145,142,3278,35,814,32,4031,1307,27,30, + 31,875,885,26,28,747,25,23,50,1003, + 104,75,76,106,1088,4128,322,258,3437,1178, + 1098,2285,1336,6029,1204,1462,1392,1614,49,1604, + 1650,1652,141,258,1674,2541,3439,1313,144,142, + 3278,35,814,32,3429,1307,27,30,31,875, + 885,26,28,747,25,23,50,1003,104,75, + 76,106,1088,3768,3768,563,1693,1178,1098,154, + 1336,2639,1204,1462,1392,1614,3546,1604,1650,1652, + 141,3761,1528,35,1701,384,143,142,3218,35, + 814,32,442,1307,27,30,31,875,885,26, + 28,747,25,23,50,1003,104,75,76,106, + 1088,1528,35,1701,384,1178,1098,2434,1336,439, + 1204,1462,1392,1614,427,1604,1650,3033,162,3521, + 35,814,32,531,1307,27,30,31,875,885, + 26,28,747,25,23,50,1003,104,75,76, + 106,1088,281,270,2788,95,1178,1098,1313,1336, + 628,1204,1462,1392,1614,2934,1604,1650,3033,162, + 1528,35,1701,384,258,2925,3562,323,1313,386, + 387,2037,2639,423,423,2299,3278,35,814,32, + 158,1307,27,30,31,875,885,26,28,747, + 25,23,50,1003,104,75,76,106,1088,197, + 154,2632,430,1178,1098,272,1336,3555,1204,1462, + 1392,1614,3266,1604,1650,1652,141,2549,2600,35, + 3189,4346,572,142,3278,35,814,32,1871,1307, + 27,30,31,875,885,26,28,747,25,23, + 50,1003,104,75,76,106,1088,3798,2600,35, + 392,1178,1098,282,1336,377,1204,1462,1392,1614, + 49,1604,1650,1652,141,2572,1674,1248,2150,1313, + 138,142,3278,35,814,32,2255,1307,27,30, + 31,875,885,26,28,747,25,23,50,1003, + 104,75,76,106,1088,2441,3844,284,2463,1178, + 1098,154,1336,1351,1204,1462,1392,1614,599,1604, + 1650,1652,141,2690,2189,35,814,32,187,142, + 40,30,31,875,885,3145,535,531,532,533, + 2181,3563,4285,3521,35,814,32,3257,1307,27, + 30,31,875,885,26,28,747,25,23,50, + 1003,104,75,76,106,1088,1528,35,1701,384, + 1178,1098,3830,1336,2639,1204,1462,1392,1614,400, + 1604,1650,3033,162,3521,35,814,32,2675,1307, + 27,30,31,875,885,26,28,747,25,23, + 50,1003,104,75,76,106,1088,2828,429,539, + 3352,1178,1098,2934,1336,3765,1204,1462,1392,1614, + 3071,1604,1650,3033,162,2291,1528,35,1701,384, + 1693,3056,3521,35,814,32,575,1307,27,30, + 31,875,885,26,28,747,25,23,50,1003, + 104,75,76,106,1088,294,537,219,87,1178, + 1098,100,1336,605,1204,1462,1392,1614,428,1604, + 1650,3033,162,3521,35,814,32,2540,1307,27, + 30,31,875,885,26,28,747,25,23,50, + 1003,104,75,76,106,1088,3739,320,2925,3562, + 1178,1098,321,1336,3044,1204,1462,1392,1614,2656, + 1604,1650,3033,162,1612,3314,35,277,1313,96, + 2210,3521,35,814,32,419,1307,27,30,31, + 875,885,26,28,747,25,23,50,1003,104, + 75,76,106,1088,3007,4097,430,2934,1178,1098, + 154,1336,706,1204,1462,1392,1614,2753,1604,1650, + 3033,162,3701,35,814,32,289,1307,27,30, + 31,875,885,26,28,747,25,23,50,1003, + 104,75,76,106,1088,3610,2639,2549,1885,1178, + 1098,1050,1336,3189,1204,1462,1392,1614,3768,1604, + 1650,3033,162,2189,35,814,32,2151,2277,3268, + 30,31,875,885,418,1820,35,3604,32,5898, + 4940,27,30,31,875,885,335,28,899,2757, + 284,2967,3491,1313,3180,3799,2755,2718,534,531, + 532,533,519,3148,2639,3886,35,1701,384,2533, + 4174,535,531,532,533,421,3226,434,234,2271, + 2639,339,346,2292,3563,154,3557,378,583,531, + 532,533,1306,443,3472,315,2530,317,2969,3472, + 310,2525,1386,1049,328,3180,1749,270,2992,3521, + 35,814,32,398,1307,27,30,31,875,885, + 26,28,747,25,23,50,1003,104,75,76, + 106,1088,2864,3495,389,229,1178,1098,423,1336, + 1307,1204,1462,1392,1614,293,2717,991,3497,352, + 3472,3596,4770,415,3603,232,227,228,527,521, + 2202,300,3180,583,531,532,533,2934,442,271, + 534,531,532,533,1499,35,814,32,2481,4940, + 27,30,31,875,885,335,28,2967,2911,538, + 3352,560,239,242,245,248,2868,534,531,532, + 533,534,531,532,533,959,2416,3472,3551,3483, + 229,220,578,172,3555,720,372,876,88,1440, + 3584,1083,3846,2830,3331,4033,4094,4750,726,2100, + 241,227,228,3184,315,2530,317,2969,2759,313, + 2525,1817,2031,329,535,531,532,533,3521,35, + 814,32,4155,1307,27,30,31,875,885,26, + 28,747,25,23,50,1003,104,75,76,106, + 1088,1528,35,290,1985,1178,1098,2446,1336,2430, + 1204,1462,1392,2656,2375,35,814,32,2934,4940, + 27,30,31,875,885,335,28,535,531,532, + 533,258,258,3319,2934,2755,1625,534,531,532, + 533,1370,35,814,32,5898,4479,27,30,31, + 875,885,335,28,1467,4826,1528,35,1701,384, + 339,3224,557,370,534,531,532,533,324,331, + 2785,376,1136,1331,315,2530,317,2969,299,311, + 2525,1047,4910,329,2189,35,814,32,4119,3308, + 3269,30,31,875,885,62,348,3323,49,1858, + 6033,315,2530,317,46,258,310,2525,93,1313, + 2338,2994,2837,342,1099,642,345,3521,35,814, + 32,3556,1307,27,30,31,875,885,26,28, + 747,25,23,50,1003,104,75,76,106,1088, + 3557,154,258,3611,1178,1098,2923,1336,2176,1204, + 1462,2662,3521,35,814,32,3615,1307,27,30, + 31,875,885,26,28,747,25,23,50,1003, + 104,75,76,84,302,306,1572,3401,35,814, + 32,444,1307,27,30,31,875,885,26,28, + 747,25,23,50,1003,569,75,76,2857,2967, + 2788,3616,3617,2967,1313,3521,35,814,32,3470, + 1307,27,30,31,875,885,26,28,747,25, + 23,50,1003,104,75,76,106,1088,3671,2787, + 556,2394,1178,1098,577,1336,158,1204,2619,1922, + 35,814,32,5898,4479,27,30,31,875,885, + 335,28,1798,35,1701,384,1528,35,1701,384, + 3186,1304,534,531,532,533,2468,35,3604,32, + 5898,4479,27,30,31,875,885,335,28,2096, + 4910,1528,35,290,534,531,532,533,2283,3639, + 531,532,533,1712,270,3246,185,3731,270,315, + 2530,317,2423,3803,310,2525,3044,3370,2934,2934, + 2837,534,531,532,533,2571,3675,3676,534,531, + 532,533,2751,35,290,2934,315,2530,317,720, + 3319,310,2525,1270,3768,522,720,1749,2354,35, + 3604,32,5898,4479,27,30,31,875,885,335, + 28,2969,296,402,3496,2967,3295,329,3314,3184, + 336,534,531,532,533,4095,331,3762,2434,191, + 348,1436,303,306,1572,3189,3489,71,3373,3370, + 2755,1705,2755,4789,415,3603,3477,342,1099,642, + 345,3368,3677,2967,583,531,532,533,315,2530, + 317,3738,3729,310,2525,3658,2755,339,2934,1749, + 2447,35,3604,32,5898,4479,27,30,31,875, + 885,335,28,258,3722,1194,258,1313,4162,3319, + 2173,3658,1762,3639,531,532,533,4108,35,814, + 32,229,4296,27,30,31,875,885,56,28, + 388,3370,295,3284,423,5035,415,3603,644,154, + 3189,244,227,228,330,331,3888,3345,1680,258, + 315,2530,317,2174,501,310,2525,3521,35,814, + 32,1749,1307,27,30,31,875,885,26,28, + 747,25,23,50,1003,104,75,76,106,1088, + 356,3289,258,518,1178,1098,2608,1336,3734,2654, + 2685,351,1977,3703,3191,3239,3515,258,499,500, + 527,3220,3823,3772,3407,2967,5507,4789,415,3603, + 3521,35,814,32,614,1307,27,30,31,875, + 885,26,28,747,25,23,50,1003,104,75, + 76,106,1088,2630,1710,277,67,1178,1098,601, + 1336,2967,2655,3401,35,814,32,4189,1307,27, + 30,31,875,885,26,28,747,25,23,50, + 1003,568,75,76,225,549,2967,60,3708,4156, + 258,154,66,180,3001,2967,319,3180,654,178, + 3472,3501,3367,2756,3767,527,201,213,5448,167, + 200,210,211,212,214,255,1,65,3742,582, + 601,2788,1710,715,2826,1313,64,166,3794,181, + 165,168,169,170,171,172,3187,3798,534,531, + 532,533,3472,3800,2608,225,534,531,532,533, + 1645,372,154,550,2893,3809,720,158,2105,654, + 178,3472,258,3818,720,3827,2606,201,213,5448, + 167,200,210,211,212,214,2900,3829,3314,3774, + 582,535,531,532,533,554,325,3820,166,1184, + 182,165,168,169,170,171,172,179,1910,35, + 814,32,5851,4479,27,30,31,875,885,335, + 28,2537,35,814,32,5789,4479,27,30,31, + 875,885,335,28,3910,3839,1499,35,814,32, + 2606,4940,27,30,31,875,885,335,28,552, + 3180,3489,347,2967,2967,2755,1262,2967,3576,534, + 531,532,533,535,531,532,533,258,315,2530, + 317,3739,258,310,2525,2967,2745,4826,4127,3461, + 3658,315,2530,317,4017,4276,310,2525,4337,3729, + 348,3527,3769,2755,3928,3472,315,2530,317,2969, + 3850,311,2525,348,520,329,4398,340,1099,642, + 345,3851,258,1646,3735,3428,4843,551,3658,2967, + 340,1099,642,345,3521,35,814,32,2741,1307, + 27,30,31,875,885,26,28,747,25,23, + 50,1003,104,75,76,106,1088,3514,2967,501, + 318,1178,1098,2967,2348,3521,35,814,32,2967, + 1307,27,30,31,875,885,26,28,747,25, + 23,50,1003,104,75,76,106,1088,3466,55, + 3856,7049,1178,1098,54,2388,2760,356,7049,7049, + 536,6025,2760,498,500,2967,2933,6025,2895,7049, + 3908,3191,3239,3521,35,814,32,362,1307,27, + 30,31,875,885,26,28,747,25,23,50, + 1003,104,75,76,106,1088,555,2978,7049,541, + 1178,1098,3706,2396,3521,35,814,32,2967,1307, + 27,30,31,875,885,26,28,747,25,23, + 50,1003,104,75,76,106,1088,2967,2967,258, + 2967,1178,1098,2708,2415,3521,35,814,32,3285, + 1307,27,30,31,875,885,26,28,747,25, + 23,50,1003,104,75,76,106,1088,374,4135, + 7049,99,1178,1098,2128,2418,3521,35,814,32, + 2128,1307,27,30,31,875,885,26,28,747, + 25,23,50,1003,104,75,76,106,1088,7049, + 2967,369,2967,1178,1098,601,2433,3521,35,814, + 32,7049,1307,27,30,31,875,885,26,28, + 747,25,23,50,1003,104,75,76,106,1088, + 225,4520,258,566,1178,2498,2755,154,3186,258, + 7049,7049,425,3294,654,178,3472,258,426,7049, + 7049,4008,201,213,5448,167,200,210,211,212, + 214,339,461,1662,258,582,601,2788,4134,715, + 258,1313,3647,166,4944,3275,165,168,169,170, + 171,172,1047,2751,3685,290,583,531,532,533, + 7049,225,534,531,532,533,7049,258,154,2967, + 1893,3701,7049,158,62,654,178,3472,3319,6041, + 720,7049,7049,201,213,5448,167,200,210,211, + 212,214,7049,553,1679,258,582,601,3762,2703, + 2795,258,3102,229,166,2696,176,165,168,169, + 170,171,172,4126,331,7049,7049,583,531,532, + 533,7049,225,247,227,228,258,258,258,154, + 3335,3341,1057,7049,3184,258,654,178,3472,4195, + 4160,7049,7049,7049,201,213,5448,167,200,210, + 211,212,214,7049,645,1775,2967,582,601,7049, + 2967,2967,3730,1762,229,166,4601,174,165,168, + 169,170,171,172,1897,35,1701,384,583,531, + 532,533,7049,225,250,227,228,3700,7049,258, + 154,447,567,4958,7049,3186,258,654,178,3472, + 6047,7049,7049,7049,3319,201,213,5448,167,200, + 210,211,212,214,7049,737,49,258,582,601, + 7049,3420,1674,3021,3112,229,166,7049,574,165, + 168,169,170,171,172,2113,35,1701,384,326, + 331,2221,7049,7049,225,580,227,228,7049,7049, + 7049,154,7049,7049,7049,525,7049,258,654,178, + 3472,2755,7049,7049,7049,3319,201,213,5448,167, + 200,210,211,212,214,7049,829,49,7049,582, + 601,7049,7049,1674,1284,807,339,166,7049,175, + 165,168,169,170,171,172,2296,35,1701,384, + 4217,331,2221,7049,7049,225,7049,1047,534,531, + 532,533,154,7049,7049,7049,7049,7049,258,654, + 178,3472,2755,7049,7049,3353,2738,201,213,5448, + 167,200,210,211,212,214,7049,921,49,7049, + 582,601,7049,7049,1674,1342,1666,339,166,7049, + 185,165,168,169,170,171,172,2296,35,1701, + 384,7049,7049,3212,7049,7049,225,7049,1047,534, + 531,532,533,154,7049,7049,7049,7049,7049,258, + 654,178,3472,2755,7049,7049,505,2738,201,213, + 5448,167,200,210,211,212,214,7049,1013,49, + 3386,582,601,7049,7049,1674,47,807,339,166, + 7049,3610,165,168,169,170,171,172,1897,35, + 1701,384,7049,7049,2625,7049,7049,225,7049,1047, + 534,531,532,533,154,7049,7049,7049,7049,7049, + 258,654,178,3472,2755,7049,7049,503,2738,201, + 213,5448,167,200,210,211,212,214,7049,1105, + 49,3429,582,601,7049,7049,1674,47,3371,339, + 166,7049,190,165,168,169,170,171,172,1897, + 35,1701,384,7049,7049,952,7049,7049,225,7049, + 1047,534,531,532,533,154,7049,7049,7049,7049, + 7049,7049,654,178,3472,7049,7049,7049,530,2738, + 201,213,5448,167,200,210,211,212,214,715, + 1197,49,3909,582,601,7049,7049,1674,2154,1175, + 7049,166,7049,184,165,168,169,170,171,172, + 7049,7049,534,531,532,533,3216,7049,7049,225, + 7049,7049,534,531,532,533,154,7049,7049,7049, + 720,7049,7049,654,178,3472,7049,7049,7049,7049, + 2964,201,213,5448,167,200,210,211,212,214, + 7049,7049,4034,4009,582,7049,7049,7049,7049,7049, + 7049,7049,166,7049,192,165,168,169,170,171, + 172,4091,35,814,32,5851,4479,27,30,31, + 875,885,335,28,3521,35,814,32,7049,1307, + 27,30,31,875,885,26,28,747,25,23, + 50,1003,104,75,76,106,1088,7049,7049,7049, + 7049,1178,2517,7049,7049,7049,7049,7049,7049,7049, + 7049,7049,7049,7049,7049,7049,7049,7049,7049,7049, + 7049,315,2530,317,7049,7049,310,2525,7049,7049, + 7049,7049,522,7049,7049,7049,7049,7049,7049,3461, + 35,814,32,348,1307,27,30,31,875,885, + 26,28,747,25,23,50,1003,85,75,76, + 340,1099,642,345,3521,35,814,32,523,1307, + 27,30,31,875,885,26,28,747,25,23, + 50,1003,104,75,76,106,1088,3521,35,814, + 32,2229,1307,27,30,31,875,885,26,28, + 747,25,23,50,1003,104,75,76,106,1088, + 3938,35,1701,384,2243,4174,2674,7049,7049,7049, + 7049,1712,7049,235,7049,7049,7049,7049,7049,7049, + 1267,7049,7049,583,531,532,533,7049,7049,534, + 531,532,533,7049,7049,7049,7049,7049,7049,2169, + 7049,7049,270,534,531,532,533,720,2258,35, + 814,32,5898,4479,27,30,31,875,885,335, + 28,3618,534,531,532,533,7049,7049,7049,2969, + 229,535,531,532,533,328,2200,35,814,32, + 3690,4479,27,30,31,875,885,335,28,7049, + 233,227,228,1840,7049,7049,7049,2755,7049,535, + 531,532,533,5940,271,7049,7049,7049,315,2530, + 317,7049,7049,310,2525,7049,7049,7049,7049,4529, + 7049,7049,225,7049,7049,7049,7049,240,243,246, + 249,2868,7049,7049,7049,7049,315,2530,317,7049, + 959,594,2525,7049,203,213,5448,579,202,210, + 211,212,214,7049,7049,7049,7049,582,7049,7049, + 2561,35,814,32,5898,4479,27,30,31,875, + 885,335,28,7049,7049,7049,204,206,208,291, + 292,3427,7049,535,531,532,533,215,205,207, + 1897,35,1701,384,2119,7049,7049,7049,2755,7049, + 7049,7049,7049,7049,7049,7049,7049,7049,2212,7049, + 7049,7049,2755,7049,7049,7049,7049,2484,7049,5493, + 315,2530,317,225,7049,310,2525,7049,7049,7049, + 7049,4529,49,7049,7049,7049,7049,225,1674,3255, + 7049,7049,7049,7049,7049,203,213,5448,7049,202, + 210,211,212,214,7049,7049,7049,3216,582,203, + 213,5448,7049,202,210,211,212,214,7049,7049, + 7049,2757,582,7049,7049,601,7049,204,206,208, + 291,292,3427,7049,7049,2386,7049,7049,215,205, + 207,204,206,208,291,292,3427,7049,7049,7049, + 339,7049,215,205,207,7049,7049,154,534,531, + 532,533,7049,7049,1306,7049,3472,7049,2754,7049, + 5493,1047,7049,7049,7049,1049,3618,7049,7049,7049, + 7049,7049,2770,7049,5493,3521,35,814,32,1153, + 1307,27,30,31,875,885,26,28,747,25, + 23,50,1003,104,75,76,106,2270,3521,35, + 814,32,7049,1307,27,30,31,875,885,26, + 28,747,25,23,50,1003,104,75,76,106, + 2295,3521,35,814,32,7049,1307,27,30,31, + 875,885,26,28,747,25,23,50,1003,104, + 75,76,106,2321,3521,1711,814,1722,7049,1307, + 27,30,31,875,885,26,28,747,25,23, + 50,1003,104,75,76,83,3521,35,814,32, + 7049,1307,27,30,31,875,885,26,28,747, + 25,23,50,1003,104,75,76,82,3521,35, + 814,32,7049,1307,27,30,31,875,885,26, + 28,747,25,23,50,1003,104,75,76,81, + 3521,35,814,32,7049,1307,27,30,31,875, + 885,26,28,747,25,23,50,1003,104,75, + 76,80,3521,35,814,32,7049,1307,27,30, + 31,875,885,26,28,747,25,23,50,1003, + 104,75,76,79,3521,35,814,32,7049,1307, + 27,30,31,875,885,26,28,747,25,23, + 50,1003,104,75,76,78,3521,35,814,32, + 7049,1307,27,30,31,875,885,26,28,747, + 25,23,50,1003,104,75,76,77,3338,35, + 814,32,7049,1307,27,30,31,875,885,26, + 28,747,25,23,50,1003,104,75,76,102, + 3521,35,814,32,7049,1307,27,30,31,875, + 885,26,28,747,25,23,50,1003,104,75, + 76,108,3521,35,814,32,7049,1307,27,30, + 31,875,885,26,28,747,25,23,50,1003, + 104,75,76,107,3521,35,814,32,7049,1307, + 27,30,31,875,885,26,28,747,25,23, + 50,1003,104,75,76,105,3521,35,814,32, + 7049,1307,27,30,31,875,885,26,28,747, + 25,23,50,1003,104,75,76,103,2305,7049, + 7049,7049,2755,7049,7049,7049,7049,7049,7049,7049, + 7049,7049,1933,7049,7049,7049,2755,7049,7049,7049, + 7049,7049,7049,7049,7049,7049,7049,225,1431,35, + 814,32,656,4479,27,30,31,875,885,335, + 28,225,7049,7049,7049,7049,7049,7049,7049,203, + 213,5448,7049,202,210,211,212,214,7049,7049, + 7049,7049,582,203,213,5448,7049,202,210,211, + 212,214,7049,2026,7049,7049,582,2755,7049,7049, + 7049,204,206,208,291,292,3427,2398,312,3276, + 317,2755,516,205,207,204,206,208,291,292, + 3427,7049,225,7049,7049,7049,515,205,207,7049, + 7049,7049,7049,7049,7049,7049,225,7049,7049,7049, + 7049,7049,7049,7049,203,213,5448,7049,202,210, + 211,212,214,7049,7049,7049,7049,582,203,213, + 5448,7049,202,210,211,212,214,7049,2491,7049, + 7049,582,2755,7049,7049,7049,204,206,208,291, + 292,3427,7049,7049,7049,7049,7049,216,205,207, + 204,206,208,291,292,3427,7049,225,7049,7049, + 7049,301,205,207,7049,7049,7049,7049,7049,7049, + 7049,7049,7049,7049,7049,7049,7049,2903,7049,203, + 213,5448,7049,202,210,211,212,214,3581,35, + 814,32,582,1307,27,30,31,875,885,26, + 28,747,25,23,50,1003,576,75,76,7049, + 7049,204,206,208,291,292,3427,7049,7049,7049, + 7049,7049,495,205,207,3641,35,814,32,7049, + 1307,27,30,31,875,885,26,28,747,25, + 23,50,1003,3048,75,76,1478,35,814,32, + 5898,4479,27,30,31,875,885,335,28,2633, + 35,814,32,5898,4479,27,30,31,875,885, + 335,28,7049,2097,7049,1614,7049,2755,1712,2755, + 2096,1727,7049,7049,7049,2755,2096,7049,7049,2928, + 35,1701,384,7049,7049,7049,534,531,532,533, + 7049,7049,3658,7049,225,7049,315,2530,317,7049, + 225,310,2525,7049,720,7049,7049,3769,7049,315, + 2530,317,7049,7049,310,2525,2445,403,962,7049, + 3578,49,2445,403,962,7049,2969,1674,47,7049, + 7049,7049,328,7049,7049,7049,7049,7049,7049,2097, + 7049,7049,7049,2755,1712,7049,2961,7049,404,405, + 406,291,292,3427,404,405,406,291,292,3427, + 3248,356,534,531,532,533,2674,7049,3658,7049, + 7049,1712,7049,3361,3315,3191,3239,7049,7049,3361, + 720,7049,7049,7049,7049,7049,7049,7049,7049,534, + 531,532,533,2674,7049,7049,7049,7049,1712,7049, + 7049,2674,2969,7049,7049,7049,1712,720,328,7049, + 7049,7049,7049,7049,7049,7049,534,531,532,533, + 7049,7049,7049,7049,534,531,532,533,7049,2969, + 7049,7049,7049,7049,720,328,2974,356,7049,407, + 409,7049,720,7049,7049,407,410,7049,2674,7049, + 3315,3191,3239,1712,7049,3980,2969,2972,7049,7049, + 1712,601,5905,3248,2969,7049,1028,7049,7049,5721, + 328,534,531,532,533,7049,7049,7049,534,531, + 532,533,7049,2757,7049,7049,3550,601,7049,720, + 2161,7049,7049,154,7049,1712,720,7049,2974,7049, + 654,178,7049,7049,7049,3147,258,7049,7049,601, + 601,2969,339,534,531,532,533,328,2969,154, + 2296,35,1701,384,5905,7049,1306,7049,3472,193, + 7049,720,7049,1047,339,339,7049,1049,7049,7049, + 7049,154,154,7049,7049,3686,92,7049,186,186, + 7049,3163,7049,2969,7049,5699,5699,7049,7049,329, + 7049,7049,49,2973,35,1701,384,7049,1674,47, + 7049,1897,35,1701,384,1897,35,1701,384,1897, + 35,1701,384,1897,35,1701,384,2713,7049,7049, + 7049,1897,35,1701,384,7049,7049,3609,7049,7049, + 7049,2755,7049,7049,7049,49,7049,7049,94,7049, + 7049,1674,47,49,188,3704,7049,49,258,1674, + 47,49,601,1674,47,49,3658,1674,47,7049, + 3241,1674,47,49,7049,7049,7049,258,934,1674, + 47,601,2192,7049,7049,7049,2280,339,7049,7049, + 2476,7049,5955,194,154,7049,7049,7049,2536,7049, + 7049,186,7049,7049,7049,7049,339,7049,5699,7049, + 7049,7049,7049,154,7049,7049,7049,7049,7049,7049, + 186,7049,7049,7049,7049,7049,7049,5699,7049,7049, + 7049,7049,7049,7049,7049,501,7049,7049,7049,2657, + 7049,7049,7049,7049,7049,7049,7049,7049,7049,7049, + 7049,7049,7049,7049,7049,7049,7049,7049,7049,7049, + 7049,7049,7049,7049,7049,7049,7049,3707,7049,7049, + 7049,7049,7049,7049,7049,7049,7049,7049,7049,498, + 500,7049,7049,7049,7049,7049,3725,7049,7049,7049, + 7049,7049,7049,7049,7049,7049,7049,7049,7049,7049, + 7049,7049,7049,7049,7049,7049,7049,7049,7049,7049, + 7049,7049,7049,7049,7049,7049,7049,7049,3763,7049, + 0,39,7064,0,39,7063,0,686,29,0, + 436,754,0,450,956,0,38,733,0,38, + 7064,0,38,7063,0,7112,74,0,7111,74, + 0,887,74,0,3397,74,0,1563,74,0, + 1855,74,0,3915,124,0,1,440,0,454, + 1011,0,453,1223,0,7057,1,0,1406,89, + 0,686,383,0,35,33,0,32,34,0, + 39,733,0,1,632,0,1,7646,0,1, + 7645,0,1,7318,0,1,7317,0,1,7316, + 0,1,7315,0,1,7314,0,1,7313,0, + 1,7312,0,1,7311,0,1,7310,0,1, + 7309,0,1,7308,0,39,1,7064,0,39, + 1,7063,0,1295,1,0,1,3137,0,7280, + 221,0,7279,221,0,1914,221,0,1962,221, + 0,2032,221,0,7383,221,0,7382,221,0, + 7307,221,0,7306,221,0,7305,221,0,7304, + 221,0,7303,221,0,7302,221,0,7301,221, + 0,7300,221,0,7280,222,0,7279,222,0, + 1914,222,0,1962,222,0,2032,222,0,7383, + 222,0,7382,222,0,7307,222,0,7306,222, + 0,7305,222,0,7304,222,0,7303,222,0, + 7302,222,0,7301,222,0,7300,222,0,2032, + 390,0,1962,390,0,1914,390,0,280,390, + 0,7280,223,0,7279,223,0,1914,223,0, + 1962,223,0,2032,223,0,7383,223,0,7382, + 223,0,7307,223,0,7306,223,0,7305,223, + 0,7304,223,0,7303,223,0,7302,223,0, + 7301,223,0,7300,223,0,280,283,0,7280, + 224,0,7279,224,0,1914,224,0,1962,224, + 0,2032,224,0,7383,224,0,7382,224,0, + 7307,224,0,7306,224,0,7305,224,0,7304, + 224,0,7303,224,0,7302,224,0,7301,224, + 0,7300,224,0,7064,48,0,7063,48,0, + 7280,581,0,7279,581,0,1914,581,0,1962, + 581,0,2032,581,0,7383,581,0,7382,581, + 0,7307,581,0,7306,581,0,7305,581,0, + 7304,581,0,7303,581,0,7302,581,0,7301, + 581,0,7300,581,0,7280,598,0,7279,598, + 0,1914,598,0,1962,598,0,2032,598,0, + 7383,598,0,7382,598,0,7307,598,0,7306, + 598,0,7305,598,0,7304,598,0,7303,598, + 0,7302,598,0,7301,598,0,7300,598,0, + 7280,238,0,7279,238,0,1914,238,0,1962, + 238,0,2032,238,0,7383,238,0,7382,238, + 0,7307,238,0,7306,238,0,7305,238,0, + 7304,238,0,7303,238,0,7302,238,0,7301, + 238,0,7300,238,0,39,7064,238,0,39, + 7063,238,0,7087,238,0,7646,238,0,7645, + 238,0,7318,238,0,7317,238,0,7316,238, + 0,7315,238,0,7314,238,0,7313,238,0, + 7312,238,0,7311,238,0,7310,238,0,7309, + 238,0,7308,238,0,7055,1,0,7054,1, + 0,32,384,0,29,383,0,1025,234,0, + 1,226,3057,0,7058,226,0,3068,226,0, + 1,226,1231,0,1,226,0,43,7085,0, + 43,37,0,3915,126,0,3915,125,0,2032, + 441,0,1962,441,0,1914,441,0,7087,441, + 0,327,441,0,39,441,0,2032,593,0, + 1962,593,0,1914,593,0,2032,591,0,1962, + 591,0,1914,591,0,595,591,0,595,590, + 0,1,2032,0,1,1962,0,1,1914,0, + 7087,1,0,39,1,0,47,37,0,569, + 576,0,3256,226,0,10,12,0,1,5686, + 0,1,649,0,1,733,0,1,90,0, + 2032,327,0,1962,327,0,1914,327,0,497, + 3413,0,7087,1,226,0,39,1,226,0, + 226,412,0,7064,37,0,7063,37,0,7064, + 2,37,0,7063,2,37,0,7064,36,0, + 7063,36,0,8,10,12,0,1,327,0, + 3065,98,0,7085,45,0,37,45,0,7059, + 401,0,7058,401,0,226,411,0,3717,314, + 0,1,593,0,3581,101,0,2494,97,0, + 2032,93,0,1962,93,0,1914,93,0,7087, + 93,0,327,93,0,39,93,0,35,72, + 0,7383,332,0,7382,332,0,2264,275,0, + 7061,379,0,7060,379,0,497,5432,0,226, + 218,0,183,4459,0,226,217,0,1,1981, + 0,1,2077,0,2032,588,0,1962,588,0, + 1914,588,0,2032,587,0,1962,587,0,1914, + 587,0,534,535,0,7061,1,0,2032,588, + 589,0,1962,588,589,0,1914,588,589,0, + 588,589,0,3764,379,0,8,12,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1407,7 +1407,7 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 26,27,28,29,30,31,32,33,34,35, 36,37,38,39,40,41,42,43,44,45, 46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,60,0,62,63,64,0, + 56,57,58,59,60,0,62,63,64,78, 66,67,68,69,0,71,72,0,74,5, 6,7,78,106,80,81,82,83,84,85, 86,87,88,89,90,91,0,1,2,3, @@ -1418,7 +1418,7 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 44,45,46,47,48,49,50,51,52,53, 54,55,56,57,58,59,60,0,62,63, 64,4,66,67,68,69,0,71,72,104, - 74,5,6,7,78,106,0,81,82,83, + 74,0,1,2,78,4,10,81,82,83, 84,85,86,87,88,89,90,91,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, @@ -1426,8 +1426,8 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 32,33,34,35,36,37,38,39,40,41, 42,43,44,45,46,47,48,49,50,51, 52,53,54,55,56,57,58,59,60,0, - 62,63,64,77,66,67,68,69,0,71, - 72,0,74,5,6,7,78,0,0,81, + 62,63,64,0,66,67,68,69,0,71, + 72,0,74,0,98,99,78,4,10,81, 82,83,84,85,86,87,88,89,90,91, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, @@ -1435,27 +1435,27 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 30,31,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, 50,51,52,53,54,55,56,57,58,59, - 60,0,62,63,64,77,66,67,68,69, - 0,71,72,104,74,5,6,7,78,0, - 0,81,82,83,84,85,86,87,88,89, + 60,0,62,63,64,4,66,67,68,69, + 0,71,72,104,74,0,98,99,78,106, + 10,81,82,83,84,85,86,87,88,89, 90,91,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, 28,29,30,31,32,33,34,35,36,37, 38,39,40,41,42,43,44,45,46,47, 48,49,50,51,52,53,54,55,56,57, - 58,59,60,0,62,63,64,77,66,67, - 68,69,0,71,72,12,74,5,6,7, - 78,0,0,81,82,83,84,85,86,87, + 58,59,60,0,62,63,64,4,66,67, + 68,69,0,71,72,3,74,0,98,99, + 78,96,97,81,82,83,84,85,86,87, 88,89,90,91,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35, 36,37,38,39,40,41,42,43,44,45, 46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,60,0,62,63,64,77, - 66,67,68,69,0,71,72,0,74,5, - 6,7,78,0,0,81,82,83,84,85, + 56,57,58,59,60,0,62,63,64,0, + 66,67,68,69,0,71,72,12,74,5, + 6,7,78,96,97,81,82,83,84,85, 86,87,88,89,90,91,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, @@ -1463,7 +1463,7 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 34,35,36,37,38,39,40,41,42,43, 44,45,46,47,48,49,50,51,52,53, 54,55,56,57,58,59,60,0,62,63, - 64,77,66,67,68,69,0,71,72,0, + 64,0,66,67,68,69,0,71,72,8, 74,5,6,7,78,0,0,81,82,83, 84,85,86,87,88,89,90,91,0,1, 2,3,4,5,6,7,8,9,10,11, @@ -1483,14 +1483,14 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 50,51,52,53,54,55,56,57,58,59, 60,0,62,63,64,77,66,67,68,69, 0,71,72,0,74,5,6,7,78,0, - 1,81,82,83,84,85,86,87,88,89, + 0,81,82,83,84,85,86,87,88,89, 90,91,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, 28,29,30,31,32,33,34,35,36,37, 38,39,40,41,42,43,44,45,46,47, 48,49,50,51,52,53,54,55,56,57, - 58,59,60,0,62,63,64,4,66,67, + 58,59,60,0,62,63,64,77,66,67, 68,69,0,71,72,0,74,5,6,7, 78,0,0,81,82,83,84,85,86,87, 88,89,90,91,0,1,2,3,4,5, @@ -1499,9 +1499,9 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 26,27,28,29,30,31,32,33,34,35, 36,37,38,39,40,41,42,43,44,45, 46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,60,0,62,63,64,78, + 56,57,58,59,60,0,62,63,64,77, 66,67,68,69,0,71,72,0,74,5, - 6,7,78,0,0,81,82,83,84,85, + 6,7,78,0,1,81,82,83,84,85, 86,87,88,89,90,91,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, @@ -1509,293 +1509,303 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 34,35,36,37,38,39,40,41,42,43, 44,45,46,47,48,49,50,51,52,53, 54,55,56,57,58,59,60,0,62,63, - 64,0,66,67,68,69,0,71,72,8, + 64,0,66,67,68,69,0,71,72,0, 74,5,6,7,78,0,0,81,82,83, 84,85,86,87,88,89,90,91,0,1, 2,3,4,5,6,7,8,9,10,11, 12,0,0,0,1,2,0,4,5,6, - 7,5,6,7,11,12,28,29,30,31, + 7,5,6,7,0,0,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, - 42,65,44,45,28,29,30,31,32,33, - 34,35,36,37,38,39,0,1,2,0, + 0,43,44,45,28,29,30,76,77,33, + 34,35,36,37,38,39,40,41,79,0, 0,1,2,65,4,5,6,7,70,102, 103,73,74,75,76,77,78,79,80,0, - 1,2,3,4,5,6,7,8,9,0, - 105,93,94,95,96,97,98,99,100,101, - 102,103,104,105,106,107,108,109,96,97, - 0,113,114,115,116,117,118,119,120,121, - 122,123,124,125,65,127,128,0,1,2, + 1,2,3,4,5,6,7,8,9,65, + 11,93,94,95,96,97,98,99,100,101, + 102,103,104,105,106,107,108,109,0,1, + 2,113,114,115,116,117,118,119,120,121, + 122,123,124,125,45,127,128,0,1,2, 3,4,5,6,7,8,9,10,11,12, - 0,0,0,1,2,0,4,5,6,7, - 5,6,7,43,75,28,29,30,31,32, - 33,34,35,36,37,38,39,40,41,42, - 29,44,45,28,29,30,31,32,33,34, - 35,36,37,38,39,0,1,2,3,4, - 0,1,65,8,9,0,0,70,3,3, + 0,1,2,3,4,0,0,107,8,9, + 5,6,7,128,114,28,29,30,31,32, + 33,34,35,36,37,38,39,40,41,61, + 43,44,45,28,29,30,0,0,33,34, + 35,36,37,38,39,40,41,0,1,2, + 3,4,65,0,0,8,9,70,0,0, 73,74,75,76,77,78,79,80,0,1, - 2,3,4,5,6,7,8,9,28,79, + 2,3,4,5,6,7,8,9,42,0, 93,94,95,96,97,98,99,100,101,102, 103,104,105,106,107,108,109,0,1,2, 113,114,115,116,117,118,119,120,121,122, - 123,124,125,0,127,128,0,1,2,3, - 4,5,6,7,8,9,70,11,12,13, + 123,124,125,76,127,128,0,1,2,3, + 4,5,6,7,8,9,10,0,12,13, 14,15,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,61,43, - 44,45,46,47,48,49,50,51,52,53, + 34,35,36,37,38,39,40,41,42,43, + 44,0,46,47,48,49,50,51,52,53, 54,55,56,57,58,59,60,0,62,63, 64,0,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,0,42,0,1,2,3, - 4,5,6,7,8,9,13,11,12,0, - 1,2,0,60,61,62,63,64,0,0, - 67,68,69,5,6,7,0,76,75,10, - 0,1,2,80,0,1,2,3,4,5, - 6,7,8,9,0,92,28,29,30,31, - 32,33,34,35,36,37,38,39,0,1, - 2,0,0,110,111,112,0,1,2,3, + 27,28,29,30,0,0,33,34,35,36, + 37,38,39,40,41,0,1,2,45,4, + 0,0,105,8,9,0,5,6,7,4, + 5,6,7,60,61,62,63,64,0,0, + 67,68,69,5,6,7,75,0,75,28, + 29,30,0,80,33,34,35,36,37,38, + 39,40,41,11,0,92,28,29,30,0, + 1,33,34,35,36,37,38,39,40,41, + 11,76,77,110,111,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,39,0,81,42,0, - 1,2,3,4,5,6,7,8,9,61, - 11,12,110,111,112,0,60,61,62,63, - 64,0,0,67,68,69,5,6,7,95, - 0,75,0,3,125,0,80,0,1,2, - 3,4,5,6,7,8,9,95,92,28, - 29,30,31,32,33,34,35,36,37,38, - 39,65,0,1,2,0,110,111,112,0, + 24,25,26,27,28,29,30,70,79,33, + 34,35,36,37,38,39,40,41,0,1, + 2,45,4,129,0,0,8,9,3,5, + 6,7,73,0,1,2,60,61,62,63, + 64,8,9,67,68,69,0,0,1,2, + 0,75,28,29,30,8,80,33,34,35, + 36,37,38,39,40,41,0,125,92,0, + 1,2,3,4,5,6,7,8,9,10, + 126,12,0,0,1,2,110,111,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,39,79, - 75,42,0,1,2,3,4,5,6,7, - 8,9,10,61,102,103,0,1,2,60, - 61,62,63,64,8,9,67,68,69,0, - 1,2,3,4,5,6,7,8,9,80, - 11,12,0,0,42,0,4,5,6,7, - 128,92,0,1,2,3,4,5,6,7, + 0,0,33,34,35,36,37,38,39,40, + 41,0,1,2,45,4,5,6,7,93, + 94,10,76,12,75,0,0,1,2,60, + 61,62,63,64,71,72,67,68,69,0, + 1,2,3,4,0,1,2,8,9,80, + 11,0,1,2,3,4,5,6,7,8, + 9,92,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,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,0,4,0,1,2, - 5,6,7,0,75,8,9,0,1,2, - 65,4,60,61,62,63,64,65,75,67, - 68,69,30,28,29,30,31,32,33,34, - 35,36,37,38,39,0,1,2,95,0, - 1,2,0,8,92,0,1,2,3,4, + 28,29,30,93,94,33,34,35,36,37, + 38,39,40,41,79,61,0,45,0,70, + 0,3,73,3,0,76,77,11,79,5, + 6,7,60,61,62,63,64,65,0,67, + 68,69,107,0,95,0,0,1,2,114, + 115,116,117,118,119,120,121,122,123,124, + 0,0,1,2,92,0,1,2,3,4, 5,6,7,8,9,10,11,12,13,14, 15,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,0,1, - 2,3,4,5,6,7,8,9,0,0, - 0,3,110,111,112,60,61,62,63,64, - 71,72,67,68,69,0,1,2,0,1, - 2,3,4,0,0,80,8,9,10,0, - 1,2,0,4,5,6,7,92,0,1, + 25,26,27,28,29,30,80,79,33,34, + 35,36,37,38,39,40,41,61,65,0, + 45,0,1,2,3,4,5,6,7,8, + 9,10,61,12,0,60,61,62,63,64, + 70,0,67,68,69,0,0,1,2,0, + 4,5,6,7,0,80,10,11,12,5, + 6,7,0,1,2,31,32,92,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,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,96,97,0,61,0,71,72,70,65, - 61,73,93,94,76,77,11,79,60,61, - 62,63,64,0,0,67,68,69,0,77, - 0,1,2,95,4,5,6,7,80,40, - 41,11,12,40,41,0,0,1,2,4, + 22,23,24,25,26,27,28,29,30,0, + 0,33,34,35,36,37,38,39,40,41, + 0,1,2,45,4,5,6,7,0,73, + 10,76,12,5,6,7,77,0,60,61, + 62,63,64,71,72,67,68,69,0,1, + 2,95,0,1,2,126,8,9,80,0, + 1,2,3,4,5,6,7,8,9,0, 92,0,1,2,3,4,5,6,7,8, 9,10,11,12,13,14,15,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,0,1,2,0,4,5, - 6,7,11,98,99,11,12,61,0,0, - 65,60,61,62,63,64,93,94,67,68, - 69,0,1,2,3,4,5,6,7,8, - 9,80,11,12,0,107,0,1,2,5, - 6,7,114,92,0,1,2,3,4,5, + 29,30,93,94,33,34,35,36,37,38, + 39,40,41,61,0,105,45,0,1,2, + 3,4,5,6,7,8,9,10,0,12, + 0,60,61,62,63,64,0,0,67,68, + 69,11,0,1,2,3,4,5,6,7, + 0,80,10,3,12,0,1,2,0,0, + 0,11,3,92,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 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,76,42,79,4,98, - 99,70,0,1,2,3,4,61,0,0, - 8,9,10,0,60,61,62,63,64,0, - 0,67,68,69,30,107,0,1,2,10, - 10,129,114,115,116,117,118,119,120,121, - 122,123,124,0,42,0,92,0,1,2, + 26,27,28,29,30,126,0,33,34,35, + 36,37,38,39,40,41,76,93,94,45, + 80,75,70,0,1,2,3,4,5,6, + 7,8,9,73,60,61,62,63,64,70, + 70,67,68,69,0,1,2,3,4,5, + 6,7,8,9,10,0,12,110,111,112, + 5,6,7,0,96,97,92,0,1,2, 3,4,5,6,7,8,9,10,11,12, 13,14,15,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,75,42, - 0,1,2,74,4,5,6,7,0,0, - 80,11,12,0,96,97,3,60,61,62, - 63,64,0,70,67,68,69,0,1,2, - 3,4,5,6,7,8,9,0,11,12, - 0,1,2,0,4,5,6,7,0,92, + 23,24,25,26,27,28,29,30,75,0, + 33,34,35,36,37,38,39,40,41,10, + 0,12,45,0,70,0,0,1,2,3, + 4,5,6,7,8,9,13,60,61,62, + 63,64,0,0,67,68,69,0,1,2, + 3,4,5,6,7,8,9,10,0,12, + 0,1,2,0,4,5,6,7,95,92, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,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,43,42,0,1,2,3,4,5,6, - 7,61,75,0,11,12,0,0,1,2, - 60,61,62,63,64,8,0,67,68,69, + 30,75,77,33,34,35,36,37,38,39, + 40,41,0,93,94,45,0,1,2,3, + 4,61,75,11,8,9,0,11,0,1, + 60,61,62,63,64,93,94,67,68,69, 0,1,2,3,4,5,6,7,8,9, - 93,94,0,1,2,3,4,0,95,0, - 8,9,92,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 0,1,0,70,0,28,29,3,61,79, - 10,0,40,41,10,43,44,45,46,47, - 48,49,50,51,52,53,54,55,56,57, - 58,59,0,1,2,75,93,94,66,0, - 68,0,10,71,72,0,1,2,3,4, - 0,40,41,8,9,0,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,73,70,96,97,73,28,29, - 76,77,0,1,2,40,41,0,43,44, - 45,46,47,48,49,50,51,52,53,54, - 55,56,57,58,59,0,74,0,0,70, - 3,66,4,5,6,7,71,72,0,11, - 12,66,77,0,1,2,3,4,0,11, - 12,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,0,1,2,3,4,0,1,2,8, - 9,0,0,40,41,3,43,44,45,46, - 47,48,49,50,51,52,53,54,55,56, - 57,58,59,0,1,2,3,4,0,66, - 0,8,9,65,0,0,0,74,0,1, - 2,3,4,80,10,77,8,9,0,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,65,0,100,101, - 0,0,70,3,3,0,108,109,40,41, - 10,43,44,45,46,47,48,49,50,51, - 52,53,54,55,56,57,58,59,0,1, - 2,65,4,75,66,70,8,9,74,71, - 72,0,1,2,3,4,0,1,2,8, - 9,0,11,12,13,14,15,16,17,18, + 0,0,1,2,3,4,28,45,95,8, + 9,10,92,12,13,14,15,16,17,18, 19,20,21,22,23,24,25,26,27,0, - 70,93,94,73,5,6,7,0,0,10, - 3,40,41,0,43,44,45,46,47,48, + 1,2,31,32,0,0,70,0,76,73, + 5,6,7,42,43,44,11,46,47,48, 49,50,51,52,53,54,55,56,57,58, - 59,0,1,2,0,4,0,66,0,8, - 9,42,71,72,0,1,2,3,4,0, - 0,13,8,9,0,11,12,13,14,15, + 59,0,0,1,2,3,4,66,0,68, + 8,9,71,72,0,1,2,3,4,11, + 45,81,8,9,10,0,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, - 26,27,0,65,0,76,0,0,1,2, - 0,0,10,75,40,41,10,43,44,45, + 26,27,65,0,0,31,32,4,5,6, + 7,76,75,10,0,12,42,43,44,0, 46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,0,67,93,94,0,75, - 66,3,0,0,42,71,72,0,1,2, - 3,4,0,0,75,8,9,10,11,12, + 56,57,58,59,0,31,32,0,1,2, + 66,4,5,6,7,71,72,10,80,12, + 0,77,0,1,2,3,4,96,97,0, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 0,1,2,31,32,0,0,102,103,0, + 76,11,0,4,42,43,44,11,46,47, + 48,49,50,51,52,53,54,55,56,57, + 58,59,93,94,0,65,0,0,66,30, + 4,0,1,2,3,4,74,77,11,8, + 9,10,80,12,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,0, + 100,101,31,32,74,0,0,0,108,109, + 74,76,0,42,43,44,11,46,47,48, + 49,50,51,52,53,54,55,56,57,58, + 59,65,0,1,2,29,0,66,31,32, + 73,77,71,72,0,1,2,3,4,110, + 111,112,8,9,10,0,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,0,1,0,31,32,65,73,0, + 1,76,0,11,0,11,42,43,44,10, + 46,47,48,49,50,51,52,53,54,55, + 56,57,58,59,0,1,2,0,1,2, + 66,0,0,0,3,71,72,0,1,2, + 3,4,11,11,11,8,9,10,0,12, 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,0,1,2,3,4, - 76,77,76,8,9,10,80,40,41,105, - 43,44,45,46,47,48,49,50,51,52, - 53,54,55,56,57,58,59,65,65,0, - 0,1,3,66,0,1,2,3,4,77, - 10,74,8,9,0,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,100,101,0,70,93,94,73,0, - 108,109,3,0,40,41,3,43,44,45, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,0,0,0,3,3,3, - 66,0,0,73,10,71,72,0,1,2, - 3,4,0,1,2,8,9,10,11,12, + 23,24,25,26,27,73,0,73,31,32, + 76,0,0,1,2,0,0,11,45,42, + 43,44,11,46,47,48,49,50,51,52, + 53,54,55,56,57,58,59,0,0,0, + 3,70,3,66,73,73,0,75,71,72, + 0,1,2,3,4,0,45,0,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,0,73, + 65,31,32,0,0,1,2,0,4,5, + 6,7,42,43,44,0,46,47,48,49, + 50,51,52,53,54,55,56,57,58,59, + 0,65,0,3,0,0,66,0,1,2, + 3,4,65,77,74,8,9,10,13,12, 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,0,1,2,3,4, - 76,77,0,8,9,0,0,40,41,3, - 43,44,45,46,47,48,49,50,51,52, - 53,54,55,56,57,58,59,73,0,1, - 0,70,70,66,0,1,2,3,4,11, - 10,74,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,0,1,2,70,61,5,6,7, - 0,1,2,11,40,41,0,43,44,45, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,0,1,2,3,4,0, - 0,0,8,9,74,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,0,61,0,1,2,0,4,0, - 0,61,8,9,40,41,60,43,44,45, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,0,1,2,3,4,125, - 66,61,8,9,65,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,0,1,2,61,4,0,1,2, - 8,9,65,0,40,41,3,43,44,45, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,0,1,2,3,4,0, - 0,0,8,9,70,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,0,61,0,0,0,3,61,4, - 4,0,0,11,40,41,4,43,44,45, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,0,1,2,3,4,0, - 0,0,8,9,3,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,0,0,0,0,0,3,3,3, - 65,65,10,10,40,41,65,43,44,45, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,0,1,2,3,4,0, - 98,99,8,9,42,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,0,0,0,0,0,3,3,3, - 0,0,10,10,40,41,73,43,44,45, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,0,1,2,3,4,0, - 0,0,8,9,42,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,0,0,0,0,3,0,4,0, - 0,0,10,3,40,41,73,43,44,45, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,0,0,0,3,95,0, - 0,0,8,0,42,11,12,11,0,10, - 0,10,43,0,1,2,3,4,5,6, - 7,8,9,10,11,12,0,0,0,0, - 65,0,65,0,40,41,10,126,44,45, - 46,28,29,30,31,32,33,34,35,36, - 37,38,39,0,0,42,3,0,0,65, - 3,0,0,0,70,71,72,0,42,0, - 76,77,73,79,73,76,75,0,65,76, - 13,0,13,70,76,75,73,93,94,0, - 96,10,98,99,100,101,102,103,104,105, - 106,107,76,75,75,43,79,113,75,115, - 116,117,118,119,120,121,122,123,124,0, - 1,2,0,4,5,6,7,60,61,60, - 61,70,13,14,15,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,80,0,0,0,3,3,3,79,10, - 0,0,1,2,0,4,5,6,7,60, - 126,62,63,64,13,14,15,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,43,0,0, - 0,0,0,0,0,0,0,5,6,7, - 70,60,73,62,63,64,14,15,16,17, - 18,19,20,21,22,23,24,25,26,79, - 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,0,65,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 28,29,30,31,32,33,34,35,36,37, - 38,39,0,0,42,28,29,30,31,32, - 33,34,35,36,37,38,39,0,0,42, - 0,0,0,1,2,3,4,5,6,7, - 8,9,70,11,12,73,0,0,0,3, - 0,126,0,0,0,0,0,70,10,0, - 73,0,1,2,10,4,5,6,7,10, - 0,10,11,12,0,0,0,65,0,0, - 10,0,0,0,10,10,0,0,75,77, - 44,45,0,0,0,0,0,0,0,0, - 0,0,0,76,76,0,0,75,0,79, - 79,0,100,101,0,0,70,0,65,0, - 108,109,0,76,0,0,76,73,80,0, - 76,79,73,0,73,76,0,0,0,0, - 0,0,0,73,0,0,0,73,73,0, - 0,0,0,0,0,79,95,79,0,113, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,127,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, + 23,24,25,26,27,61,100,101,31,32, + 0,0,65,0,108,109,61,4,75,42, + 43,44,11,46,47,48,49,50,51,52, + 53,54,55,56,57,58,59,65,95,65, + 70,0,67,66,0,0,0,0,71,72, + 0,1,2,3,4,11,0,11,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,65,0, + 70,31,32,0,73,0,0,76,0,45, + 11,45,42,43,44,0,46,47,48,49, + 50,51,52,53,54,55,56,57,58,59, + 65,28,29,28,29,0,66,0,1,2, + 3,4,75,0,74,8,9,10,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,0,1,2,31,32, + 5,6,7,74,66,10,0,1,2,42, + 43,44,76,46,47,48,49,50,51,52, + 53,54,55,56,57,58,59,0,1,2, + 3,4,0,0,61,8,9,10,0,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,0,61,0,31,32, + 0,1,2,0,1,2,11,61,8,42, + 43,44,0,46,47,48,49,50,51,52, + 53,54,55,56,57,58,59,0,1,2, + 3,4,125,66,0,8,9,10,65,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,0,0,79,31,32, + 0,61,0,0,61,5,6,7,73,42, + 43,44,75,46,47,48,49,50,51,52, + 53,54,55,56,57,58,59,75,0,0, + 0,1,2,3,4,61,0,70,8,9, + 10,0,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,0,1, + 2,31,32,0,0,65,0,4,0,0, + 4,3,42,43,44,79,46,47,48,49, + 50,51,52,53,54,55,56,57,58,59, + 0,1,2,3,4,0,30,95,8,9, + 10,65,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,0,61, + 0,31,32,3,0,0,0,3,65,3, + 0,13,42,43,44,10,46,47,48,49, + 50,51,52,53,54,55,56,57,58,59, + 0,1,2,3,4,60,0,0,8,9, + 10,0,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,60,61, + 0,31,32,3,0,0,0,3,3,3, + 0,0,42,43,44,65,46,47,48,49, + 50,51,52,53,54,55,56,57,58,59, + 0,1,2,3,4,0,0,0,8,9, + 10,65,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,0,0, + 0,31,32,3,0,0,0,3,3,3, + 0,13,42,43,44,65,46,47,48,49, + 50,51,52,53,54,55,56,57,58,59, + 0,1,2,3,4,0,0,0,8,9, + 10,42,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,60,61, + 0,31,32,3,0,0,0,3,3,3, + 0,0,42,43,44,0,46,47,48,49, + 50,51,52,53,54,55,56,57,58,59, + 0,1,2,3,4,0,0,0,8,9, + 10,0,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,0,0, + 0,31,32,0,0,0,3,0,0,11, + 11,0,42,43,44,11,46,47,48,49, + 50,51,52,53,54,55,56,57,58,59, + 0,0,0,3,0,3,0,0,8,3, + 10,0,12,0,1,2,3,4,5,6, + 7,8,9,10,77,12,0,1,2,0, + 4,31,32,0,8,9,3,0,0,0, + 3,73,73,43,44,75,46,0,1,2, + 3,4,75,75,80,8,9,0,11,0, + 79,0,0,95,0,65,0,0,0,3, + 70,71,72,11,70,11,76,77,0,79, + 79,70,75,0,0,0,3,61,75,0, + 0,0,45,93,94,0,96,0,98,99, + 100,101,102,103,104,105,106,107,70,42, + 42,0,0,113,75,115,116,117,118,119, + 120,121,122,123,124,0,1,2,0,4, + 5,6,7,76,0,76,74,73,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,0,79,33,34, + 35,36,37,38,39,40,41,0,79,79, + 3,0,0,0,79,0,42,0,1,2, + 0,4,5,6,7,60,0,62,63,64, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,28,29,30,0,0, + 33,34,35,36,37,38,39,40,41,0, + 1,2,0,4,5,6,7,0,0,10, + 0,12,0,5,6,7,0,60,0,62, + 63,64,14,15,16,17,18,19,20,21, + 22,23,24,25,26,0,28,29,30,0, + 0,33,34,35,36,37,38,39,40,41, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,0,0,1,2,3,4,5, + 6,7,8,9,10,11,12,0,28,29, + 30,0,0,33,34,35,36,37,38,39, + 40,41,28,29,30,45,0,33,34,35, + 36,37,38,39,40,41,0,0,0,45, + 0,1,2,3,4,65,0,0,8,9, + 70,0,0,73,3,3,0,0,1,2, + 0,4,0,11,70,8,9,73,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,0,0,0,0,0,0,0,0,0, + 0,0,0,0,43,44,28,29,30,0, + 0,33,34,35,36,37,38,39,40,41, + 70,65,0,45,0,0,0,0,61,0, + 0,70,70,77,0,73,0,0,76,77, + 0,0,0,0,0,0,0,0,70,0, + 0,73,0,0,0,0,100,101,0,0, + 0,0,0,0,108,109,0,0,0,0, + 0,0,0,0,113,0,0,0,0,0, + 0,0,0,0,0,0,0,0,127,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0 }; @@ -1805,418 +1815,429 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 7048,6759,6773,6773,6773,6769,6773,6773,6773,6773, - 6851,6773,6773,1,1,1,1,1,1,1, + 7049,6760,6774,6774,6774,6770,6774,6774,6774,6774, + 6774,6852,6774,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,6763,1,1,1,1,1,1,1, + 1,1,1,1,1,6764,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,39,1,1,1,7086,1,1805,7221,1695, - 7048,1,1,3463,7059,7048,6233,6230,1157,7086, - 7055,3014,1839,2235,1507,2918,3926,2997,1567,2990, - 3567,2989,10,6854,6854,6854,6854,6854,6854,6854, - 6854,6854,6854,6854,6854,6854,6854,6854,6854,6854, - 6854,6854,6854,6854,6854,6854,6854,6854,6854,6854, - 6854,6854,6854,6854,6854,6854,6854,6854,6854,6854, - 6854,6854,6854,6854,6854,6854,6854,6854,6854,6854, - 6854,6854,6854,6854,6854,6854,6854,6854,6854,6854, - 6854,6854,6854,129,6854,6854,6854,135,6854,6854, - 6854,6854,592,6854,6854,3125,6854,6806,6812,6809, - 6854,1,6854,6854,6854,6854,6854,6854,6854,6854, - 6854,6854,6854,6854,8,6912,6912,6912,6912,6912, - 6912,6912,6912,6912,6912,6912,6912,6912,6912,6912, - 6912,6912,6912,6912,6912,6912,6912,6912,6912,6912, - 6912,6912,6912,6912,6912,6912,6912,6912,6912,6912, - 6912,6912,6912,6912,6912,6912,6912,6912,6912,6912, - 6912,6912,6912,6912,6912,6912,6912,6912,6912,6912, - 6912,6912,6912,6912,6912,131,6912,6912,6912,136, - 6912,6912,6912,6912,327,6912,6912,380,6912,2129, - 2073,2121,6912,2794,6912,6912,6912,6912,6912,6912, - 6912,6912,6912,6912,6912,6912,7048,6759,6773,6773, - 6773,6769,6773,6773,6773,6773,6766,6773,6773,1, + 1,39,1,1,1,7087,1,1495,7222,1699, + 7049,1,1,1759,7060,7049,6234,6231,2744,7087, + 7056,3116,1197,2239,977,3049,3971,3103,900,3100, + 651,3081,10,6855,6855,6855,6855,6855,6855,6855, + 6855,6855,6855,6855,6855,6855,6855,6855,6855,6855, + 6855,6855,6855,6855,6855,6855,6855,6855,6855,6855, + 6855,6855,6855,6855,6855,6855,6855,6855,6855,6855, + 6855,6855,6855,6855,6855,6855,6855,6855,6855,6855, + 6855,6855,6855,6855,6855,6855,6855,6855,6855,6855, + 6855,6855,6855,129,6855,6855,6855,135,6855,6855, + 6855,6855,593,6855,6855,3165,6855,6807,6813,6810, + 6855,1,6855,6855,6855,6855,6855,6855,6855,6855, + 6855,6855,6855,6855,8,6913,6913,6913,6913,6913, + 6913,6913,6913,6913,6913,6913,6913,6913,6913,6913, + 6913,6913,6913,6913,6913,6913,6913,6913,6913,6913, + 6913,6913,6913,6913,6913,6913,6913,6913,6913,6913, + 6913,6913,6913,6913,6913,6913,6913,6913,6913,6913, + 6913,6913,6913,6913,6913,6913,6913,6913,6913,6913, + 6913,6913,6913,6913,6913,131,6913,6913,6913,3622, + 6913,6913,6913,6913,327,6913,6913,1,6913,2032, + 1914,1962,6913,2799,6913,6913,6913,6913,6913,6913, + 6913,6913,6913,6913,6913,6913,7049,6760,6774,6774, + 6774,6770,6774,6774,6774,6774,6774,6767,6774,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,6763,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,7048,1,1, - 1,805,1,1805,7221,1695,327,1,1,3083, - 7059,6869,6875,6872,1157,2794,7048,3014,1839,2235, - 1507,2918,3926,2997,1567,2990,3567,2989,7048,6759, - 6773,6773,6773,6769,6773,6773,6773,6773,6766,6773, - 6773,1,1,1,1,1,1,1,1,1, + 1,6764,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,7049,1,1, + 1,1311,1,1495,7222,1699,113,1,1,3077, + 7060,7049,6234,6231,2744,7087,5131,3116,1197,2239, + 977,3049,3971,3103,900,3100,651,3081,7049,6760, + 6774,6774,6774,6770,6774,6774,6774,6774,6774,6767, + 6774,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 6763,1,1,1,1,1,1,1,1,1, + 1,1,1,6764,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,132, - 1,1,1,2697,1,1805,7221,1695,391,1, - 1,7048,7059,2129,2073,2121,1157,7048,7048,3014, - 1839,2235,1507,2918,3926,2997,1567,2990,3567,2989, - 7048,6759,6773,6773,6773,6769,6773,6773,6773,6773, - 6766,6773,6773,1,1,1,1,1,1,1, + 1,1,1,136,1,1495,7222,1699,115,1, + 1,380,7060,7049,5108,5085,2744,1397,5131,3116, + 1197,2239,977,3049,3971,3103,900,3100,651,3081, + 7049,6760,6774,6774,6774,6770,6774,6774,6774,6774, + 6774,6767,6774,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,6763,1,1,1,1,1,1,1, + 1,1,1,1,1,6764,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,7048,1,1,1,2714,1,1805,7221,1695, - 591,1,1,3083,7059,2129,2073,2121,1157,7048, - 7048,3014,1839,2235,1507,2918,3926,2997,1567,2990, - 3567,2989,7048,6759,6773,6773,6773,6769,6773,6773, - 6773,6773,6766,6773,6773,1,1,1,1,1, + 1,7049,1,1,1,740,1,1495,7222,1699, + 114,1,1,3077,7060,109,5108,5085,2744,2799, + 5131,3116,1197,2239,977,3049,3971,3103,900,3100, + 651,3081,7049,6760,6774,6774,6774,6770,6774,6774, + 6774,6774,6774,6767,6774,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,6763,1,1,1,1,1, + 1,1,1,1,1,1,1,6764,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,130,1,1,1,2759,1,1805, - 7221,1695,309,1,1,3125,7059,2129,2073,2121, - 1157,7048,7048,3014,1839,2235,1507,2918,3926,2997, - 1567,2990,3567,2989,7048,6759,6773,6773,6773,6769, - 6773,6773,6773,6773,6766,6773,6773,1,1,1, + 1,1,1,7049,1,1,1,1933,1,1495, + 7222,1699,7049,1,1,1025,7060,112,5108,5085, + 2744,5330,5352,3116,1197,2239,977,3049,3971,3103, + 900,3100,651,3081,7049,6760,6774,6774,6774,6770, + 6774,6774,6774,6774,6774,6767,6774,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,6763,1,1,1, + 1,1,1,1,1,1,1,1,1,6764, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,7048,1,1,1,2773, - 1,1805,7221,1695,584,1,1,7048,7059,2129, - 2073,2121,1157,7048,7048,3014,1839,2235,1507,2918, - 3926,2997,1567,2990,3567,2989,7048,6759,6773,6773, - 6773,6769,6773,6773,6773,6773,6766,6773,6773,1, + 1,1,1,1,1,130,1,1,1,7049, + 1,1495,7222,1699,327,1,1,3165,7060,6870, + 6876,6873,2744,5330,5352,3116,1197,2239,977,3049, + 3971,3103,900,3100,651,3081,7049,6760,6774,6774, + 6774,6770,6774,6774,6774,6774,6774,6767,6774,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,6763,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,7048,1,1, - 1,7556,1,1805,7221,1695,583,1,1,7048, - 7059,2129,2073,2121,1157,7048,7048,3014,1839,2235, - 1507,2918,3926,2997,1567,2990,3567,2989,7048,6759, - 6773,6773,6773,6769,6773,6773,6773,6773,6766,6773, - 6773,1,1,1,1,1,1,1,1,1, + 1,6764,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,7049,1,1, + 1,7049,1,1495,7222,1699,391,1,1,1693, + 7060,2032,1914,1962,2744,7049,7049,3116,1197,2239, + 977,3049,3971,3103,900,3100,651,3081,7049,6760, + 6774,6774,6774,6770,6774,6774,6774,6774,6774,6767, + 6774,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 6763,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,7048, - 1,1,1,7485,1,1805,7221,1695,413,1, - 1,7048,7059,2129,2073,2121,1157,7048,7048,3014, - 1839,2235,1507,2918,3926,2997,1567,2990,3567,2989, - 7048,6759,6773,6773,6773,6769,6773,6773,6773,6773, - 6766,6773,6773,1,1,1,1,1,1,1, + 1,1,1,6764,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,7049, + 1,1,1,2823,1,1495,7222,1699,592,1, + 1,7049,7060,2032,1914,1962,2744,7049,7049,3116, + 1197,2239,977,3049,3971,3103,900,3100,651,3081, + 7049,6760,6774,6774,6774,6770,6774,6774,6774,6774, + 6774,6767,6774,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,6763,1,1,1,1,1,1,1, + 1,1,1,1,1,6764,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,7048,1,1,1,7499,1,1805,7221,1695, - 585,1,1,7048,7059,2129,2073,2121,1157,7048, - 3532,3014,1839,2235,1507,2918,3926,2997,1567,2990, - 3567,2989,7048,6759,6773,6773,6773,6769,6773,6773, - 6773,6773,6766,6773,6773,1,1,1,1,1, + 1,7049,1,1,1,2838,1,1495,7222,1699, + 309,1,1,7049,7060,2032,1914,1962,2744,7049, + 7049,3116,1197,2239,977,3049,3971,3103,900,3100, + 651,3081,7049,6760,6774,6774,6774,6770,6774,6774, + 6774,6774,6774,6767,6774,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,6763,1,1,1,1,1, + 1,1,1,1,1,1,1,6764,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,7048,1,1,1,877,1,1805, - 7221,1695,587,1,1,7048,7059,7003,7009,7006, - 1157,1,7048,3014,1839,2235,1507,2918,3926,2997, - 1567,2990,3567,2989,7048,6759,6773,6773,6773,6769, - 6773,6773,6773,6773,6766,6773,6773,1,1,1, + 1,1,1,7049,1,1,1,2898,1,1495, + 7222,1699,585,1,1,7049,7060,2032,1914,1962, + 2744,7049,7049,3116,1197,2239,977,3049,3971,3103, + 900,3100,651,3081,7049,6760,6774,6774,6774,6770, + 6774,6774,6774,6774,6774,6767,6774,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,6763,1,1,1, + 1,1,1,1,1,1,1,1,1,6764, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,7048,1,1,1,2988, - 1,1805,7221,1695,586,1,1,7048,7059,7012, - 7018,7015,1157,7048,7048,3014,1839,2235,1507,2918, - 3926,2997,1567,2990,3567,2989,7048,6759,6773,6773, - 6773,6769,6773,6773,6773,6773,6766,6773,6773,1, + 1,1,1,1,1,7049,1,1,1,2904, + 1,1495,7222,1699,584,1,1,7049,7060,2032, + 1914,1962,2744,7049,4161,3116,1197,2239,977,3049, + 3971,3103,900,3100,651,3081,7049,6760,6774,6774, + 6774,6770,6774,6774,6774,6774,6774,6767,6774,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,6763,1, 1,1,1,1,1,1,1,1,1,1, + 1,6764,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,127,1,1, - 1,7048,1,1805,7221,1695,391,1,1,1144, - 7059,2129,2073,2121,1157,133,7048,3014,1839,2235, - 1507,2918,3926,2997,1567,2990,3567,2989,7048,6293, - 6293,6293,6293,6293,6293,6293,6293,6293,6293,6293, - 6293,7048,109,440,6275,6275,221,6275,6275,6275, - 6275,6370,6364,6367,6275,6275,6293,6293,6293,6293, - 6293,6293,6293,6293,6293,6293,6293,6293,6293,6293, - 6293,1433,6293,6293,6376,6373,6382,6400,6379,6391, - 6361,6385,6388,6397,6394,6358,7048,7062,7063,7048, - 283,6505,6505,6293,280,2129,2073,2121,6293,3476, - 3423,6293,6293,6293,6293,6293,6293,6293,6293,1, - 6348,6344,5675,6352,6830,6836,6833,670,2904,7048, - 2934,6293,6293,6293,6293,6293,6293,6293,6293,6293, - 6293,6293,6293,6293,6293,6293,6293,6293,5286,5308, - 7048,6293,6293,6293,6293,6293,6293,6293,6293,6293, - 6293,6293,6293,6293,3178,6293,6293,7048,6296,6296, - 6296,6296,6296,6296,6296,6296,6296,6296,6296,6296, - 7048,559,589,6827,6827,222,594,2129,2073,2121, - 6415,6409,6412,2333,2538,6296,6296,6296,6296,6296, - 6296,6296,6296,6296,6296,6296,6296,6296,6296,6296, - 7606,6296,6296,6421,6418,6427,6445,6424,6436,6406, - 6430,6433,6442,6439,6403,1,6348,6344,6857,6352, - 542,7591,6296,6863,6860,7048,343,6296,1511,2135, - 6296,6296,6296,6296,6296,6296,6296,6296,327,6233, - 6230,5675,735,2129,2073,2121,670,2904,7592,2532, - 6296,6296,6296,6296,6296,6296,6296,6296,6296,6296, - 6296,6296,6296,6296,6296,6296,6296,7048,11641,11641, - 6296,6296,6296,6296,6296,6296,6296,6296,6296,6296, - 6296,6296,6296,7048,6296,6296,39,6233,6230,4898, - 735,2129,2073,2121,5110,2904,2194,5176,5198,1078, - 7643,7644,7309,7307,7316,7315,7311,7312,7310,7313, - 7314,7317,7308,5654,7381,7382,7305,7299,7306,7302, - 7278,7304,7303,7300,7301,7279,5154,5132,7084,7067, - 5242,5220,5088,697,904,7069,734,5595,746,7070, - 7068,683,7064,7065,7066,4634,7442,7048,3037,7443, - 7444,155,1570,7048,6885,6885,226,6881,6773,6773, - 6773,226,226,6889,226,226,1,1,1,1, + 1,7049,1,1495,7222,1699,413,1,1,7049, + 7060,2032,1914,1962,2744,7049,7049,3116,1197,2239, + 977,3049,3971,3103,900,3100,651,3081,7049,6294, + 6294,6294,6294,6294,6294,6294,6294,6294,6294,6294, + 6294,7049,7049,283,6506,6506,221,280,2032,1914, + 1962,6371,6365,6368,7049,7049,6294,6294,6294,6294, + 6294,6294,6294,6294,6294,6294,6294,6294,6294,6294, + 137,6294,6294,6294,6377,6374,6383,3336,5568,6401, + 6380,6392,6362,6386,6389,6398,6395,6359,1984,7049, + 590,6828,6828,6294,595,2032,1914,1962,6294,3490, + 3437,6294,6294,6294,6294,6294,6294,6294,6294,1, + 6349,6345,5686,6353,6831,6837,6834,733,649,1130, + 305,6294,6294,6294,6294,6294,6294,6294,6294,6294, + 6294,6294,6294,6294,6294,6294,6294,6294,7049,11210, + 11210,6294,6294,6294,6294,6294,6294,6294,6294,6294, + 6294,6294,6294,6294,305,6294,6294,7049,6297,6297, + 6297,6297,6297,6297,6297,6297,6297,6297,6297,6297, + 1,6349,6345,6858,6353,222,7049,1155,6864,6861, + 6416,6410,6413,6230,2624,6297,6297,6297,6297,6297, + 6297,6297,6297,6297,6297,6297,6297,6297,6297,7085, + 6297,6297,6297,6422,6419,6428,7049,155,6446,6425, + 6437,6407,6431,6434,6443,6440,6404,1,6349,6345, + 5686,6353,6297,7049,7049,733,649,6297,7049,7049, + 6297,6297,6297,6297,6297,6297,6297,6297,327,6234, + 6231,5686,1295,2032,1914,1962,733,649,3159,7049, + 6297,6297,6297,6297,6297,6297,6297,6297,6297,6297, + 6297,6297,6297,6297,6297,6297,6297,7049,7063,7064, + 6297,6297,6297,6297,6297,6297,6297,6297,6297,6297, + 6297,6297,6297,1621,6297,6297,39,6234,6231,5021, + 1295,2032,1914,1962,5154,649,5220,133,5242,1277, + 7645,7646,7310,7308,7317,7316,7312,7313,7311,7314, + 7315,7318,7309,5665,7382,7383,7306,5198,5176,7300, + 7307,7303,7279,7305,7304,7301,7302,7280,7068,5286, + 5264,7049,3112,688,737,7070,700,4679,723,7071, + 7069,676,7065,7066,7067,3523,7443,7049,3221,7444, + 7445,1,1573,7049,6886,6886,226,6882,6774,6774, + 6774,226,226,226,6890,226,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,183,7049,1,1,1,1, + 1,1,1,1,1,7049,6234,6231,226,1295, + 7049,223,2938,733,649,391,6473,6467,6470,384, + 2032,1914,1962,1,6879,1,1,1,224,366, + 3282,7457,1843,6521,6515,6518,2,454,226,6479, + 6476,6485,7049,412,6503,6482,6494,6464,6488,6491, + 6500,6497,6461,7053,7049,7545,6527,6524,6533,7049, + 3188,6551,6530,6542,6512,6536,6539,6548,6545,6509, + 7055,3336,3828,7480,7481,7482,7049,6886,6886,226, + 6882,6774,6774,6774,226,226,226,6935,226,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,298,7048,226,305,6348,6344,5675, - 6352,6830,6836,6833,670,2904,7345,6916,6916,7048, - 6556,6553,435,1,6878,1,1,1,223,7048, - 1194,7456,1791,6472,6466,6469,7048,1618,226,7052, - 48,6556,6553,412,1,6348,6344,5675,6352,6830, - 6836,6833,670,2904,354,7544,6478,6475,6484,6502, - 6481,6493,6463,6487,6490,6499,6496,6460,43,6779, - 6779,7048,1,7479,7480,7481,7048,6885,6885,226, - 6881,6773,6773,6773,226,226,6934,226,226,1, + 1,1,1,1,1,1,1,6279,1411,1, + 1,1,1,1,1,1,1,1,7049,7063, + 7064,226,1295,6992,581,89,733,649,6288,6572, + 6566,6569,7054,38,6252,6249,1,6879,1,1, + 1,6246,649,3282,7457,1843,119,7049,7063,7064, + 7049,226,6578,6575,6584,1693,411,6602,6581,6593, + 6563,6587,6590,6599,6596,6560,511,7052,7545,7049, + 6349,6345,5686,6353,6831,6837,6834,733,649,6917, + 3597,6917,7049,7049,7063,7064,7480,7481,7482,7049, + 6774,6774,226,6774,6770,6774,6774,226,226,226, + 6989,226,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,7048,3388,226,7048, - 6348,6344,5675,6352,6830,6836,6833,670,2904,6776, - 6940,6940,7479,7480,7481,7048,1,6878,1,1, - 1,224,128,1194,7456,1791,6520,6514,6517,7401, - 307,226,7048,2039,7051,1,411,592,6233,6230, - 5675,735,2129,2073,2121,670,2904,7403,7544,6526, - 6523,6532,6550,6529,6541,6511,6535,6538,6547,6544, - 6508,3324,37,6845,6845,7048,7479,7480,7481,7048, - 6773,6773,226,6773,6769,6773,6773,226,226,6988, - 226,226,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,11472,1,1,1,1,1,1,1198, - 2,226,1,6348,6344,5675,6352,6830,6836,6833, - 670,2904,305,1126,3476,3423,38,6251,6248,1, - 6985,1,1,1,6245,2904,1246,7257,1695,7048, - 6348,6344,5675,6352,6830,6836,6833,670,2904,218, - 6916,6916,391,7048,305,7048,384,2129,2073,2121, - 6229,7544,7048,6773,6773,226,6773,6769,6773,6773, + 571,7049,1,1,11544,1,1,1,1,1, + 1,440,6276,6276,226,6276,6276,6276,6276,3977, + 4614,6276,980,6276,2542,137,7049,6557,6554,1, + 6986,1,1,1,5308,630,4053,7258,1699,1, + 6349,6345,3671,6353,43,6780,6780,733,649,218, + 363,1,6349,6345,5686,6353,6831,6837,6834,733, + 649,7545,7049,6774,6774,226,6774,6770,6774,6774, 226,226,226,226,226,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,11472,1,1,1,1, - 1,1,39,7048,226,580,7086,7048,7062,7063, - 6571,6565,6568,7048,2538,670,2904,7048,6233,6230, - 4391,7086,1,6985,1,1,1,3447,4170,1246, - 7257,1695,687,6577,6574,6583,6601,6580,6592,6562, - 6586,6589,6598,6595,6559,7048,7062,7063,2449,7048, - 7062,7063,7048,1144,7544,7048,6773,6773,226,6773, - 6769,6773,6773,226,226,6994,226,226,1,1, + 1,1,1,3977,4614,1,1,11544,1,1, + 1,1,1,1,2150,6777,1,226,307,2198, + 7049,1517,363,2535,586,363,363,6285,1361,2032, + 1914,1962,1,6986,1,1,1,3548,7049,4053, + 7258,1699,1155,7049,363,7049,37,6846,6846,2624, + 2102,2054,2006,1958,1910,1862,1814,1766,1718,1670, + 453,7049,6896,6893,7545,7049,6774,6774,226,6774, + 6770,6774,6774,226,226,226,6995,226,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,11472,1, - 1,1,1,1,1,112,7048,226,1,6348, - 6344,5675,6352,6830,6836,6833,670,2904,89,119, - 7048,6287,7479,7480,7481,1,6985,1,1,1, - 5264,1353,1246,7257,1695,7048,6556,6553,1,6348, - 6344,3657,6352,37,7048,217,670,2904,363,390, - 6457,6457,7048,280,6448,6454,6451,7544,7048,6773, - 6773,226,6773,6769,6773,6773,226,226,6988,226, + 1,1,1,1,1,1,7056,1200,1,1, + 11544,1,1,1,1,1,1,1644,1497,517, + 226,305,6349,6345,5686,6353,6831,6837,6834,733, + 649,6917,7085,6917,116,1,6986,1,1,1, + 6282,7049,4053,7258,1699,358,1,6843,6843,7049, + 6840,6831,6837,6834,588,217,327,359,327,7004, + 7010,7007,7049,6557,6554,4727,4704,7545,7049,6774, + 6774,226,6774,6770,6774,6774,226,226,226,6989, 226,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,570, + 134,1,1,11544,1,1,1,1,1,1, + 441,6804,6804,226,6798,6789,6795,6792,587,359, + 6801,1405,6801,7013,7019,7016,7557,7049,1,6986, + 1,1,1,5308,630,4053,7258,1699,7049,7063, + 7064,359,7049,6903,6899,3597,733,649,218,593, + 6234,6231,5686,1295,2032,1914,1962,733,649,371, + 7545,7049,6774,6774,226,6774,6770,6774,6774,226, + 226,226,6989,226,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,11472,1,1,1,1,1,1,7048,116, - 226,5286,5308,118,7084,113,5264,1353,2194,4452, - 280,363,4569,4659,363,363,5065,1359,1,6985, - 1,1,1,571,7048,1246,7257,1695,137,5374, - 441,6803,6803,363,6797,6788,6794,6791,218,4711, - 4688,6800,6800,4711,4688,392,7048,6895,6892,383, - 7544,7048,6773,6773,226,6773,6769,6773,6773,226, - 226,6988,226,226,1,1,1,1,1,1, + 1,1,3977,4614,1,1,11544,1,1,1, + 1,1,1,7085,123,2938,226,7049,6349,6345, + 5686,6353,6831,6837,6834,733,649,6941,7049,6941, + 7049,1,6986,1,1,1,7049,435,4053,7258, + 1699,7057,341,39,39,1354,7087,2032,1914,1962, + 7049,218,327,2697,327,48,6557,6554,111,343, + 344,7055,1935,7545,7049,6774,6774,226,6774,6770, + 6774,6774,226,226,226,226,226,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,11472,1,1,1,1,1, - 1,115,183,226,90,6866,6866,7048,6866,6866, - 6866,6866,5065,5042,5012,6866,6866,7084,137,511, - 1433,1,6985,1,1,1,4569,4659,1246,7257, - 1695,341,6233,6230,3657,735,2129,2073,2121,670, - 2904,218,327,327,414,1153,7048,6902,6898,2129, - 2073,2121,695,7544,7048,6773,6773,226,6773,6769, - 6773,6773,226,226,226,226,226,1,1,1, + 1,1,1,1,1,3597,7049,1,1,11544, + 1,1,1,1,1,1,1105,3977,4614,226, + 7056,2296,2198,1,6349,6345,5686,6353,6831,6837, + 6834,733,649,7054,1,6986,1,1,1,2198, + 2198,4053,7258,1699,341,6234,6231,3671,1295,2032, + 1914,1962,733,649,327,414,327,7480,7481,7482, + 2032,1914,1962,354,5330,5352,7545,7049,6774,6774, + 226,6774,6770,6774,6774,226,226,226,226,226, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,11472,1,1, - 1,1,1,1,39,981,226,2146,7086,5042, - 5012,2194,1,6348,6344,6857,6352,7084,111,7048, - 6863,6860,7058,7048,1,6985,1,1,1,1, - 1,1246,7257,1695,2765,1153,45,6925,6925,7060, - 6284,6991,695,2098,2050,2002,1954,1906,1858,1810, - 1762,1714,1666,454,7057,7048,7544,7048,6773,6773, - 226,6773,6769,6773,6773,226,226,226,226,226, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 11472,1,1,1,1,1,1,6922,2291,226, - 93,6964,6964,7059,6958,6949,6955,6952,7048,7048, - 7055,6961,6961,7048,5286,5308,2140,1,6985,1, - 1,1,7048,6278,1246,7257,1695,7048,6348,6344, - 5675,6352,6830,6836,6833,670,2904,570,6940,6940, - 590,6824,6824,1,594,6815,6821,6818,564,7544, - 7048,6773,6773,226,6773,6769,6773,6773,226,226, + 1,1,1,1,1,1,1,1,2542,7049, + 1,1,11544,1,1,1,1,1,1,4039, + 122,3583,226,298,2198,7049,1,6349,6345,5686, + 6353,6831,6837,6834,733,649,7346,1,6986,1, + 1,1,121,7049,4053,7258,1699,7049,6349,6345, + 5686,6353,6831,6837,6834,733,649,6941,7049,6941, + 390,6458,6458,1,280,6449,6455,6452,7402,7545, + 7049,6774,6774,226,6774,6770,6774,6774,226,226, 226,226,226,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,11472,1,1,1,1,1,1, - 366,3534,226,341,39,39,1462,7086,2129,2073, - 2121,594,2538,123,327,327,7048,37,6845,6845, - 1,6985,1,1,1,6845,7048,1246,7257,1695, - 1,6348,6344,5675,6352,6830,6836,6833,670,2904, - 4569,4659,7048,1,1,1,1,332,3387,110, - 1,1,7544,1,1,1,1,1,1,1, + 1,2542,7486,1,1,11544,1,1,1,1, + 1,1,7049,3977,4614,226,1,6349,6345,3671, + 6353,280,2542,7059,733,649,7049,6745,542,7592, + 1,6986,1,1,1,3977,4614,4053,7258,1699, + 1,6349,6345,5686,6353,6831,6837,6834,733,649, + 7049,7049,1,1,1,1,7593,7058,7404,1, + 1,1,7545,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,393, + 7063,7064,1,1,7049,7049,2198,29,3298,6748, + 7028,7036,7032,1,1,1,7040,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 7048,3067,7048,2194,1,6973,6970,1462,1176,1408, - 7054,117,1,1,337,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,7048,7062,7063,2538,4569,4659,1,453, - 7647,7048,7060,1,1,1,6348,6344,4898,6352, - 332,4711,4688,5110,2904,528,5176,5198,6302,6308, - 6305,6335,6341,6314,6317,6329,6326,6332,6323,6320, - 6311,6338,6355,7053,2194,5286,5308,337,7381,7382, - 337,337,393,7062,7063,5154,5132,7048,7067,5242, - 5220,5088,697,904,7069,734,5595,746,7070,7068, - 683,7064,7065,7066,4634,7048,7059,7048,39,6281, - 688,1570,7086,2129,2073,2121,39,39,7048,327, - 327,3621,512,39,6233,6230,4898,735,124,4473, - 4300,5110,2904,7042,5176,5198,946,7643,7644,7309, - 7307,7316,7315,7311,7312,7310,7313,7314,7317,7308, - 3509,1,6348,6344,5675,6352,36,6909,6906,670, - 2904,29,314,5154,5132,6937,7067,5242,5220,5088, - 697,904,7069,734,5595,746,7070,7068,683,7064, - 7065,7066,4634,1,6348,6344,5675,6352,7048,1570, - 7048,670,2904,3932,7048,344,436,6982,139,6233, - 6230,4898,735,7055,7060,6272,5110,2904,122,5176, - 5198,946,7643,7644,7309,7307,7316,7315,7311,7312, - 7310,7313,7314,7317,7308,3509,6236,7048,3870,3839, - 1,7048,2194,1462,2847,7048,3791,3760,5154,5132, - 6744,7067,5242,5220,5088,697,904,7069,734,5595, - 746,7070,7068,683,7064,7065,7066,4634,7048,6233, - 6230,6239,735,2339,1570,2194,670,2904,7059,39, - 39,1,6348,6344,4898,6352,287,7062,7063,5110, - 2904,7048,5176,5198,6302,6308,6305,6335,6341,6314, - 6317,6329,6326,6332,6323,6320,6311,6338,6355,7048, - 2194,4569,4659,6747,7027,7035,7031,234,29,7039, - 6756,5154,5132,121,7067,5242,5220,5088,697,904, - 7069,734,5595,746,7070,7068,683,7064,7065,7066, - 4634,7048,7062,7063,7048,735,7048,1570,298,670, - 2904,7039,39,39,548,6233,6230,4898,735,7048, - 7048,7345,5110,2904,134,5176,5198,946,7643,7644, - 7309,7307,7316,7315,7311,7312,7310,7313,7314,7317, - 7308,3509,7048,1433,7048,7039,7048,7048,11084,11083, - 7048,7048,7058,420,5154,5132,7056,7067,5242,5220, - 5088,697,904,7069,734,5595,746,7070,7068,683, - 7064,7065,7066,4634,7048,2317,4569,4659,1,3987, - 1570,4749,126,450,7057,39,39,39,6233,6230, - 4898,735,7048,120,4048,5110,2904,6979,5176,5198, - 946,7643,7644,7309,7307,7316,7315,7311,7312,7310, - 7313,7314,7317,7308,3509,1,6348,6344,3657,6352, - 3685,5536,1103,670,2904,6744,7055,5154,5132,2934, - 7067,5242,5220,5088,697,904,7069,734,5595,746, - 7070,7068,683,7064,7065,7066,4634,3932,6242,7048, - 7048,3169,4254,1570,548,6233,6230,4898,735,6782, - 7054,6982,5110,2904,7048,5176,5198,946,7643,7644, - 7309,7307,7316,7315,7311,7312,7310,7313,7314,7317, - 7308,3509,3870,3839,7048,2194,4569,4659,6747,7048, - 3791,3760,4402,7048,5154,5132,4480,7067,5242,5220, - 5088,697,904,7069,734,5595,746,7070,7068,683, - 7064,7065,7066,4634,7048,7048,7048,1574,4740,645, - 1570,98,316,7053,7054,39,39,39,6233,6230, - 4898,735,7048,11084,11083,5110,2904,6979,5176,5198, - 946,7643,7644,7309,7307,7316,7315,7311,7312,7310, - 7313,7314,7317,7308,3509,1,6348,6344,3657,6352, - 3685,3629,7048,670,2904,47,7048,5154,5132,5770, - 7067,5242,5220,5088,697,904,7069,734,5595,746, - 7070,7068,683,7064,7065,7066,4634,7053,7048,3378, - 1,6919,2194,1570,39,6233,6230,4898,735,3603, - 7024,6982,5110,2904,7052,5176,5198,946,7643,7644, - 7309,7307,7316,7315,7311,7312,7310,7313,7314,7317, - 7308,3509,37,6845,6845,2194,1095,2129,2073,2121, - 7048,6895,6892,327,5154,5132,7048,7067,5242,5220, - 5088,697,904,7069,734,5595,746,7070,7068,683, - 7064,7065,7066,4634,39,6233,6230,4898,735,383, - 7048,7048,5110,2904,7059,5176,5198,946,7643,7644, - 7309,7307,7316,7315,7311,7312,7310,7313,7314,7317, - 7308,3509,7048,7084,7048,6233,6230,7048,735,7048, - 7048,7084,6299,2904,5154,5132,1738,7067,5242,5220, - 5088,697,904,7069,734,5595,746,7070,7068,683, - 7064,7065,7066,4634,39,6233,6230,4898,735,7051, - 1570,3448,5110,2904,6290,5176,5198,946,7643,7644, - 7309,7307,7316,7315,7311,7312,7310,7313,7314,7317, - 7308,3509,7048,6233,6230,700,735,37,6845,6845, - 6299,2904,1433,7048,5154,5132,3347,7067,5242,5220, - 5088,697,904,7069,734,5595,746,7070,7068,683, - 7064,7065,7066,4634,39,6233,6230,2705,735,7048, - 7048,7048,5110,2904,1718,5176,5198,946,7643,7644, - 7309,7307,7316,7315,7311,7312,7310,7313,7314,7317, - 7308,3509,114,1036,7048,48,48,5771,7084,7063, - 7062,7048,7048,5065,5154,5132,1287,7067,5242,5220, - 5088,697,904,7069,734,5595,746,7070,7068,683, - 7064,7065,7066,4634,39,6233,6230,4898,735,7048, - 7048,7048,5110,2904,1751,5176,5198,946,7643,7644, - 7309,7307,7316,7315,7311,7312,7310,7313,7314,7317, - 7308,3509,1,1,7048,553,7048,1799,2846,3044, - 7063,7062,7058,159,5154,5132,3447,7067,5242,5220, - 5088,697,904,7069,734,5595,746,7070,7068,683, - 7064,7065,7066,4634,39,6233,6230,2705,735,7048, - 5042,5012,5110,2904,7057,5176,5198,946,7643,7644, - 7309,7307,7316,7315,7311,7312,7310,7313,7314,7317, - 7308,3509,401,1,7048,540,7048,832,1250,5488, - 7048,7048,6928,359,5154,5132,159,7067,5242,5220, - 5088,697,904,7069,734,5595,746,7070,7068,683, - 7064,7065,7066,4634,39,6233,6230,4898,735,7048, - 7048,7048,5110,2904,6931,5176,5198,946,7643,7644, - 7309,7307,7316,7315,7311,7312,7310,7313,7314,7317, - 7308,3509,1,101,7048,72,6943,7048,1900,7048, - 275,7048,189,6976,5154,5132,359,7067,5242,5220, - 5088,697,904,7069,734,5595,746,7070,7068,683, - 7064,7065,7066,4634,1,7048,7048,1151,359,7048, - 7048,7048,7513,358,189,7507,7511,5394,304,7054, - 7048,7054,3534,29,383,383,6753,383,383,383, - 383,383,383,6753,6753,6753,7048,364,7048,444, - 6967,7048,3177,424,7505,7506,7058,3554,7536,7537, - 7514,383,383,383,383,383,383,383,383,383, - 383,383,383,565,517,6753,3594,7048,7048,7516, - 4090,97,7048,7048,940,1853,1901,1,7057,1, - 7538,7517,7053,7515,7053,1152,1599,7048,6236,1403, - 6997,7048,6997,6753,3185,4109,6753,7527,7526,288, - 7539,7056,7508,7509,7532,7533,7530,7531,7510,7512, - 7534,7535,3284,7445,1222,2219,1470,7540,2272,7520, - 7521,7522,7518,7519,7528,7529,7524,7523,7525,7048, - 6233,6230,7048,7086,2129,2073,2121,7000,3615,7000, - 3615,6946,879,7643,7644,7309,7307,7316,7315,7311, - 7312,7310,7313,7314,7317,7308,5633,7381,7382,7305, - 7299,7306,7302,7278,7304,7303,7300,7301,7279,7048, - 98,7055,7048,101,7048,1895,6943,5901,2579,7054, - 7048,238,6698,6694,1,6702,6661,6655,6658,7442, - 3554,3037,7443,7444,879,6708,6705,6735,6741,6714, - 6717,6729,6726,6732,6723,6720,6711,6738,5633,6667, - 6664,6673,6691,6670,6682,6652,6676,6679,6688,6685, - 6649,7048,7048,7048,7048,371,7048,3597,7048,7048, - 7048,7048,597,7048,7048,7048,7048,6616,6610,6613, - 6919,7442,7053,3037,7443,7444,7643,7644,7309,7307, - 7316,7315,7311,7312,7310,7313,7314,7317,7308,2387, - 6622,6619,6628,6646,6625,6637,6607,6631,6634,6643, - 6640,6604,32,384,384,6750,384,384,384,384, - 384,384,6750,6750,6750,7048,3537,569,576,576, - 576,576,576,576,576,576,576,6848,6848,6848, - 384,384,384,384,384,384,384,384,384,384, - 384,384,125,7048,6750,576,576,576,576,576, - 576,576,576,576,576,576,576,286,562,6848, - 416,35,7048,7021,7021,7021,7021,7021,7021,7021, - 7021,7021,6750,7021,7021,6750,74,445,8,6266, - 422,3554,504,2,7048,7048,7048,576,7045,7048, - 6848,1,6842,6842,7054,6839,6830,6836,6833,7054, - 1,359,327,327,1,1,502,3932,506,7048, - 161,7048,7048,7048,524,7054,7048,7048,2627,6785, - 6257,6254,7048,7048,7048,7048,7048,7048,7048,7048, - 7048,7048,7048,1709,1543,7048,7048,7021,7048,2668, - 2532,7048,3870,3839,7048,7048,6269,7048,37,7048, - 3791,3760,7048,2442,7048,7048,3687,7053,7045,7048, - 1519,4805,7053,7048,359,6117,7048,7048,7048,7048, - 7048,7048,7048,161,7048,7048,7048,524,7053,7048, - 7048,7048,7048,7048,7048,4806,359,819,7048,6260, - 7048,7048,7048,7048,7048,7048,7048,7048,7048,7048, - 7048,7048,7048,6263 + 1,110,1,6349,6345,5686,6353,1,7049,7649, + 733,649,1,1,1,6349,6345,5021,6353,7057, + 7040,3468,5154,649,5220,128,5242,6303,6309,6306, + 6336,6342,6315,6318,6330,6327,6333,6324,6321,6312, + 6339,6356,686,39,118,5198,5176,7087,2032,1914, + 1962,7040,420,327,304,327,7068,5286,5264,120, + 3112,688,737,7070,700,4679,723,7071,7069,676, + 7065,7066,7067,3523,7049,4727,4704,90,6867,6867, + 1573,6867,6867,6867,6867,39,39,6867,7056,6867, + 124,512,39,6234,6231,5021,1295,5330,5352,7049, + 5154,649,5220,7043,5242,632,7645,7646,7310,7308, + 7317,7316,7312,7313,7311,7314,7315,7318,7309,3137, + 7049,7063,7064,5198,5176,286,1,3490,3437,39, + 3199,7061,7049,7087,7068,5286,5264,7061,3112,688, + 737,7070,700,4679,723,7071,7069,676,7065,7066, + 7067,3523,3977,4614,7049,3946,392,1,1573,1344, + 383,139,6234,6231,5021,1295,6983,6273,159,5154, + 649,5220,7056,5242,632,7645,7646,7310,7308,7317, + 7316,7312,7313,7311,7314,7315,7318,7309,3137,7049, + 3884,3853,5198,5176,7060,7049,559,117,3805,3774, + 7060,669,7049,7068,5286,5264,7055,3112,688,737, + 7070,700,4679,723,7071,7069,676,7065,7066,7067, + 3523,686,36,6910,6907,7607,7049,1573,4727,4704, + 159,7500,39,39,1,6349,6345,5021,6353,7480, + 7481,7482,5154,649,5220,7049,5242,6303,6309,6306, + 6336,6342,6315,6318,6330,6327,6333,6324,6321,6312, + 6339,6356,7049,3845,7049,5198,5176,2991,7054,7049, + 3972,2337,7049,7055,7049,7055,7068,5286,5264,3649, + 3112,688,737,7070,700,4679,723,7071,7069,676, + 7065,7066,7067,3523,287,7063,7064,7049,11083,10763, + 1573,1,7049,7049,1354,39,39,548,6234,6231, + 5021,1295,6745,7055,7059,5154,649,5220,7049,5242, + 632,7645,7646,7310,7308,7317,7316,7312,7313,7311, + 7314,7315,7318,7309,3137,7054,7049,7054,5198,5176, + 1522,1,7049,11083,10763,7049,7049,7055,7058,7068, + 5286,5264,7059,3112,688,737,7070,700,4679,723, + 7071,7069,676,7065,7066,7067,3523,7049,7049,7049, + 3582,2198,3014,1573,6748,7054,126,870,39,39, + 39,6234,6231,5021,1295,7049,7058,29,5154,649, + 5220,6980,5242,632,7645,7646,7310,7308,7317,7316, + 7312,7313,7311,7314,7315,7318,7309,3137,7049,7054, + 4002,5198,5176,7049,591,6825,6825,436,595,6816, + 6822,6819,7068,5286,5264,37,3112,688,737,7070, + 700,4679,723,7071,7069,676,7065,7066,7067,3523, + 314,3946,450,6938,383,298,1573,548,6234,6231, + 5021,1295,6237,6783,6983,5154,649,5220,7346,5242, + 632,7645,7646,7310,7308,7317,7316,7312,7313,7311, + 7314,7315,7318,7309,3137,595,3884,3853,5198,5176, + 98,7049,6240,48,3805,3774,7085,7064,4215,7068, + 5286,5264,7055,3112,688,737,7070,700,4679,723, + 7071,7069,676,7065,7066,7067,3523,6243,2453,6291, + 2198,7049,1289,1573,401,7049,1,7049,39,39, + 39,6234,6231,5021,1295,6929,7049,189,5154,649, + 5220,6980,5242,632,7645,7646,7310,7308,7317,7316, + 7312,7313,7311,7314,7315,7318,7309,3137,7064,7049, + 6920,5198,5176,332,7054,332,562,4440,528,6932, + 7061,189,7068,5286,5264,7049,3112,688,737,7070, + 700,4679,723,7071,7069,676,7065,7066,7067,3523, + 686,6974,6971,7382,7383,7049,1573,39,6234,6231, + 5021,1295,2344,47,6983,5154,649,5220,7053,5242, + 632,7645,7646,7310,7308,7317,7316,7312,7313,7311, + 7314,7315,7318,7309,3137,37,6846,6846,5198,5176, + 2032,1914,1962,7060,3744,327,45,6926,6926,7068, + 5286,5264,2029,3112,688,737,7070,700,4679,723, + 7071,7069,676,7065,7066,7067,3523,39,6234,6231, + 5021,1295,7049,7049,1513,5154,649,5220,364,5242, + 632,7645,7646,7310,7308,7317,7316,7312,7313,7311, + 7314,7315,7318,7309,3137,1,7085,7049,5198,5176, + 37,6846,6846,7049,6896,6893,161,6923,6846,7068, + 5286,5264,7049,3112,688,737,7070,700,4679,723, + 7071,7069,676,7065,7066,7067,3523,39,6234,6231, + 5021,1295,7052,1573,7049,5154,649,5220,3548,5242, + 632,7645,7646,7310,7308,7317,7316,7312,7313,7311, + 7314,7315,7318,7309,3137,7049,288,1472,5198,5176, + 391,1741,1,7049,7085,2032,1914,1962,161,7068, + 5286,5264,4032,3112,688,737,7070,700,4679,723, + 7071,7069,676,7065,7066,7067,3523,4093,7049,7049, + 39,6234,6231,2739,1295,3561,72,1276,5154,649, + 5220,7049,5242,632,7645,7646,7310,7308,7317,7316, + 7312,7313,7311,7314,7315,7318,7309,3137,37,6846, + 6846,5198,5176,48,7049,686,39,7063,234,7049, + 7087,6757,7068,5286,5264,2583,3112,688,737,7070, + 700,4679,723,7071,7069,676,7065,7066,7067,3523, + 39,6234,6231,2739,1295,7049,3055,4069,5154,649, + 5220,6968,5242,632,7645,7646,7310,7308,7317,7316, + 7312,7313,7311,7314,7315,7318,7309,3137,1,7085, + 1,5198,5176,4257,7049,7049,7049,1951,7063,2047, + 7049,6998,7068,5286,5264,4519,3112,688,737,7070, + 700,4679,723,7071,7069,676,7065,7066,7067,3523, + 39,6234,6231,5021,1295,2368,7049,7049,5154,649, + 5220,7049,5242,632,7645,7646,7310,7308,7317,7316, + 7312,7313,7311,7314,7315,7318,7309,3137,7001,3741, + 7049,5198,5176,2143,7049,7049,7049,2284,5956,6068, + 2,7049,7068,5286,5264,4067,3112,688,737,7070, + 700,4679,723,7071,7069,676,7065,7066,7067,3523, + 39,6234,6231,5933,1295,7049,7049,7049,5154,649, + 5220,4196,5242,632,7645,7646,7310,7308,7317,7316, + 7312,7313,7311,7314,7315,7318,7309,3137,1,564, + 7049,5198,5176,5907,7049,7049,7049,6087,2264,3160, + 7049,6998,7068,5286,5264,37,3112,688,737,7070, + 700,4679,723,7071,7069,676,7065,7066,7067,3523, + 39,6234,6231,5933,1295,7049,7049,7049,5154,649, + 5220,3588,5242,632,7645,7646,7310,7308,7317,7316, + 7312,7313,7311,7314,7315,7318,7309,3137,7001,3741, + 553,5198,5176,3614,7049,7049,540,3717,2695,1253, + 7049,7049,7068,5286,5264,7049,3112,688,737,7070, + 700,4679,723,7071,7069,676,7065,7066,7067,3523, + 39,6234,6231,5021,1295,7049,7049,7049,5154,649, + 5220,7049,5242,632,7645,7646,7310,7308,7317,7316, + 7312,7313,7311,7314,7315,7318,7309,3137,1,1, + 7049,5198,5176,7049,8,7049,3383,7049,444,359, + 524,7049,7068,5286,5264,7046,3112,688,737,7070, + 700,4679,723,7071,7069,676,7065,7066,7067,3523, + 1,416,101,860,316,6944,275,424,7514,6977, + 7508,97,7512,7049,7022,7022,7022,7022,7022,7022, + 7022,7022,7022,7022,5418,7022,7049,6234,6231,7049, + 1295,7506,7507,565,6300,649,3636,7049,98,7049, + 3338,359,524,7537,7538,4154,7515,1,6349,6345, + 6858,6353,7446,903,7046,6864,6861,445,7059,422, + 2392,7049,1,359,1,7517,7049,7049,7049,4037, + 942,1662,1665,7025,2198,7055,7539,7518,35,7516, + 2672,6947,3836,101,7049,7049,6944,820,7022,504, + 502,7049,7058,7528,7527,506,7540,7049,7509,7510, + 7533,7534,7531,7532,7511,7513,7535,7536,6920,3588, + 3482,7049,7049,7541,2631,7521,7522,7523,7519,7520, + 7529,7530,7525,7524,7526,7049,6234,6231,7049,7087, + 2032,1914,1962,1224,1,3842,7060,7054,877,7645, + 7646,7310,7308,7317,7316,7312,7313,7311,7314,7315, + 7318,7309,5628,7382,7383,7306,7049,1984,7300,7307, + 7303,7279,7305,7304,7301,7302,7280,7049,4318,4379, + 646,7049,7049,7049,701,7049,3637,238,6699,6695, + 7049,6703,6662,6656,6659,7443,7049,3221,7444,7445, + 877,6709,6706,6736,6742,6715,6718,6730,6727,6733, + 6724,6721,6712,6739,5628,6668,6665,6674,7049,7049, + 6692,6671,6683,6653,6677,6680,6689,6686,6650,93, + 6965,6965,7049,6959,6950,6956,6953,7049,598,6962, + 7049,6962,7049,6617,6611,6614,7049,7443,7049,3221, + 7444,7445,7645,7646,7310,7308,7317,7316,7312,7313, + 7311,7314,7315,7318,7309,7049,6623,6620,6629,7049, + 7049,6647,6626,6638,6608,6632,6635,6644,6641,6605, + 29,383,383,6754,383,383,383,383,383,383, + 6754,6754,6754,7049,32,384,384,6751,384,384, + 384,384,384,384,6751,6751,6751,7049,383,383, + 383,7049,7049,383,383,383,383,383,383,383, + 383,383,384,384,384,6754,7049,384,384,384, + 384,384,384,384,384,384,7049,7049,7049,6751, + 1,6349,6345,3671,6353,6237,125,7049,733,649, + 6754,74,1,6754,6267,1354,7049,7049,6234,6231, + 7049,1295,7049,337,6751,6300,649,6751,569,576, + 576,576,576,576,576,576,576,576,6849,6849, + 6849,7049,7049,7049,7049,7049,7049,7049,7049,7049, + 7049,7049,7049,7049,6258,6255,576,576,576,7049, + 7049,576,576,576,576,576,576,576,576,576, + 2198,3946,7049,6849,7049,7049,7049,7049,1033,7049, + 7049,6270,2198,6786,7049,337,7049,7049,337,337, + 7049,7049,7049,7049,7049,7049,7049,7049,576,7049, + 7049,6849,7049,7049,7049,7049,3884,3853,7049,7049, + 7049,7049,7049,7049,3805,3774,7049,7049,7049,7049, + 7049,7049,7049,7049,6261,7049,7049,7049,7049,7049, + 7049,7049,7049,7049,7049,7049,7049,7049,6264 }; }; public final static char termAction[] = TermAction.termAction; @@ -2224,67 +2245,67 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 562,1,762,3,607,713,713,713,713,693, - 607,1068,1068,619,1068,1208,1148,1210,763,763, - 763,763,763,763,763,763,763,763,763,1068, - 834,839,836,843,841,850,848,852,851,853, - 260,854,762,762,659,659,659,659,805,271, - 194,194,1068,659,482,316,1068,1068,194,805, - 316,316,316,987,743,724,1215,658,1306,695, - 1068,1167,1068,1068,68,68,271,762,763,763, - 763,763,763,763,763,763,763,763,763,763, - 763,763,763,763,763,763,763,763,763,762, - 762,762,762,762,762,762,762,762,762,762, - 16,763,316,617,617,617,617,390,316,194, - 194,1131,1068,607,607,607,559,1068,551,1068, - 697,1068,693,805,1068,763,1055,1049,482,482, - 194,713,763,1131,438,1004,147,146,1075,1075, - 693,1210,763,397,725,482,658,762,803,1302, - 802,804,802,316,482,836,836,834,834,834, - 841,841,841,841,841,841,839,839,848,843, - 843,851,850,852,61,61,853,607,607,607, - 607,805,805,617,616,617,1068,1068,805,533, - 434,315,961,339,553,389,551,701,693,697, - 805,805,390,617,987,482,868,316,1006,1008, - 805,1306,1079,724,61,763,61,878,723,607, - 607,607,725,607,805,915,878,878,522,394, - 805,331,559,763,659,1068,1068,316,695,805, - 805,804,1306,762,762,762,762,762,762,607, - 607,743,1135,1068,1068,319,315,314,316,339, - 805,555,1140,706,390,559,134,805,390,805, - 316,151,983,150,1008,390,803,715,725,61, - 881,725,743,743,741,884,743,878,878,544, - 522,1128,805,607,607,907,693,802,549,316, - 1068,1131,1302,695,805,803,316,316,316,316, - 271,271,1138,1068,998,997,315,136,805,339, - 61,701,713,392,801,75,339,555,707,558, - 555,558,390,134,134,805,805,609,762,148, - 148,139,139,1002,1131,155,316,805,725,763, - 725,316,1128,316,741,522,607,316,558,558, - 878,900,1131,969,877,1128,1128,805,316,805, - 1306,1008,63,693,805,803,549,1068,1068,1068, - 762,1068,1310,1068,695,316,316,1068,1068,319, - 316,270,316,1306,343,559,617,713,77,558, - 558,558,558,805,134,136,886,12,609,762, - 762,1006,983,609,1112,725,907,725,878,522, - 762,725,558,559,693,900,1128,762,1167,1128, - 900,1302,1008,7,909,6,805,805,803,722, - 607,1068,271,763,482,1310,1068,808,998,803, - 343,343,344,355,877,763,61,901,963,874, - 77,558,558,536,136,763,805,611,1128,609, - 762,723,271,878,1128,316,559,975,805,607, - 316,136,559,900,316,63,878,257,961,805, - 878,878,155,1068,316,482,1068,270,878,136, - 961,1261,701,343,343,355,77,763,763,874, - 874,77,77,975,692,537,805,611,611,725, - 316,878,549,693,805,271,136,1167,891,806, - 316,878,316,316,1125,485,979,136,616,713, - 325,325,874,874,536,805,693,693,805,607, - 611,725,549,316,1167,891,316,559,559,1127, - 344,343,355,344,355,615,615,805,805,805, - 1009,716,12,893,343,355,659,659,805,805, - 998,11,90,893,136,616,659,11,11,1047, - 325,615,802 + 537,1,741,129,582,683,683,683,683,77, + 582,1076,1076,3,1076,1208,1148,1210,742,742, + 742,742,742,742,742,742,742,742,742,1076, + 818,823,820,827,825,834,832,836,835,837, + 371,838,741,741,43,43,43,43,784,382, + 137,137,1076,43,529,427,1076,1076,137,784, + 427,427,427,957,722,703,1215,42,1306,79, + 1076,1167,1076,1076,203,203,382,741,742,742, + 742,742,742,742,742,742,742,742,742,742, + 742,742,742,742,742,742,742,742,742,741, + 741,741,741,741,741,741,741,741,741,741, + 600,742,427,873,873,873,873,367,427,137, + 137,1139,1076,582,582,582,666,1076,658,1076, + 685,1076,77,784,1076,742,1063,1057,529,529, + 137,683,742,1139,485,974,592,591,1083,1083, + 77,1210,742,444,704,529,42,741,782,1302, + 781,783,781,427,529,820,820,818,818,818, + 825,825,825,825,825,825,823,823,832,827, + 827,835,834,836,645,645,837,582,582,582, + 582,784,784,873,872,873,1076,1076,784,923, + 481,426,127,316,660,366,658,689,77,685, + 784,784,367,1148,873,957,529,852,427,976, + 978,784,1306,1087,703,645,742,645,862,702, + 582,582,582,704,582,784,81,862,862,912, + 274,784,430,666,742,43,1076,1076,427,79, + 784,784,783,1306,741,741,741,741,741,741, + 582,582,722,1143,1076,1076,652,426,425,427, + 316,784,662,1049,676,367,666,269,784,367, + 784,427,427,596,953,595,978,367,782,694, + 704,645,787,704,722,722,720,790,722,862, + 862,669,912,1136,784,582,582,1047,77,781, + 674,427,1076,1139,1302,79,784,782,427,427, + 427,427,382,382,1146,1076,968,967,426,271, + 784,316,645,689,683,369,780,210,316,662, + 677,665,662,665,367,269,269,784,784,865, + 741,593,593,584,584,972,1139,277,427,784, + 704,742,704,427,1136,427,720,912,582,427, + 665,665,862,1040,1139,943,861,1136,1136,784, + 427,784,1306,978,647,77,784,782,674,1076, + 1076,1076,741,1076,1310,1076,79,427,427,1076, + 1076,652,427,381,427,1306,320,666,873,683, + 212,665,665,665,665,784,269,271,926,533, + 865,741,741,976,953,865,1120,704,1047,704, + 862,912,741,704,665,666,77,1040,1136,741, + 1167,1136,1040,1302,978,133,931,132,784,784, + 782,701,582,1076,382,742,529,1310,1076,792, + 968,782,320,320,321,332,861,742,645,1041, + 937,858,212,665,665,1023,271,742,784,867, + 1136,865,741,702,382,862,1136,427,666,949, + 784,582,427,271,666,1040,427,647,862,200, + 127,784,862,862,277,1076,427,529,1076,381, + 862,271,127,1261,689,320,320,332,212,742, + 742,858,858,212,212,949,76,1024,784,867, + 867,704,427,862,674,77,784,382,271,1167, + 1031,785,427,862,427,427,1133,875,1019,271, + 872,683,438,438,858,858,1023,784,77,77, + 784,582,867,704,674,427,1167,1031,427,666, + 666,1135,321,320,332,321,332,871,871,784, + 784,784,979,695,533,1033,320,332,43,43, + 784,784,968,532,225,1033,271,872,43,532, + 532,1017,438,871,781 }; }; public final static char asb[] = Asb.asb; @@ -2292,137 +2313,137 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static char asr[] = {0, - 128,0,125,42,128,76,73,10,75,0, - 42,10,80,76,0,14,15,16,17,47, - 71,18,48,49,19,20,21,72,9,50, - 22,23,51,52,53,66,54,55,13,24, - 25,26,56,57,58,43,1,2,3,44, - 45,12,11,40,41,8,46,4,27,59, - 75,0,10,75,73,43,0,9,4,61, - 8,1,2,0,42,10,3,9,8,75, - 12,11,4,1,2,6,7,5,0,71, - 72,66,44,45,12,11,40,41,8,46, - 51,59,27,3,4,9,56,57,58,43, - 54,49,53,17,26,16,22,20,21,23, - 24,19,18,25,14,15,13,48,52,50, - 47,55,74,1,2,80,10,0,5,78, - 75,42,74,6,7,3,70,77,79,76, - 10,73,95,0,14,15,5,31,16,17, - 60,28,18,62,32,33,19,34,35,20, - 21,36,37,22,23,38,63,39,13,64, - 24,30,25,29,26,1,2,4,27,6, - 7,95,0,14,15,5,31,16,17,60, - 28,47,71,18,48,62,32,33,49,19, - 34,35,20,21,36,72,9,37,50,22, - 23,51,38,52,63,53,66,54,39,55, - 13,64,24,30,25,29,26,56,57,58, - 43,2,3,44,45,12,40,41,8,46, - 77,4,27,59,6,7,1,11,0,5, - 77,75,95,125,80,42,6,7,128,76, + 128,0,72,71,31,32,10,98,99,104, + 12,105,8,46,79,65,77,118,119,115, + 116,117,123,122,124,94,93,120,121,102, + 103,100,101,106,107,43,44,76,96,113, + 70,3,14,15,5,33,16,17,60,28, + 18,62,34,35,19,36,37,20,21,38, + 39,22,23,40,63,41,13,64,24,25, + 29,26,27,6,7,30,1,2,4,0, 14,15,16,17,47,71,18,48,49,19, 20,21,72,9,50,22,23,51,52,53, 66,54,55,13,24,25,26,56,57,58, - 43,2,44,45,12,11,40,41,8,46, - 4,27,59,3,1,73,10,0,10,76, - 73,1,28,0,77,79,76,1,2,0, - 9,1,2,8,4,13,67,0,110,111, - 112,75,80,9,10,3,12,11,8,42, - 69,67,92,68,14,15,5,31,16,17, - 60,28,18,62,32,33,19,34,35,20, - 21,36,37,22,23,38,63,39,13,64, - 24,30,25,29,26,27,6,7,4,1, - 2,61,0,3,29,0,14,15,5,31, - 16,17,28,18,32,33,19,34,35,20, - 21,36,9,37,22,23,38,39,24,30, - 25,29,26,1,2,70,12,11,8,4, - 42,6,7,73,10,3,0,71,72,3, - 13,48,52,50,47,55,17,26,16,22, - 20,21,23,24,19,18,25,14,15,56, - 57,58,43,54,49,53,8,9,4,44, - 45,12,11,40,41,46,51,59,27,1, - 2,125,10,0,14,15,31,16,17,60, - 28,18,62,32,92,33,19,34,35,20, - 21,36,67,37,22,23,38,63,61,39, - 13,64,24,69,30,25,29,26,27,68, - 74,5,10,42,6,7,8,9,1,2, - 4,3,11,12,0,30,1,2,4,110, - 111,112,0,10,75,74,78,0,126,0, - 61,4,1,2,6,7,5,75,74,10, - 0,14,15,16,17,47,71,18,48,49, + 1,2,3,43,44,12,10,31,32,8, + 46,4,27,59,45,11,42,0,125,45, + 128,76,73,11,75,0,14,15,5,33, + 16,17,60,28,47,71,18,48,62,34, + 35,49,19,36,37,20,21,38,72,9, + 39,50,22,23,51,40,52,63,53,66, + 54,41,55,13,64,24,30,25,29,26, + 56,57,58,42,2,3,43,44,12,31, + 32,8,46,77,4,27,59,6,7,1, + 10,0,9,4,61,8,1,2,0,45, + 11,3,9,8,75,12,10,4,1,2, + 6,7,5,0,71,72,66,43,44,12, + 10,31,32,8,46,51,59,27,3,4, + 9,56,57,58,42,54,49,53,17,26, + 16,22,20,21,23,24,19,18,25,14, + 15,13,48,52,50,47,55,74,1,2, + 80,11,0,3,29,0,14,15,5,33, + 16,17,60,28,18,62,34,35,19,36, + 37,20,21,38,39,22,23,40,63,41, + 13,64,24,30,25,29,26,1,2,4, + 27,6,7,95,0,110,111,112,75,80, + 9,11,3,12,10,8,45,69,67,92, + 68,14,15,5,33,16,17,60,28,18, + 62,34,35,19,36,37,20,21,38,39, + 22,23,40,63,41,13,64,24,30,25, + 29,26,27,6,7,4,1,2,61,0, + 5,77,75,95,125,80,45,6,7,128, + 76,14,15,16,17,47,71,18,48,49, 19,20,21,72,9,50,22,23,51,52, 53,66,54,55,13,24,25,26,56,57, - 58,43,1,2,44,45,12,11,40,41, - 8,46,4,27,59,68,3,0,28,29, - 66,10,95,73,79,76,77,0,72,71, - 40,41,11,98,99,104,12,105,8,46, - 79,65,77,118,119,115,116,117,123,122, - 124,94,93,120,121,102,103,100,101,106, - 107,44,45,76,96,113,70,3,14,15, - 5,31,16,17,60,28,18,62,32,33, - 19,34,35,20,21,36,37,22,23,38, - 63,39,13,64,24,25,29,26,27,6, - 7,30,1,2,4,0,4,6,7,5, - 1,2,74,10,0,4,10,75,74,6, - 7,5,65,0,73,92,110,111,112,61, - 75,126,129,80,68,78,69,67,82,84, - 90,88,81,86,87,89,91,74,83,85, - 42,10,62,60,63,64,31,37,38,33, - 36,35,30,32,28,29,5,7,6,34, - 39,66,71,72,48,52,50,47,55,17, - 26,16,22,20,21,23,24,19,18,25, - 14,15,56,57,58,43,54,49,53,3, - 44,45,12,11,40,41,46,51,59,27, - 13,4,9,8,2,1,0,31,32,33, - 34,35,36,9,37,38,66,78,39,30, - 1,2,70,3,127,113,44,45,8,4, - 74,28,29,97,96,11,98,99,40,41, - 94,93,65,100,101,108,109,102,103,12, - 104,105,106,77,73,128,79,115,116,117, - 118,119,120,121,122,123,124,75,95,125, - 80,107,114,6,7,5,76,42,10,0, - 75,95,0,81,0,10,76,80,79,0, + 58,42,2,43,44,12,10,31,32,8, + 46,4,27,59,3,1,73,11,0,9, + 1,2,8,4,13,67,0,77,79,76, + 1,2,0,14,15,5,33,16,17,28, + 18,34,35,19,36,37,20,21,38,9, + 39,22,23,40,41,24,30,25,29,26, + 1,2,70,12,10,8,4,45,6,7, + 73,11,3,0,71,72,3,13,48,52, + 50,47,55,17,26,16,22,20,21,23, + 24,19,18,25,14,15,56,57,58,42, + 54,49,53,8,9,4,43,44,12,10, + 31,32,46,51,59,27,1,2,125,11, + 0,45,11,80,76,0,14,15,16,17, + 47,71,18,48,49,19,20,21,72,9, + 50,22,23,51,52,53,66,54,55,13, + 24,25,26,56,57,58,42,1,2,43, + 44,12,10,31,32,8,46,4,27,59, + 68,3,0,5,78,75,45,74,6,7, + 3,70,77,79,76,11,73,95,0,14, + 15,16,17,47,71,18,48,49,19,20, + 21,72,9,50,22,23,51,52,53,66, + 54,55,13,24,25,26,56,57,58,42, + 1,2,3,43,44,12,10,31,32,8, + 46,4,27,59,75,0,11,75,73,42, + 0,11,76,73,1,28,0,61,4,1, + 2,6,7,5,75,74,11,0,11,75, + 74,78,0,126,0,4,11,75,74,6, + 7,5,65,0,4,6,7,5,1,2, + 74,11,0,73,92,110,111,112,61,75, + 126,129,80,68,78,69,67,82,84,90, + 88,81,86,87,89,91,74,83,85,45, + 11,62,60,63,64,33,39,40,35,38, + 37,30,34,28,29,5,7,6,36,41, + 66,71,72,48,52,50,47,55,17,26, + 16,22,20,21,23,24,19,18,25,14, + 15,56,57,58,42,54,49,53,3,43, + 44,12,10,31,32,46,51,59,27,13, + 4,9,8,2,1,0,75,95,0,81, + 0,33,34,35,36,37,38,9,39,40, + 66,78,41,30,1,2,70,3,127,113, + 43,44,8,4,74,28,29,97,96,10, + 98,99,31,32,94,93,65,100,101,108, + 109,102,103,12,104,105,106,77,73,128, + 79,115,116,117,118,119,120,121,122,123, + 124,75,95,125,80,107,114,6,7,5, + 76,45,11,0,28,29,66,11,95,73, + 79,76,77,0,14,15,33,16,17,60, + 28,18,62,34,92,35,19,36,37,20, + 21,38,67,39,22,23,40,63,61,41, + 13,64,24,69,30,25,29,26,27,68, + 74,5,11,45,6,7,8,9,1,2, + 4,3,10,12,0,11,76,80,79,0, + 11,75,76,73,3,0,75,5,70,6, + 7,65,11,76,45,79,3,0,11,74, + 76,0,95,9,8,79,77,5,1,2, + 12,10,4,6,7,70,3,73,11,76, + 0,8,9,3,70,10,12,95,14,15, + 5,33,16,17,28,18,62,34,35,19, + 36,37,20,21,38,39,22,23,40,63, + 41,13,64,24,30,25,29,26,1,2, + 4,27,6,7,73,11,60,0,11,74, + 79,0,30,1,2,4,110,111,112,0, 28,29,66,78,77,75,95,73,74,3, - 5,10,76,42,6,7,79,0,10,75, - 76,73,3,0,14,15,16,17,47,71, - 18,48,49,19,20,21,72,9,50,22, - 23,51,52,53,66,54,55,13,24,25, - 26,56,57,58,1,2,3,44,45,12, - 11,40,41,8,46,4,27,59,42,10, - 43,0,75,5,70,6,7,65,10,76, - 42,79,3,0,10,74,76,0,10,74, - 79,0,95,9,8,79,77,5,1,2, - 12,11,4,6,7,70,3,73,10,76, - 0,8,9,3,70,11,12,95,14,15, - 5,31,16,17,28,18,62,32,33,19, - 34,35,20,21,36,37,22,23,38,63, - 39,13,64,24,30,25,29,26,1,2, - 4,27,6,7,73,10,60,0,27,13, - 62,60,63,64,17,26,16,22,20,21, - 23,24,19,18,25,14,15,78,75,95, - 125,80,74,128,127,113,44,45,97,96, - 40,41,98,99,93,94,65,77,100,101, - 102,103,104,105,106,107,114,79,115,116, - 117,118,119,120,121,122,123,124,76,108, - 109,31,28,32,33,34,35,36,37,38, - 39,30,29,42,10,73,70,8,9,3, - 12,1,2,4,6,7,5,11,0,4, - 10,75,74,6,7,5,0,5,31,60, - 28,62,32,33,34,35,36,37,38,63, - 39,64,30,29,6,7,14,15,16,17, + 5,11,76,45,6,7,79,0,4,11, + 75,74,6,7,5,0,27,13,62,60, + 63,64,17,26,16,22,20,21,23,24, + 19,18,25,14,15,78,75,95,125,80, + 74,128,127,113,43,44,97,96,31,32, + 98,99,93,94,65,77,100,101,102,103, + 104,105,106,107,114,79,115,116,117,118, + 119,120,121,122,123,124,76,108,109,33, + 28,34,35,36,37,38,39,40,41,30, + 29,45,11,73,70,8,9,3,12,1, + 2,4,6,7,5,10,0,5,33,60, + 28,62,34,35,36,37,38,39,40,63, + 41,64,30,29,6,7,14,15,16,17, 47,18,48,49,19,20,21,50,22,23, 51,52,53,66,54,55,13,24,25,26, - 56,57,58,43,3,44,45,12,11,40, - 41,46,4,27,59,74,10,9,8,1, - 2,72,71,0,71,72,44,45,12,11, - 40,41,8,46,51,59,27,3,4,9, - 56,57,58,43,54,49,53,17,26,16, + 56,57,58,42,3,43,44,12,10,31, + 32,46,4,27,59,74,11,9,8,1, + 2,72,71,0,71,72,43,44,12,10, + 31,32,8,46,51,59,27,3,4,9, + 56,57,58,42,54,49,53,17,26,16, 22,20,21,23,24,19,18,25,14,15, 13,48,52,50,47,55,70,1,2,0, - 60,28,18,62,32,19,34,35,20,21, - 36,37,22,23,38,63,39,13,64,24, - 30,25,29,26,17,16,31,27,15,14, - 10,3,12,42,69,67,92,33,68,65, - 4,5,11,6,7,9,1,2,61,8, + 60,28,18,62,34,19,36,37,20,21, + 38,39,22,23,40,63,41,13,64,24, + 30,25,29,26,17,16,33,27,15,14, + 11,3,12,45,69,67,92,35,68,65, + 4,5,10,6,7,9,1,2,61,8, 0 }; }; @@ -2431,67 +2452,67 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasb { public final static char nasb[] = {0, - 166,13,94,13,13,13,13,13,13,98, - 13,13,13,177,13,187,267,109,94,94, - 94,94,273,94,94,94,94,94,94,13, + 155,13,90,13,13,13,13,13,13,94, + 13,13,13,25,13,179,264,98,90,90, + 90,90,270,90,90,90,90,90,90,13, 13,13,13,13,13,13,13,13,13,13, - 94,13,94,206,60,60,60,60,109,123, - 231,231,83,5,149,306,13,13,231,277, - 306,306,306,119,1,18,94,114,39,13, - 13,268,13,13,69,69,123,206,94,94, - 94,94,94,94,94,94,94,94,94,94, - 94,94,94,94,94,94,94,94,94,94, - 94,94,94,94,94,94,94,94,94,94, - 48,94,306,13,13,13,13,130,306,55, - 55,294,252,13,13,13,217,252,35,252, - 35,252,11,109,252,94,251,244,149,149, - 55,13,94,294,144,118,89,89,13,13, - 11,109,94,13,203,149,60,137,187,63, - 186,109,186,306,149,13,13,13,13,13, + 90,13,90,207,56,56,56,56,98,81, + 228,228,46,5,140,23,13,13,228,274, + 23,23,23,110,1,198,90,14,44,13, + 13,265,13,13,63,63,81,207,90,90, + 90,90,90,90,90,90,90,90,90,90, + 90,90,90,90,90,90,90,90,90,90, + 90,90,90,90,90,90,90,90,90,90, + 158,90,23,13,13,13,13,120,23,51, + 51,284,249,13,13,13,215,249,40,249, + 40,249,11,98,249,90,248,241,140,140, + 51,13,90,284,135,109,16,16,13,13, + 11,98,90,13,204,140,56,117,179,101, + 178,98,178,23,140,13,13,13,13,13, 13,13,13,13,13,13,13,13,13,13, 13,13,13,13,13,13,13,13,13,13, - 13,192,12,13,13,13,300,260,109,13, - 306,43,13,231,191,98,260,86,98,260, - 109,12,13,13,298,149,13,306,292,231, - 109,39,13,212,13,153,13,221,13,13, - 13,13,213,13,278,219,221,221,76,140, - 278,133,270,94,60,231,21,306,13,12, - 109,174,39,94,94,206,206,206,206,13, - 13,55,35,35,35,126,52,13,306,285, - 192,35,35,13,241,217,231,241,38,192, - 306,13,224,13,197,37,192,13,213,13, - 13,213,24,24,195,13,24,221,221,231, - 28,226,109,13,13,13,98,98,231,306, - 116,300,63,13,277,192,306,306,306,306, - 123,123,13,231,306,13,306,19,109,221, - 13,102,13,13,133,75,285,35,35,231, - 260,231,38,231,278,12,192,231,94,13, - 13,89,89,223,294,197,306,192,213,94, - 213,306,226,306,237,231,13,306,231,16, - 221,35,294,135,13,183,254,109,306,12, - 39,231,67,98,241,241,100,231,160,13, - 206,300,175,13,13,306,306,35,169,126, - 306,94,306,39,231,217,13,13,28,231, - 231,142,142,192,278,19,13,13,169,94, - 94,292,181,231,13,213,13,213,221,29, - 206,213,16,171,105,260,183,137,92,29, - 35,209,197,306,13,13,241,103,187,112, - 13,116,123,94,149,175,231,169,306,187, - 262,231,280,231,221,94,13,14,13,35, - 254,142,142,162,19,94,278,231,255,169, - 94,13,200,221,254,306,171,13,241,13, - 306,231,217,260,306,67,221,13,67,103, - 221,221,60,160,306,149,169,94,221,19, - 13,280,86,280,262,197,29,94,94,260, - 35,254,13,13,98,41,241,151,231,213, - 306,221,231,105,12,123,19,231,231,13, - 306,221,306,306,231,216,13,19,13,13, - 128,128,35,260,233,241,98,98,12,13, - 151,213,100,306,92,169,306,270,270,224, - 280,231,197,280,231,13,13,12,241,241, - 304,112,19,231,262,197,60,60,12,12, - 306,46,91,151,19,13,60,46,13,13, - 128,13,186 + 13,152,12,13,13,13,188,257,98,13, + 23,217,13,228,151,94,257,18,94,257, + 98,12,13,264,13,186,140,13,23,282, + 228,98,44,13,210,13,144,13,31,13, + 13,13,13,211,13,275,29,31,31,74, + 96,275,127,267,90,56,228,114,23,13, + 12,98,183,44,90,90,207,207,207,207, + 13,13,51,40,40,40,164,201,13,23, + 288,152,40,40,13,238,215,228,238,43, + 152,23,23,13,221,13,297,42,152,13, + 211,13,13,211,304,304,295,13,304,31, + 31,228,33,223,98,13,13,13,94,94, + 228,23,105,188,101,13,274,152,23,23, + 23,23,81,81,13,228,23,13,23,199, + 98,31,13,195,13,13,127,73,288,40, + 40,228,257,228,43,228,275,12,152,228, + 90,13,13,16,16,220,284,297,23,152, + 211,90,211,23,223,23,300,228,13,23, + 228,59,31,40,284,123,13,175,251,98, + 23,12,44,228,162,94,238,238,125,228, + 49,13,207,188,184,13,13,23,23,40, + 171,164,23,90,23,44,228,215,13,13, + 33,228,228,133,133,152,275,199,13,13, + 171,90,90,282,173,228,13,211,13,211, + 31,34,207,211,59,168,69,257,175,117, + 88,34,40,192,297,23,13,13,238,196, + 179,61,13,105,81,90,140,184,228,171, + 23,179,259,228,277,228,31,90,13,129, + 13,40,251,133,133,230,199,90,275,228, + 252,171,90,13,84,31,251,23,168,13, + 238,13,23,228,215,257,23,162,31,13, + 162,196,31,31,56,49,23,140,171,90, + 31,199,13,277,18,277,259,297,34,90, + 90,257,40,251,13,13,94,107,238,166, + 228,211,23,31,228,69,12,81,199,228, + 228,13,23,31,23,23,228,214,13,199, + 13,13,131,131,40,257,234,238,94,94, + 12,13,166,211,125,23,88,171,23,267, + 267,221,277,228,297,277,228,13,13,12, + 238,238,21,61,199,228,259,297,56,56, + 12,12,23,142,87,166,199,13,56,142, + 13,13,131,13,178 }; }; public final static char nasb[] = Nasb.nasb; @@ -2500,36 +2521,36 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasr { public final static char nasr[] = {0, 13,3,10,9,162,187,160,131,159,158, - 5,2,0,205,0,170,0,4,81,0, - 4,191,0,4,53,109,0,97,4,5, - 10,9,2,66,41,0,123,2,73,0, - 207,0,215,31,0,173,0,4,44,123, - 0,31,185,0,5,10,9,2,13,4, - 53,0,73,149,148,0,146,0,5,2, - 9,10,150,0,43,5,2,9,10,4, - 169,0,4,209,0,45,1,0,82,0, - 81,139,45,10,9,2,13,5,0,172, - 0,45,110,0,180,5,179,0,2,49, - 0,122,0,189,0,154,0,31,100,101, - 4,0,4,103,0,183,0,114,0,123, - 73,0,167,0,198,0,4,37,0,216, - 0,116,0,13,2,9,10,5,89,0, - 136,0,13,2,9,10,5,218,0,152, - 0,5,108,206,0,4,188,0,69,0, - 45,171,0,2,125,0,4,53,210,0, - 101,100,41,66,68,5,10,9,2,0, - 49,2,3,0,44,195,29,4,0,4, - 192,0,52,45,193,4,44,0,41,73, - 0,81,44,52,74,4,45,0,4,44, - 43,0,31,101,100,66,5,2,9,10, - 4,0,5,108,176,0,53,4,194,0, - 2,67,0,2,5,131,127,128,129,147, - 13,90,0,4,5,10,9,2,66,23, - 0,126,4,52,88,0,53,4,44,45, - 64,0,5,10,9,13,3,1,0,4, - 52,88,94,0,4,52,88,108,50,5, - 0,29,4,5,41,97,0,101,100,41, - 5,68,0,53,4,31,0 + 5,2,0,189,0,82,0,45,1,0, + 50,4,31,0,4,50,210,0,4,43, + 44,0,97,4,5,10,9,2,66,41, + 0,123,2,73,0,4,209,0,152,0, + 5,10,9,2,13,4,50,0,170,0, + 122,0,5,2,9,10,150,0,180,5, + 179,0,44,5,2,9,10,4,169,0, + 4,103,0,4,192,0,81,139,45,10, + 9,2,13,5,0,216,0,2,49,0, + 73,149,148,0,154,0,207,0,31,100, + 101,4,0,4,191,0,4,36,0,123, + 73,0,198,0,172,0,167,0,205,0, + 114,0,116,0,13,2,9,10,5,89, + 0,173,0,13,2,9,10,5,218,0, + 49,2,3,0,4,188,0,4,43,123, + 0,146,0,183,0,136,0,45,171,0, + 70,0,101,100,41,66,69,5,10,9, + 2,0,2,125,0,101,100,41,5,69, + 0,41,73,0,45,110,0,4,81,0, + 31,185,0,53,45,193,4,43,0,81, + 43,53,74,4,45,0,215,31,0,31, + 101,100,66,5,2,9,10,4,0,5, + 108,206,0,5,108,176,0,2,67,0, + 2,5,131,127,128,129,147,13,90,0, + 4,5,10,9,2,66,23,0,126,4, + 53,88,0,50,4,43,45,54,0,5, + 10,9,13,3,1,0,4,53,88,94, + 0,29,4,5,41,97,0,4,53,88, + 108,51,5,0,43,195,29,4,0,50, + 4,194,0,4,50,109,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -2537,11 +2558,11 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TerminalIndex { public final static char terminalIndex[] = {0, - 117,118,2,31,50,128,129,13,83,119, - 10,9,104,48,49,52,56,64,72,78, + 117,118,2,31,50,128,129,13,83,10, + 119,9,104,48,49,52,56,64,72,78, 79,90,91,106,109,111,126,58,110,108, - 51,68,70,74,77,80,87,93,102,11, - 12,124,116,7,8,14,59,65,71,88, + 11,12,51,68,70,74,77,80,87,93, + 102,116,7,8,124,14,59,65,71,88, 92,94,98,101,103,113,114,115,127,57, 97,67,95,105,19,99,81,130,107,1, 62,82,122,125,30,44,20,100,33,123, @@ -2560,10 +2581,10 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 138,143,144,0,0,142,0,0,237,243, 141,0,151,140,0,0,150,156,0,0, 157,166,252,0,0,0,167,168,188,169, - 134,170,171,172,173,174,159,175,176,0, - 253,149,136,139,137,177,0,146,145,185, - 0,0,160,0,0,0,0,0,0,212, - 0,0,0,180,209,213,0,163,194,153, + 134,170,171,172,173,159,174,175,176,0, + 253,149,139,136,137,177,0,146,145,160, + 185,0,0,180,0,0,0,0,0,0, + 212,0,0,0,209,213,0,153,163,194, 183,0,0,179,0,0,0,0,0,0, 135,214,0,0,0,0,0,0,133,193, 0,0,165,186,0,0,210,220,216,217, @@ -2587,20 +2608,21 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopePrefix { public final static char scopePrefix[] = { - 236,673,692,386,624,640,651,662,467,344, - 358,380,402,420,104,369,487,525,244,681, - 575,82,113,133,142,147,152,207,272,375, - 413,428,433,57,221,350,364,599,89,221, - 477,433,700,89,294,325,1,53,65,76, - 123,138,168,438,456,460,543,568,620,710, - 714,718,159,69,159,505,521,534,552,612, - 178,178,306,534,631,647,658,669,284,586, - 13,25,48,118,118,233,299,7,118,320, - 341,7,7,118,464,565,572,233,118,733, - 7,42,172,442,509,549,559,118,187,393, - 442,187,187,393,496,254,18,18,33,166, - 33,33,33,33,547,722,729,18,18,37, - 315,722,729,127,515,214,166,315,166,330 + 240,677,696,390,628,644,655,666,471,348, + 362,384,406,424,108,373,491,529,248,685, + 579,86,117,137,146,151,156,211,276,379, + 417,432,437,61,225,354,368,603,93,225, + 481,437,704,93,298,329,1,37,57,69, + 80,127,142,172,442,460,464,547,572,624, + 714,718,722,163,73,163,509,525,538,556, + 616,182,182,310,538,635,651,662,673,288, + 590,13,25,54,122,122,237,303,7,122, + 324,345,7,7,122,468,569,576,237,122, + 737,7,48,176,446,513,553,563,122,191, + 397,446,191,191,397,500,258,18,18,33, + 170,33,33,33,33,551,726,733,18,18, + 43,319,726,733,131,519,218,170,319,170, + 334 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2608,20 +2630,21 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeSuffix { public final static char scopeSuffix[] = { - 80,51,51,212,51,51,51,51,474,212, - 157,212,212,426,110,355,493,531,250,129, - 581,87,87,87,121,121,157,212,277,212, - 418,418,426,62,226,355,163,604,100,229, - 482,687,705,94,288,288,5,51,51,80, - 51,121,157,418,157,157,212,323,51,51, - 51,323,731,73,163,474,474,474,556,604, - 182,196,310,538,635,635,635,635,288,590, - 16,16,51,121,121,51,51,302,304,323, - 51,5,5,304,157,51,323,51,597,51, - 10,45,175,445,512,45,562,616,182,408, - 607,190,201,396,499,257,23,31,35,157, - 448,450,452,454,157,724,724,20,28,39, - 317,726,726,129,517,216,279,310,264,332 + 84,41,41,216,41,41,41,41,478,216, + 161,216,216,430,114,359,497,535,254,133, + 585,91,91,91,125,125,161,216,281,216, + 422,422,430,66,230,359,167,608,104,233, + 486,691,709,98,292,292,5,41,41,41, + 84,41,125,161,422,161,161,216,327,41, + 41,41,327,735,77,167,478,478,478,560, + 608,186,200,314,542,639,639,639,639,292, + 594,16,16,41,125,125,41,41,306,308, + 327,41,5,5,308,161,41,327,41,601, + 41,10,51,179,449,516,51,566,620,186, + 412,611,194,205,400,503,261,23,31,35, + 161,452,454,456,458,161,728,728,20,28, + 45,321,730,730,133,521,220,283,314,268, + 336 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2629,20 +2652,21 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLhs { public final static char scopeLhs[] = { - 50,17,17,129,17,17,17,17,77,96, - 51,86,129,128,83,57,77,76,50,17, - 19,3,7,8,176,176,175,127,50,87, - 128,128,130,24,138,58,51,150,143,138, - 77,17,17,143,102,59,71,182,145,80, - 179,176,175,130,196,55,64,154,17,17, - 17,17,12,122,175,77,76,76,40,150, - 140,140,68,76,17,17,17,17,102,19, - 117,135,16,180,176,198,100,107,61,82, - 60,169,71,130,78,155,154,189,150,16, - 71,75,175,130,109,75,21,150,140,129, - 150,140,140,129,77,50,117,135,187,175, - 161,160,159,158,72,148,49,117,135,218, - 68,148,49,179,109,127,50,68,50,59 + 51,17,17,129,17,17,17,17,77,96, + 52,86,129,128,83,58,77,76,51,17, + 19,3,7,8,176,176,175,127,51,87, + 128,128,130,24,138,59,52,150,143,138, + 77,17,17,143,102,60,71,147,182,145, + 80,179,176,175,130,196,56,54,154,17, + 17,17,17,12,122,175,77,76,76,40, + 150,140,140,69,76,17,17,17,17,102, + 19,117,135,16,180,176,198,100,107,62, + 82,61,169,71,130,78,155,154,189,150, + 16,71,75,175,130,109,75,21,150,140, + 129,150,140,140,129,77,51,117,135,187, + 175,161,160,159,158,72,148,49,117,135, + 218,69,148,49,179,109,127,51,69,51, + 60 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2651,19 +2675,20 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLa { public final static char scopeLa[] = { 126,73,73,80,73,73,73,73,73,80, - 42,80,80,1,77,1,73,129,74,3, - 73,77,77,77,1,1,42,80,74,80, + 45,80,80,1,77,1,73,129,74,3, + 73,77,77,77,1,1,45,80,74,80, 1,1,1,73,80,1,1,4,77,76, - 42,1,1,77,73,73,1,73,73,126, - 73,1,42,1,42,42,80,125,73,73, - 73,125,1,73,1,73,73,73,75,4, - 1,1,11,73,77,77,77,77,73,3, - 6,6,73,1,1,73,73,3,1,125, - 73,1,1,1,42,73,125,73,8,73, - 6,75,1,61,79,75,73,1,1,74, - 61,1,1,1,81,78,1,1,27,42, - 1,62,60,60,42,4,4,1,1,95, - 12,4,4,3,1,74,1,11,1,3 + 45,1,1,77,73,73,1,73,73,73, + 126,73,1,45,1,45,45,80,125,73, + 73,73,125,1,73,1,73,73,73,75, + 4,1,1,10,73,77,77,77,77,73, + 3,6,6,73,1,1,73,73,3,1, + 125,73,1,1,1,45,73,125,73,8, + 73,6,75,1,61,79,75,73,1,1, + 74,61,1,1,1,81,78,1,1,27, + 45,1,62,60,60,45,4,4,1,1, + 95,12,4,4,3,1,74,1,10,1, + 3 }; }; public final static char scopeLa[] = ScopeLa.scopeLa; @@ -2671,20 +2696,21 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeStateSet { public final static char scopeStateSet[] = { - 97,315,315,137,315,315,315,315,107,42, - 97,40,137,137,40,99,107,107,97,315, - 315,242,286,286,9,9,37,137,97,40, - 137,137,137,141,388,99,97,120,5,388, - 107,315,315,5,129,54,60,51,1,107, - 12,9,37,137,95,99,222,25,315,315, - 315,315,290,18,37,107,107,107,353,120, - 137,137,182,107,315,315,315,315,129,315, - 70,28,315,12,9,23,129,131,54,125, - 54,75,60,137,107,15,25,123,120,315, - 60,107,37,137,32,107,320,120,137,137, - 120,137,137,137,107,97,70,28,138,37, - 138,138,138,138,83,80,198,70,28,78, - 182,80,198,12,32,137,97,182,97,54 + 97,316,316,137,316,316,316,316,107,42, + 97,40,137,137,40,99,107,107,97,316, + 316,243,287,287,9,9,37,137,97,40, + 137,137,137,141,389,99,97,120,5,389, + 107,316,316,5,129,54,60,137,51,1, + 107,12,9,37,137,95,99,222,25,316, + 316,316,316,291,18,37,107,107,107,354, + 120,137,137,182,107,316,316,316,316,129, + 316,70,28,316,12,9,23,129,131,54, + 125,54,75,60,137,107,15,25,123,120, + 316,60,107,37,137,32,107,321,120,137, + 137,120,137,137,137,107,97,70,28,138, + 37,138,138,138,138,83,80,198,70,28, + 78,182,80,198,12,32,137,97,182,97, + 54 }; }; public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet; @@ -2695,77 +2721,77 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 171,227,134,0,209,0,227,134,0,253, 209,0,247,171,0,253,0,171,0,232, 253,0,232,0,201,171,0,183,253,0, - 183,0,292,0,259,0,223,0,32,165, - 0,348,83,0,30,179,0,194,3,0, - 134,0,344,3,313,0,343,3,3,6, - 0,134,134,0,342,3,66,0,341,3, - 126,0,134,180,0,134,194,78,0,224, - 0,271,134,65,132,0,20,0,311,134, - 65,61,0,20,57,0,33,140,0,20, - 57,0,0,311,134,65,61,218,0,20, - 186,0,271,134,65,140,0,197,135,0, - 149,0,233,3,310,0,310,0,2,0, - 134,0,271,134,65,139,0,197,135,238, - 0,197,135,30,238,0,197,135,337,30, - 0,136,203,179,135,0,136,0,203,179, - 135,0,142,136,0,182,0,333,134,182, - 0,134,182,0,230,136,0,179,332,261, - 0,144,0,0,0,0,332,261,0,145, - 144,0,0,0,0,143,0,0,0,0, - 145,143,0,0,0,0,331,134,175,270, - 0,135,0,270,0,137,0,0,135,0, - 330,134,175,269,0,135,0,0,44,135, - 0,0,167,3,0,134,301,300,134,78, - 299,182,0,300,134,78,299,182,0,223, - 0,224,0,299,182,0,100,0,0,223, - 0,224,0,211,100,0,0,223,0,224, - 0,300,134,299,182,0,223,0,211,0, - 0,223,0,241,134,3,0,134,0,0, - 0,0,0,241,134,3,230,0,237,3, - 0,216,0,154,0,192,179,135,0,10, - 0,0,0,0,192,0,9,0,0,223, - 70,0,133,0,241,134,3,190,0,190, - 0,2,0,0,134,0,0,0,0,0, - 201,3,0,254,134,175,43,33,0,197, - 135,67,69,0,204,136,0,136,197,135, - 297,69,0,197,135,297,69,0,197,135, - 79,131,67,0,254,134,175,67,0,254, - 134,175,240,67,0,295,134,175,131,327, - 62,0,327,62,0,138,137,0,0,135, - 0,295,134,175,327,62,0,137,0,0, - 135,0,197,135,294,62,0,143,0,203, - 197,135,294,261,0,144,0,197,135,294, - 261,0,203,179,135,13,0,179,135,13, - 0,179,135,0,97,144,0,200,0,199, - 0,198,0,197,0,287,134,159,0,287, - 134,182,0,174,90,0,322,173,324,325, - 3,87,0,134,179,0,324,325,3,87, - 0,136,0,134,179,0,174,3,81,204, - 86,0,134,136,0,204,86,0,112,2, - 139,134,136,0,239,3,81,0,201,183, - 0,33,177,0,183,0,183,33,177,0, - 239,3,91,0,204,161,239,3,89,0, - 66,179,0,239,3,89,0,134,179,66, - 179,0,323,134,175,0,174,0,223,83, - 0,174,114,169,0,30,177,0,200,3, - 0,134,157,0,233,3,0,223,70,284, - 0,174,70,0,200,3,319,72,135,0, - 134,0,0,0,0,319,72,135,0,2, - 153,134,0,0,0,0,155,0,133,61, - 179,135,0,31,155,0,97,144,31,155, - 0,234,197,135,0,154,31,155,0,174, - 3,55,0,174,3,77,200,65,47,0, - 200,65,47,0,20,2,139,134,0,174, - 3,77,200,65,50,0,200,65,50,0, - 174,3,77,200,65,52,0,200,65,52, - 0,174,3,77,200,65,48,0,200,65, - 48,0,233,3,133,203,179,135,13,0, - 133,203,179,135,13,0,144,2,0,134, - 0,233,3,132,253,179,135,13,0,253, - 179,135,13,0,143,2,0,134,0,233, - 3,143,0,233,3,147,0,174,70,147, - 0,279,0,31,0,31,147,0,178,0, - 142,0,174,3,0 + 183,0,292,0,259,0,198,3,27,0, + 134,0,223,0,32,165,0,348,83,0, + 30,179,0,184,3,0,344,3,313,0, + 343,3,3,6,0,134,134,0,342,3, + 66,0,341,3,126,0,134,180,0,134, + 184,78,0,224,0,271,134,65,132,0, + 20,0,311,134,65,61,0,20,57,0, + 33,140,0,20,57,0,0,311,134,65, + 61,218,0,20,186,0,271,134,65,140, + 0,197,135,0,149,0,233,3,310,0, + 310,0,2,0,134,0,271,134,65,139, + 0,197,135,238,0,197,135,30,238,0, + 197,135,337,30,0,136,203,179,135,0, + 136,0,203,179,135,0,142,136,0,183, + 0,333,134,183,0,134,183,0,230,136, + 0,179,332,261,0,144,0,0,0,0, + 332,261,0,145,144,0,0,0,0,143, + 0,0,0,0,145,143,0,0,0,0, + 331,134,175,270,0,135,0,270,0,137, + 0,0,135,0,330,134,175,269,0,135, + 0,0,44,135,0,0,166,3,0,134, + 301,300,134,78,299,183,0,300,134,78, + 299,183,0,223,0,224,0,299,183,0, + 100,0,0,223,0,224,0,211,100,0, + 0,223,0,224,0,300,134,299,183,0, + 223,0,211,0,0,223,0,241,134,3, + 0,134,0,0,0,0,0,241,134,3, + 230,0,237,3,0,216,0,154,0,193, + 179,135,0,10,0,0,0,0,193,0, + 9,0,0,223,70,0,133,0,241,134, + 3,191,0,191,0,2,0,0,134,0, + 0,0,0,0,201,3,0,254,134,175, + 42,35,0,197,135,67,69,0,204,136, + 0,136,197,135,297,69,0,197,135,297, + 69,0,197,135,79,131,67,0,254,134, + 175,67,0,254,134,175,240,67,0,295, + 134,175,131,327,62,0,327,62,0,138, + 137,0,0,135,0,295,134,175,327,62, + 0,137,0,0,135,0,197,135,294,62, + 0,143,0,203,197,135,294,261,0,144, + 0,197,135,294,261,0,203,179,135,13, + 0,179,135,13,0,179,135,0,97,144, + 0,200,0,199,0,198,0,197,0,287, + 134,159,0,287,134,183,0,173,90,0, + 322,174,324,325,3,87,0,134,179,0, + 324,325,3,87,0,136,0,134,179,0, + 173,3,81,204,86,0,134,136,0,204, + 86,0,112,2,139,134,136,0,239,3, + 81,0,201,180,0,33,177,0,180,0, + 183,33,177,0,239,3,91,0,204,161, + 239,3,89,0,66,179,0,239,3,89, + 0,134,179,66,179,0,323,134,175,0, + 173,0,223,83,0,173,114,169,0,30, + 177,0,198,3,0,134,157,0,233,3, + 0,223,70,284,0,173,70,0,198,3, + 319,72,135,0,134,0,0,0,0,319, + 72,135,0,2,153,134,0,0,0,0, + 155,0,133,61,179,135,0,31,155,0, + 97,144,31,155,0,234,197,135,0,154, + 31,155,0,173,3,55,0,173,3,77, + 198,65,47,0,198,65,47,0,20,2, + 139,134,0,173,3,77,198,65,50,0, + 198,65,50,0,173,3,77,198,65,52, + 0,198,65,52,0,173,3,77,198,65, + 48,0,198,65,48,0,233,3,133,203, + 179,135,13,0,133,203,179,135,13,0, + 144,2,0,134,0,233,3,132,253,179, + 135,13,0,253,179,135,13,0,143,2, + 0,134,0,233,3,143,0,233,3,147, + 0,173,70,147,0,279,0,31,0,31, + 147,0,178,0,142,0,173,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2773,46 +2799,46 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 2923,2699,2198,0,5708,3685,4775,0,3687,2272, - 0,2442,1222,0,2608,2261,0,2480,1759,1352, - 1107,0,1889,0,2362,1461,0,3185,3016,655, - 0,3785,5771,5770,645,0,5751,5710,0,5751, - 5710,4915,5536,5487,4853,5472,5423,5374,4837,0, - 1152,1574,0,5381,3672,2970,2860,963,5717,4556, - 4789,3185,3016,4762,5688,3657,5675,655,3644,3356, - 3284,3212,2721,0,963,5717,0,2235,0,877, - 805,0,4475,4414,4353,4292,4231,4170,4109,4048, - 3987,3926,3562,3501,3347,0,5751,5710,4915,5536, - 5487,4853,5472,5423,5374,4837,4475,4414,4353,4292, - 4231,4170,4109,4048,3987,3926,3562,3501,0,2998, - 890,0,1353,0,1951,1281,1058,1052,2970,5847, - 4556,3657,3644,1462,4171,0,4734,600,2751,0, - 4363,6116,3356,5933,4240,3284,4058,4789,5381,3212, - 4964,3560,4293,3185,3729,3016,5394,4762,935,3446, - 6112,6085,4844,3280,4473,4300,3994,3179,2960,725, - 4734,3242,4110,4049,3037,3988,2693,3314,2825,600, - 2751,3672,2970,5840,2721,5979,2860,5972,5968,5939, - 655,5763,5847,6019,5893,3274,0,6102,6076,6052, - 6048,6026,6015,5855,5742,5448,4155,5396,4829,4434, - 3699,3547,3410,3118,3227,4373,4312,4190,2736,1306, - 0,1935,1404,4475,4414,4131,2788,4353,4292,4231, - 4170,4109,4048,3987,1157,3926,3562,3501,2705,4898, - 0,2650,2561,6102,6076,2533,2472,6052,1273,6048, - 6026,6015,1660,5855,5742,2278,5448,1641,1382,4155, - 1176,1144,5396,1126,1095,4829,4434,859,2887,3699, - 3372,3547,651,3410,3118,3227,813,4373,4312,4734, - 4190,670,2751,2736,1306,2429,1450,1292,735,819, - 4556,3356,3284,4789,5381,3212,3185,3672,3016,2970, - 2721,4762,2860,5688,3657,963,5675,655,3644,5717, - 1036,700,2998,890,5654,5633,5595,4634,3509,5352, - 5330,1153,2794,3083,2934,3476,3423,3125,4659,4569, - 3932,3901,3870,3839,3791,3760,5065,5042,5012,4711, - 4688,5308,5286,5264,5242,5220,5198,5176,5154,5132, - 5110,5088,2668,2627,1519,2387,2579,2538,2490,1470, - 1408,1250,2449,1359,981,2339,2291,2235,2194,909, - 836,764,2146,2098,2050,2002,1954,1906,1858,1810, - 1762,1714,1666,600,1618,1570,1311,1103,1054,1198, - 0 + 3420,3335,2703,0,6047,3336,3701,0,3842,3836, + 0,1224,903,0,2416,755,0,2630,3341,883, + 1625,0,1572,0,2745,1317,0,3199,3001,656, + 0,5955,6087,6068,5956,0,5721,5715,0,5721, + 5715,4958,5568,5507,4944,5493,5432,5418,4843,0, + 2337,2697,0,4826,3686,2974,2864,962,5448,4601, + 4910,3199,3001,4798,5699,3671,5686,656,3658,3370, + 3298,3226,2725,0,962,5448,0,2239,0,1397, + 1311,0,4520,4459,4398,4337,4276,4215,4154,4093, + 4032,3971,3576,3515,5907,0,5721,5715,4958,5568, + 5507,4944,5493,5432,5418,4843,4520,4459,4398,4337, + 4276,4215,4154,4093,4032,3971,3576,3515,0,3397, + 887,0,630,0,2530,2525,1099,642,2974,3248, + 4601,3671,3658,1354,1047,0,4750,601,2755,0, + 3690,5035,3370,4789,3618,3298,2964,4910,4826,3226, + 4770,3255,4529,3199,2911,3001,4519,4798,2837,2738, + 4468,4407,4346,4285,4039,3583,3575,2423,1440,720, + 4750,726,4155,4094,3221,4033,2868,3331,2830,601, + 2755,3686,2974,5789,2725,5905,2864,5898,5851,5843, + 656,5713,3248,5940,5816,4756,0,6041,6033,6029, + 6025,6021,6013,5970,5729,4940,2096,4479,4418,4357, + 2000,1904,1808,2338,1712,4296,4235,4174,1615,1307, + 0,3700,2795,4520,4459,3557,2852,4398,4337,4276, + 4215,4154,4093,4032,2744,3971,3576,5933,3515,2739, + 5021,0,2536,2476,6041,6033,2280,2192,6029,934, + 6025,6021,6013,1885,5970,5729,3216,4940,1837,1789, + 2096,1741,1693,4479,1644,1513,4418,4357,1248,3212, + 2000,3016,1904,2221,1808,2338,1712,807,4296,4235, + 4750,4174,733,2755,1615,1307,3044,2713,2434,1295, + 701,4601,3370,3298,4910,4826,3226,3199,3686,3001, + 2974,2725,4798,2864,5699,3671,962,5686,656,3658, + 5448,1033,820,3397,887,5665,5628,4679,3523,3137, + 5396,5374,1155,2799,3077,2938,3490,3437,3165,4614, + 3977,3946,3915,3884,3853,3805,3774,5131,5108,5085, + 4727,4704,5352,5330,5308,5286,5264,5242,5220,5198, + 5176,5154,3112,2672,2631,1522,2392,2583,2542,2494, + 1472,1411,1253,2453,1361,980,2344,2296,2239,2198, + 911,834,765,2150,2102,2054,2006,1958,1910,1862, + 1814,1766,1718,1670,601,1621,1573,1313,1105,1057, + 1200,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2822,65 +2848,65 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final static char inSymb[] = {0, 0,318,134,286,55,47,50,52,48,13, 143,132,139,9,140,4,3,135,27,59, - 51,46,8,41,40,11,12,45,44,147, - 152,158,157,162,160,164,163,166,165,168, + 51,46,8,32,31,10,12,44,43,147, + 152,158,157,162,160,164,163,167,165,168, 66,169,76,3,65,65,65,65,135,3, - 65,65,183,134,70,3,71,72,65,8, - 194,200,174,183,134,175,71,72,179,178, + 65,65,180,134,70,3,71,72,65,8, + 184,198,173,180,134,175,71,72,179,178, 132,3,131,133,113,127,3,70,96,97, - 41,40,99,98,11,109,108,101,100,77, + 32,31,99,98,10,109,108,101,100,77, 65,93,94,12,103,102,105,104,106,124, 123,122,121,120,119,118,117,116,115,79, - 114,107,174,200,200,200,200,179,233,134, + 114,107,173,198,198,198,198,179,233,134, 134,134,288,6,7,5,270,289,261,290, 62,291,13,135,317,27,293,292,70,70, 134,132,161,134,70,3,231,230,133,132, 13,135,27,143,134,70,319,3,203,4, - 61,135,61,233,174,157,157,152,152,152, + 61,135,61,233,173,157,157,152,152,152, 160,160,160,160,160,160,158,158,163,162, - 162,165,164,166,253,174,168,77,77,77, - 77,203,253,271,274,271,227,171,135,192, + 162,165,164,167,253,173,168,77,77,77, + 77,203,253,271,274,271,227,171,135,193, 3,3,3,175,332,294,171,327,294,171, - 135,197,179,271,227,223,169,237,134,3, - 135,179,148,323,85,83,1,174,10,91, - 89,87,86,81,88,90,84,82,182,5, - 67,69,78,219,3,320,183,167,279,203, - 135,197,179,75,75,3,3,3,3,133, - 132,76,179,12,11,3,345,1,43,134, - 179,244,133,132,135,131,175,135,179,61, - 241,242,159,243,134,179,61,10,75,348, - 223,75,3,3,3,204,3,131,174,299, - 134,3,135,190,346,131,67,297,194,200, - 134,134,4,234,8,61,174,174,174,174, - 3,3,192,192,343,313,3,331,135,180, - 238,67,61,218,69,182,334,133,132,245, - 171,245,197,175,134,197,203,161,79,237, - 201,196,190,3,134,76,241,203,75,95, - 75,239,183,239,325,159,81,239,78,134, - 287,201,134,265,298,227,171,135,201,197, - 179,3,3,79,135,135,134,161,281,284, - 70,198,4,131,133,233,233,11,134,76, - 161,3,1,179,175,240,65,61,134,245, - 245,134,134,203,134,295,131,296,134,79, - 79,134,227,161,133,161,201,161,324,134, - 3,161,134,300,75,171,227,3,79,76, - 201,179,134,347,43,276,135,197,197,302, - 126,134,3,70,174,4,192,199,344,203, - 134,175,77,65,333,75,249,201,132,247, - 171,134,134,75,295,79,76,235,171,134, - 79,204,173,287,171,174,300,309,135,310, - 167,175,269,171,241,75,161,3,76,197, - 240,136,3,281,233,223,134,76,136,254, - 33,61,67,256,134,134,76,75,79,171, - 247,171,153,336,238,30,135,134,235,129, - 322,161,301,76,197,3,134,175,161,11, - 1,240,95,341,183,43,131,254,311,61, - 13,60,247,171,76,135,30,337,197,66, - 134,161,134,233,134,134,1,161,161,134, - 134,175,76,77,65,244,244,197,135,135, - 3,302,330,235,134,134,79,79,197,197, - 342,211,76,134,254,311,76,211,10,77, - 60,244,79 + 135,197,179,3,271,227,223,169,237,134, + 3,135,179,148,323,85,83,1,173,11, + 91,89,87,86,81,88,90,84,82,183, + 5,67,69,78,219,3,320,180,166,279, + 203,135,197,179,75,75,3,3,3,3, + 133,132,76,179,12,10,3,345,1,42, + 134,179,244,133,132,135,131,175,135,179, + 61,198,241,242,159,243,134,179,61,11, + 75,348,223,75,3,3,3,204,3,131, + 173,299,134,3,135,191,346,131,67,297, + 184,198,134,134,4,234,8,61,173,173, + 173,173,3,3,193,193,343,313,3,331, + 135,181,238,67,61,218,69,183,334,133, + 132,245,171,245,197,175,134,197,203,161, + 79,237,201,196,191,3,134,76,241,203, + 75,95,75,239,180,239,325,159,81,239, + 78,134,287,201,134,265,298,227,171,135, + 201,197,179,3,3,79,135,135,134,161, + 281,284,70,199,4,131,133,233,233,10, + 134,76,161,3,1,179,175,240,65,61, + 134,245,245,134,134,203,134,295,131,296, + 134,79,79,134,227,161,133,161,201,161, + 324,134,3,161,134,300,75,171,227,3, + 79,76,201,179,134,347,42,276,135,197, + 197,302,126,134,3,70,173,4,193,200, + 344,203,134,175,77,65,333,75,249,201, + 132,247,171,134,134,75,295,79,76,235, + 171,134,79,204,174,287,171,173,300,309, + 135,310,166,175,269,171,241,75,161,3, + 76,197,240,136,3,281,233,223,134,76, + 136,254,35,61,67,256,134,134,76,75, + 79,171,247,171,153,336,238,30,135,134, + 235,129,322,161,301,76,197,3,134,175, + 161,10,1,240,95,341,180,42,131,254, + 311,61,13,60,247,171,76,135,30,337, + 197,66,134,161,134,233,134,134,1,161, + 161,134,134,175,76,77,65,244,244,197, + 135,135,3,302,330,235,134,134,79,79, + 197,197,342,211,76,134,254,311,76,211, + 11,77,60,244,79 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -3163,8 +3189,8 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final static int ERROR_SYMBOL = 68, - SCOPE_UBOUND = 139, - SCOPE_SIZE = 140, + SCOPE_UBOUND = 140, + SCOPE_SIZE = 141, MAX_NAME_LENGTH = 37; public final int getErrorSymbol() { return ERROR_SYMBOL; } @@ -3173,20 +3199,20 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 603, + NUM_STATES = 605, NT_OFFSET = 130, - LA_STATE_OFFSET = 7647, + LA_STATE_OFFSET = 7649, MAX_LA = 2147483647, - NUM_RULES = 599, + NUM_RULES = 600, NUM_NONTERMINALS = 222, NUM_SYMBOLS = 352, SEGMENT_SIZE = 8192, - START_STATE = 2711, + START_STATE = 2385, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 128, EOLT_SYMBOL = 128, - ACCEPT_ACTION = 6229, - ERROR_ACTION = 7048; + ACCEPT_ACTION = 6230, + ERROR_ACTION = 7049; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParsersym.java index 9ac8b182222..4c462a29c97 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParsersym.java @@ -18,7 +18,7 @@ public interface GPPSizeofExpressionParsersym { TK__Complex = 14, TK__Imaginary = 15, TK_asm = 5, - TK_auto = 31, + TK_auto = 33, TK_bool = 16, TK_break = 82, TK_case = 83, @@ -35,32 +35,32 @@ public interface GPPSizeofExpressionParsersym { TK_dynamic_cast = 48, TK_else = 129, TK_enum = 62, - TK_explicit = 32, + TK_explicit = 34, TK_export = 92, - TK_extern = 33, + TK_extern = 35, TK_false = 49, TK_float = 19, TK_for = 87, - TK_friend = 34, + TK_friend = 36, TK_goto = 88, TK_if = 89, - TK_inline = 35, + TK_inline = 37, TK_int = 20, TK_long = 21, - TK_mutable = 36, + TK_mutable = 38, TK_namespace = 67, TK_new = 72, TK_operator = 9, TK_private = 110, TK_protected = 111, TK_public = 112, - TK_register = 37, + TK_register = 39, TK_reinterpret_cast = 50, TK_return = 90, TK_short = 22, TK_signed = 23, TK_sizeof = 51, - TK_static = 38, + TK_static = 40, TK_static_cast = 52, TK_struct = 63, TK_switch = 91, @@ -69,7 +69,7 @@ public interface GPPSizeofExpressionParsersym { TK_throw = 66, TK_try = 78, TK_true = 54, - TK_typedef = 39, + TK_typedef = 41, TK_typeid = 55, TK_typename = 13, TK_union = 64, @@ -83,10 +83,10 @@ public interface GPPSizeofExpressionParsersym { TK_integer = 56, TK_floating = 57, TK_charconst = 58, - TK_stringlit = 43, + TK_stringlit = 42, TK_identifier = 1, TK_Completion = 2, - TK_EndOfCompletion = 10, + TK_EndOfCompletion = 11, TK_Invalid = 130, TK_LeftBracket = 70, TK_LeftParen = 3, @@ -94,12 +94,12 @@ public interface GPPSizeofExpressionParsersym { TK_DotStar = 97, TK_Arrow = 113, TK_ArrowStar = 96, - TK_PlusPlus = 44, - TK_MinusMinus = 45, + TK_PlusPlus = 43, + TK_MinusMinus = 44, TK_And = 12, - TK_Star = 11, - TK_Plus = 40, - TK_Minus = 41, + TK_Star = 10, + TK_Plus = 31, + TK_Minus = 32, TK_Tilde = 8, TK_Bang = 46, TK_Slash = 98, @@ -135,7 +135,7 @@ public interface GPPSizeofExpressionParsersym { TK_RightBracket = 125, TK_RightParen = 73, TK_RightBrace = 80, - TK_SemiColon = 42, + TK_SemiColon = 45, TK_LeftBrace = 74, TK_typeof = 27, TK___alignof__ = 59, @@ -157,8 +157,8 @@ public interface GPPSizeofExpressionParsersym { "__declspec", "Tilde", "operator", - "EndOfCompletion", "Star", + "EndOfCompletion", "And", "typename", "_Complex", @@ -178,6 +178,8 @@ public interface GPPSizeofExpressionParsersym { "const", "volatile", "virtual", + "Plus", + "Minus", "auto", "explicit", "extern", @@ -187,12 +189,10 @@ public interface GPPSizeofExpressionParsersym { "register", "static", "typedef", - "Plus", - "Minus", - "SemiColon", "stringlit", "PlusPlus", "MinusMinus", + "SemiColon", "Bang", "const_cast", "dynamic_cast", diff --git a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCExpressionParser.g b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCExpressionParser.g index 5aebaa7dbc6..b7be58100af 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCExpressionParser.g +++ b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCExpressionParser.g @@ -11,7 +11,7 @@ %options la=2 %options package=org.eclipse.cdt.internal.core.dom.parser.upc -%options template=FixedBtParserTemplateD.g +%options template=LRSecondaryParserTemplate.g $Import diff --git a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCNoCastExpressionParser.g b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCNoCastExpressionParser.g index c17364f890d..635c9aee76c 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCNoCastExpressionParser.g +++ b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCNoCastExpressionParser.g @@ -11,7 +11,7 @@ %options la=2 %options package=org.eclipse.cdt.internal.core.dom.parser.upc -%options template=FixedBtParserTemplateD.g +%options template=LRSecondaryParserTemplate.g $Import diff --git a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCParser.g b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCParser.g index ea1e78c3a89..8f4d84d2563 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCParser.g +++ b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCParser.g @@ -11,7 +11,7 @@ %options la=2 %options package=org.eclipse.cdt.internal.core.dom.parser.upc -%options template=FixedBtParserTemplateD.g +%options template=LRParserTemplate.g $Import diff --git a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCSizeofExpressionParser.g b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCSizeofExpressionParser.g index 19e61f3af6a..564b1637ca5 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCSizeofExpressionParser.g +++ b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCSizeofExpressionParser.g @@ -11,7 +11,7 @@ %options la=2 %options package=org.eclipse.cdt.internal.core.dom.parser.upc -%options template=FixedBtParserTemplateD.g +%options template=LRSecondaryParserTemplate.g $Import diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCParserAction.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCParserAction.java index aa5875b8375..5900bd8747f 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCParserAction.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCParserAction.java @@ -23,7 +23,7 @@ import org.eclipse.cdt.core.dom.ast.IASTStatement; import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression; import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression; import org.eclipse.cdt.core.dom.ast.c.ICASTDeclSpecifier; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.core.dom.lrparser.action.ISecondaryParserFactory; import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack; import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction; @@ -48,7 +48,7 @@ public class UPCParserAction extends C99BuildASTParserAction { * @param parser * @param tu */ - public UPCParserAction(IParserActionTokenProvider parser, ScopedStack astStack, IUPCNodeFactory nodeFactory, ISecondaryParserFactory parserFactory) { + public UPCParserAction(ITokenStream parser, ScopedStack astStack, IUPCNodeFactory nodeFactory, ISecondaryParserFactory parserFactory) { super(parser, astStack, nodeFactory, parserFactory); this.nodeFactory = nodeFactory; nodeFactory.setUseC99SizeofExpressions(); diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCSecondaryParserFactory.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCSecondaryParserFactory.java index 216d356c470..4f3e79c7b05 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCSecondaryParserFactory.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCSecondaryParserFactory.java @@ -11,10 +11,13 @@ package org.eclipse.cdt.core.dom.parser.upc; +import java.util.Set; + import org.eclipse.cdt.core.dom.ast.IASTExpression; import org.eclipse.cdt.core.dom.lrparser.IParser; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser; import org.eclipse.cdt.core.dom.lrparser.action.ISecondaryParserFactory; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.internal.core.dom.parser.upc.UPCExpressionParser; import org.eclipse.cdt.internal.core.dom.parser.upc.UPCNoCastExpressionParser; import org.eclipse.cdt.internal.core.dom.parser.upc.UPCSizeofExpressionParser; @@ -27,16 +30,16 @@ public class UPCSecondaryParserFactory implements ISecondaryParserFactory{ return DEFAULT_INSTANCE; } - public IParser getExpressionParser(IParserActionTokenProvider parser) { - return new UPCExpressionParser(parser); + public ISecondaryParser getExpressionParser(ITokenStream stream, Set options) { + return new UPCExpressionParser(stream, options); } - public IParser getNoCastExpressionParser(IParserActionTokenProvider parser) { - return new UPCNoCastExpressionParser(parser); + public ISecondaryParser getNoCastExpressionParser(ITokenStream stream, Set options) { + return new UPCNoCastExpressionParser(stream, options); } - public IParser getSizeofExpressionParser(IParserActionTokenProvider parser) { - return new UPCSizeofExpressionParser(parser); + public ISecondaryParser getSizeofExpressionParser(ITokenStream stream, Set options) { + return new UPCSizeofExpressionParser(stream, options); } } diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/UPCLanguage.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/UPCLanguage.java index 0cfd67013c4..2286fb1b05a 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/UPCLanguage.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/UPCLanguage.java @@ -10,20 +10,24 @@ *******************************************************************************/ package org.eclipse.cdt.core.dom.upc; +import java.util.Set; + import org.eclipse.cdt.core.dom.ILinkage; import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage; -import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap; import org.eclipse.cdt.core.dom.lrparser.IParser; import org.eclipse.cdt.core.dom.lrparser.ScannerExtensionConfiguration; +import org.eclipse.cdt.core.dom.lrparser.IParser.Options; import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider; import org.eclipse.cdt.core.dom.parser.IScannerExtensionConfiguration; import org.eclipse.cdt.core.dom.parser.c.ANSICParserExtensionConfiguration; import org.eclipse.cdt.core.dom.parser.upc.DOMToUPCTokenMap; import org.eclipse.cdt.core.dom.parser.upc.UPCLanguageKeywords; +import org.eclipse.cdt.core.index.IIndex; import org.eclipse.cdt.core.model.ICLanguageKeywords; import org.eclipse.cdt.core.model.IContributedModelBuilder; import org.eclipse.cdt.core.model.ITranslationUnit; +import org.eclipse.cdt.core.parser.IScanner; import org.eclipse.cdt.core.parser.ParserLanguage; import org.eclipse.cdt.internal.core.dom.parser.upc.UPCParser; @@ -44,13 +48,8 @@ public class UPCLanguage extends BaseExtensibleLanguage { } @Override - protected IDOMTokenMap getTokenMap() { - return new DOMToUPCTokenMap(); - } - - @Override - public IParser getParser() { - return new UPCParser(); + protected IParser getParser(IScanner scanner, IIndex index, Set options) { + return new UPCParser(scanner, new DOMToUPCTokenMap(), getBuiltinBindingsProvider(), index, options); } /** @@ -90,7 +89,6 @@ public class UPCLanguage extends BaseExtensibleLanguage { return ScannerExtensionConfiguration.createC(); } - @Override protected IBuiltinBindingsProvider getBuiltinBindingsProvider() { return new ANSICParserExtensionConfiguration().getBuiltinBindingsProvider(); } diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParser.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParser.java index eefb86977ec..13b109eef59 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParser.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParser.java @@ -17,13 +17,20 @@ import lpg.lpgjavaruntime.*; import java.util.*; import org.eclipse.cdt.core.dom.ast.*; +import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap; import org.eclipse.cdt.core.dom.lrparser.IParser; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.ITokenCollector; +import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack; +import org.eclipse.cdt.core.parser.IScanner; +import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider; +import org.eclipse.cdt.core.index.IIndex; import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; +import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser; import org.eclipse.cdt.internal.core.dom.parser.c.CNodeFactory; import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction; @@ -37,7 +44,9 @@ import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement; import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnarySizeofExpression; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; -public class UPCExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser< IASTExpression > +public class UPCExpressionParser extends PrsStream implements RuleAction, ITokenStream, + ITokenCollector, IParser< IASTExpression > + , ISecondaryParser< IASTExpression > { private static ParseTable prs = new UPCExpressionParserprs(); private FixedBacktrackingParser btParser; @@ -175,7 +184,11 @@ public class UPCExpressionParser extends PrsStream implements RuleAction , IPars private UPCParserAction action; private IASTCompletionNode compNode; -public UPCExpressionParser() { // constructor + +public UPCExpressionParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Set options) { + initActions(options); + action.initializeTranslationUnit(scanner, builtinBindingsProvider, index); + CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap); } private void initActions(Set options) { @@ -194,10 +207,9 @@ public void addToken(IToken token) { } -public IASTExpression parse(Set options) { +public IASTExpression parse() { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(options); final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse @@ -240,12 +252,12 @@ public void setTokens(List tokens) { addToken(new Token(null, 0, 0, UPCExpressionParsersym.TK_EOF_TOKEN)); } -public UPCExpressionParser(IParserActionTokenProvider parser) { // constructor - tokenMap = new TokenMap(UPCExpressionParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols()); +public UPCExpressionParser(ITokenStream stream, Set options) { // constructor for creating secondary parser + initActions(options); + tokenMap = new TokenMap(UPCExpressionParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols()); } - public void ruleAction(int ruleNumber) { switch (ruleNumber) @@ -258,1293 +270,1299 @@ public UPCExpressionParser(IParserActionTokenProvider parser) { // constructor } // - // Rule 12: literal ::= integer + // Rule 2: ::= $Empty // - case 12: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break; + case 2: { action. consumeEmpty(); break; } // - // Rule 13: literal ::= floating + // Rule 13: literal ::= integer // - case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break; + case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break; } // - // Rule 14: literal ::= charconst + // Rule 14: literal ::= floating // - case 14: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break; + case 14: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break; } // - // Rule 15: literal ::= stringlit + // Rule 15: literal ::= charconst // - case 15: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break; + case 15: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break; } // - // Rule 17: primary_expression ::= primary_expression_id + // Rule 16: literal ::= stringlit // - case 17: { action. consumeExpressionID(); break; + case 16: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break; } // - // Rule 18: primary_expression ::= ( expression ) + // Rule 18: primary_expression ::= primary_expression_id // - case 18: { action. consumeExpressionBracketed(); break; + case 18: { action. consumeExpressionID(); break; } // - // Rule 21: postfix_expression ::= postfix_expression [ expression ] + // Rule 19: primary_expression ::= ( expression ) // - case 21: { action. consumeExpressionArraySubscript(); break; + case 19: { action. consumeExpressionBracketed(); break; } // - // Rule 22: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 22: postfix_expression ::= postfix_expression [ expression ] // - case 22: { action. consumeExpressionFunctionCall(); break; + case 22: { action. consumeExpressionArraySubscript(); break; } // - // Rule 23: postfix_expression ::= postfix_expression . member_name + // Rule 23: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 23: { action. consumeExpressionFieldReference(false); break; + case 23: { action. consumeExpressionFunctionCall(); break; } // - // Rule 24: postfix_expression ::= postfix_expression -> member_name + // Rule 24: postfix_expression ::= postfix_expression . member_name // - case 24: { action. consumeExpressionFieldReference(true); break; + case 24: { action. consumeExpressionFieldReference(false); break; } // - // Rule 25: postfix_expression ::= postfix_expression ++ + // Rule 25: postfix_expression ::= postfix_expression -> member_name // - case 25: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; + case 25: { action. consumeExpressionFieldReference(true); break; } // - // Rule 26: postfix_expression ::= postfix_expression -- + // Rule 26: postfix_expression ::= postfix_expression ++ // - case 26: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; + case 26: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 27: postfix_expression ::= ( type_id ) { initializer_list comma_opt } + // Rule 27: postfix_expression ::= postfix_expression -- // - case 27: { action. consumeExpressionTypeIdInitializer(); break; + case 27: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 32: unary_expression ::= ++ unary_expression + // Rule 28: postfix_expression ::= ( type_id ) { initializer_list comma_opt } // - case 32: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; + case 28: { action. consumeExpressionTypeIdInitializer(); break; } // - // Rule 33: unary_expression ::= -- unary_expression + // Rule 33: unary_expression ::= ++ unary_expression // - case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; + case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 34: unary_expression ::= & cast_expression + // Rule 34: unary_expression ::= -- unary_expression // - case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; + case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 35: unary_expression ::= * cast_expression + // Rule 35: unary_expression ::= & cast_expression // - case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; + case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 36: unary_expression ::= + cast_expression + // Rule 36: unary_expression ::= * cast_expression // - case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; + case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 37: unary_expression ::= - cast_expression + // Rule 37: unary_expression ::= + cast_expression // - case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; + case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 38: unary_expression ::= ~ cast_expression + // Rule 38: unary_expression ::= - cast_expression // - case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; + case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 39: unary_expression ::= ! cast_expression + // Rule 39: unary_expression ::= ~ cast_expression // - case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; + case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 40: unary_expression ::= sizeof unary_expression + // Rule 40: unary_expression ::= ! cast_expression // - case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; + case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 41: unary_expression ::= sizeof ( type_id ) + // Rule 41: unary_expression ::= sizeof unary_expression // - case 41: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break; + case 41: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 43: cast_expression ::= ( type_id ) cast_expression + // Rule 42: unary_expression ::= sizeof ( type_id ) // - case 43: { action. consumeExpressionCast(IASTCastExpression.op_cast); break; + case 42: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break; } // - // Rule 45: multiplicative_expression ::= multiplicative_expression * cast_expression + // Rule 44: cast_expression ::= ( type_id ) cast_expression // - case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break; + case 44: { action. consumeExpressionCast(IASTCastExpression.op_cast); break; } // - // Rule 46: multiplicative_expression ::= multiplicative_expression / cast_expression + // Rule 46: multiplicative_expression ::= multiplicative_expression * cast_expression // - case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break; + case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break; } // - // Rule 47: multiplicative_expression ::= multiplicative_expression % cast_expression + // Rule 47: multiplicative_expression ::= multiplicative_expression / cast_expression // - case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break; + case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break; } // - // Rule 49: additive_expression ::= additive_expression + multiplicative_expression + // Rule 48: multiplicative_expression ::= multiplicative_expression % cast_expression // - case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break; + case 48: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break; } // - // Rule 50: additive_expression ::= additive_expression - multiplicative_expression + // Rule 50: additive_expression ::= additive_expression + multiplicative_expression // - case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break; + case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break; } // - // Rule 52: shift_expression ::= shift_expression << additive_expression + // Rule 51: additive_expression ::= additive_expression - multiplicative_expression // - case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break; + case 51: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break; } // - // Rule 53: shift_expression ::= shift_expression >> additive_expression + // Rule 53: shift_expression ::= shift_expression << additive_expression // - case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break; + case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break; } // - // Rule 55: relational_expression ::= relational_expression < shift_expression + // Rule 54: shift_expression ::= shift_expression >> additive_expression // - case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break; + case 54: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break; } // - // Rule 56: relational_expression ::= relational_expression > shift_expression + // Rule 56: relational_expression ::= relational_expression < shift_expression // - case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break; + case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break; } // - // Rule 57: relational_expression ::= relational_expression <= shift_expression + // Rule 57: relational_expression ::= relational_expression > shift_expression // - case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break; + case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break; } // - // Rule 58: relational_expression ::= relational_expression >= shift_expression + // Rule 58: relational_expression ::= relational_expression <= shift_expression // - case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break; + case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break; } // - // Rule 60: equality_expression ::= equality_expression == relational_expression + // Rule 59: relational_expression ::= relational_expression >= shift_expression // - case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break; + case 59: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break; } // - // Rule 61: equality_expression ::= equality_expression != relational_expression + // Rule 61: equality_expression ::= equality_expression == relational_expression // - case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break; + case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break; } // - // Rule 63: AND_expression ::= AND_expression & equality_expression + // Rule 62: equality_expression ::= equality_expression != relational_expression // - case 63: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break; + case 62: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break; } // - // Rule 65: exclusive_OR_expression ::= exclusive_OR_expression ^ AND_expression + // Rule 64: and_expression ::= and_expression & equality_expression // - case 65: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break; + case 64: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break; } // - // Rule 67: inclusive_OR_expression ::= inclusive_OR_expression | exclusive_OR_expression + // Rule 66: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 67: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break; + case 66: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break; } // - // Rule 69: logical_AND_expression ::= logical_AND_expression && inclusive_OR_expression + // Rule 68: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 69: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break; + case 68: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break; } // - // Rule 71: logical_OR_expression ::= logical_OR_expression || logical_AND_expression + // Rule 70: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 71: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break; + case 70: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break; } // - // Rule 73: conditional_expression ::= logical_OR_expression ? expression : conditional_expression + // Rule 72: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 73: { action. consumeExpressionConditional(); break; + case 72: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break; } // - // Rule 75: assignment_expression ::= unary_expression = assignment_expression + // Rule 74: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; + case 74: { action. consumeExpressionConditional(); break; } // - // Rule 76: assignment_expression ::= unary_expression *= assignment_expression + // Rule 76: assignment_expression ::= unary_expression = assignment_expression // - case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break; + case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; } // - // Rule 77: assignment_expression ::= unary_expression /= assignment_expression + // Rule 77: assignment_expression ::= unary_expression *= assignment_expression // - case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break; + case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 78: assignment_expression ::= unary_expression %= assignment_expression + // Rule 78: assignment_expression ::= unary_expression /= assignment_expression // - case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break; + case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break; } // - // Rule 79: assignment_expression ::= unary_expression += assignment_expression + // Rule 79: assignment_expression ::= unary_expression %= assignment_expression // - case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break; + case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break; } // - // Rule 80: assignment_expression ::= unary_expression -= assignment_expression + // Rule 80: assignment_expression ::= unary_expression += assignment_expression // - case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break; + case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break; } // - // Rule 81: assignment_expression ::= unary_expression <<= assignment_expression + // Rule 81: assignment_expression ::= unary_expression -= assignment_expression // - case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break; + case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break; } // - // Rule 82: assignment_expression ::= unary_expression >>= assignment_expression + // Rule 82: assignment_expression ::= unary_expression <<= assignment_expression // - case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break; + case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 83: assignment_expression ::= unary_expression &= assignment_expression + // Rule 83: assignment_expression ::= unary_expression >>= assignment_expression // - case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break; + case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 84: assignment_expression ::= unary_expression ^= assignment_expression + // Rule 84: assignment_expression ::= unary_expression &= assignment_expression // - case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break; + case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 85: assignment_expression ::= unary_expression |= assignment_expression + // Rule 85: assignment_expression ::= unary_expression ^= assignment_expression // - case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break; + case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 88: expression_list ::= expression_list_actual + // Rule 86: assignment_expression ::= unary_expression |= assignment_expression // - case 88: { action. consumeExpressionList(); break; + case 86: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 90: expression_list_opt ::= $Empty + // Rule 89: expression_list ::= expression_list_actual // - case 90: { action. consumeEmpty(); break; + case 89: { action. consumeExpressionList(); break; } // - // Rule 100: statement ::= ERROR_TOKEN + // Rule 91: expression_list_opt ::= $Empty // - case 100: { action. consumeStatementProblem(); break; + case 91: { action. consumeEmpty(); break; } // - // Rule 101: labeled_statement ::= identifier_token : statement + // Rule 101: statement ::= ERROR_TOKEN // - case 101: { action. consumeStatementLabeled(); break; + case 101: { action. consumeStatementProblem(); break; } // - // Rule 102: labeled_statement ::= case constant_expression : statement + // Rule 102: labeled_statement ::= identifier_token : statement // - case 102: { action. consumeStatementCase(); break; + case 102: { action. consumeStatementLabeled(); break; } // - // Rule 103: labeled_statement ::= default : statement + // Rule 103: labeled_statement ::= case constant_expression : statement // - case 103: { action. consumeStatementDefault(); break; + case 103: { action. consumeStatementCase(); break; } // - // Rule 104: compound_statement ::= { } + // Rule 104: labeled_statement ::= default : statement // - case 104: { action. consumeStatementCompoundStatement(false); break; + case 104: { action. consumeStatementDefault(); break; } // - // Rule 105: compound_statement ::= { block_item_list } + // Rule 105: compound_statement ::= { } // - case 105: { action. consumeStatementCompoundStatement(true); break; + case 105: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 109: block_item ::= declaration + // Rule 106: compound_statement ::= { block_item_list } // - case 109: { action. consumeStatementDeclarationWithDisambiguation(); break; + case 106: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 110: expression_statement ::= ; + // Rule 110: block_item ::= declaration // - case 110: { action. consumeStatementNull(); break; + case 110: { action. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 111: expression_statement ::= expression_in_statement ; + // Rule 111: expression_statement ::= ; // - case 111: { action. consumeStatementExpression(); break; + case 111: { action. consumeStatementNull(); break; } // - // Rule 112: selection_statement ::= if ( expression ) statement + // Rule 112: expression_statement ::= expression_in_statement ; // - case 112: { action. consumeStatementIf(false); break; + case 112: { action. consumeStatementExpression(); break; } // - // Rule 113: selection_statement ::= if ( expression ) statement else statement + // Rule 113: selection_statement ::= if ( expression ) statement // - case 113: { action. consumeStatementIf(true); break; + case 113: { action. consumeStatementIf(false); break; } // - // Rule 114: selection_statement ::= switch ( expression ) statement + // Rule 114: selection_statement ::= if ( expression ) statement else statement // - case 114: { action. consumeStatementSwitch(); break; + case 114: { action. consumeStatementIf(true); break; } // - // Rule 116: expression_opt ::= $Empty + // Rule 115: selection_statement ::= switch ( expression ) statement // - case 116: { action. consumeEmpty(); break; + case 115: { action. consumeStatementSwitch(); break; } // - // Rule 117: iteration_statement ::= do statement while ( expression ) ; + // Rule 117: expression_opt ::= $Empty // - case 117: { action. consumeStatementDoLoop(); break; + case 117: { action. consumeEmpty(); break; } // - // Rule 118: iteration_statement ::= while ( expression ) statement + // Rule 118: iteration_statement ::= do statement while ( expression ) ; // - case 118: { action. consumeStatementWhileLoop(); break; + case 118: { action. consumeStatementDoLoop(); break; } // - // Rule 119: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement + // Rule 119: iteration_statement ::= while ( expression ) statement // - case 119: { action. consumeStatementForLoop(); break; + case 119: { action. consumeStatementWhileLoop(); break; } // - // Rule 120: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement + // Rule 120: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement // case 120: { action. consumeStatementForLoop(); break; } // - // Rule 121: jump_statement ::= goto identifier_token ; + // Rule 121: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement // - case 121: { action. consumeStatementGoto(); break; + case 121: { action. consumeStatementForLoop(); break; } // - // Rule 122: jump_statement ::= continue ; + // Rule 122: jump_statement ::= goto identifier_token ; // - case 122: { action. consumeStatementContinue(); break; + case 122: { action. consumeStatementGoto(); break; } // - // Rule 123: jump_statement ::= break ; + // Rule 123: jump_statement ::= continue ; // - case 123: { action. consumeStatementBreak(); break; + case 123: { action. consumeStatementContinue(); break; } // - // Rule 124: jump_statement ::= return ; + // Rule 124: jump_statement ::= break ; // - case 124: { action. consumeStatementReturn(false); break; + case 124: { action. consumeStatementBreak(); break; } // - // Rule 125: jump_statement ::= return expression ; + // Rule 125: jump_statement ::= return ; // - case 125: { action. consumeStatementReturn(true); break; + case 125: { action. consumeStatementReturn(false); break; } // - // Rule 126: declaration ::= declaration_specifiers ; + // Rule 126: jump_statement ::= return expression ; // - case 126: { action. consumeDeclarationSimple(false); break; + case 126: { action. consumeStatementReturn(true); break; } // - // Rule 127: declaration ::= declaration_specifiers init_declarator_list ; + // Rule 127: declaration ::= declaration_specifiers ; // - case 127: { action. consumeDeclarationSimple(true); break; + case 127: { action. consumeDeclarationSimple(false); break; } // - // Rule 128: declaration_specifiers ::= simple_declaration_specifiers + // Rule 128: declaration ::= declaration_specifiers init_declarator_list ; // - case 128: { action. consumeDeclarationSpecifiersSimple(); break; + case 128: { action. consumeDeclarationSimple(true); break; } // - // Rule 129: declaration_specifiers ::= struct_or_union_declaration_specifiers + // Rule 129: declaration_specifiers ::= simple_declaration_specifiers // - case 129: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; + case 129: { action. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 130: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 130: declaration_specifiers ::= struct_or_union_declaration_specifiers // case 130: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; } // - // Rule 131: declaration_specifiers ::= enum_declaration_specifiers + // Rule 131: declaration_specifiers ::= elaborated_declaration_specifiers // case 131: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; } // - // Rule 132: declaration_specifiers ::= typdef_name_declaration_specifiers + // Rule 132: declaration_specifiers ::= enum_declaration_specifiers // - case 132: { action. consumeDeclarationSpecifiersTypedefName(); break; + case 132: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; } // - // Rule 157: init_declarator ::= complete_declarator = initializer + // Rule 133: declaration_specifiers ::= typdef_name_declaration_specifiers // - case 157: { action. consumeDeclaratorWithInitializer(true); break; + case 133: { action. consumeDeclarationSpecifiersTypedefName(); break; } // - // Rule 159: storage_class_specifier ::= storage_class_specifier_token + // Rule 158: init_declarator ::= complete_declarator = initializer // - case 159: { action. consumeToken(); break; + case 158: { action. consumeDeclaratorWithInitializer(true); break; } // - // Rule 165: simple_type_specifier ::= simple_type_specifier_token + // Rule 160: storage_class_specifier ::= storage_class_specifier_token // - case 165: { action. consumeToken(); break; + case 160: { action. consumeToken(); break; } // - // Rule 178: type_name_specifier ::= identifier_token + // Rule 166: simple_type_specifier ::= simple_type_specifier_token // - case 178: { action. consumeToken(); break; + case 166: { action. consumeToken(); break; } // - // Rule 179: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { struct_declaration_list_opt } + // Rule 179: type_name_specifier ::= identifier_token // - case 179: { action. consumeTypeSpecifierComposite(false); break; + case 179: { action. consumeToken(); break; } // - // Rule 180: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { struct_declaration_list_opt } + // Rule 180: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { struct_declaration_list_opt } // - case 180: { action. consumeTypeSpecifierComposite(true); break; + case 180: { action. consumeTypeSpecifierComposite(false); break; } // - // Rule 185: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token + // Rule 181: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { struct_declaration_list_opt } // - case 185: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break; + case 181: { action. consumeTypeSpecifierComposite(true); break; } // - // Rule 186: elaborated_specifier ::= union elaborated_specifier_hook identifier_token + // Rule 186: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token // - case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break; + case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break; } // - // Rule 187: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token + // Rule 187: elaborated_specifier ::= union elaborated_specifier_hook identifier_token // - case 187: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break; + case 187: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break; } // - // Rule 193: struct_declaration ::= specifier_qualifier_list struct_declarator_list ; + // Rule 188: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token // - case 193: { action. consumeStructDeclaration(true); break; + case 188: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break; } // - // Rule 194: struct_declaration ::= specifier_qualifier_list ; + // Rule 194: struct_declaration ::= specifier_qualifier_list struct_declarator_list ; // - case 194: { action. consumeStructDeclaration(false); break; + case 194: { action. consumeStructDeclaration(true); break; } // - // Rule 195: struct_declaration ::= ERROR_TOKEN + // Rule 195: struct_declaration ::= specifier_qualifier_list ; // - case 195: { action. consumeDeclarationProblem(); break; + case 195: { action. consumeStructDeclaration(false); break; } // - // Rule 201: struct_declarator ::= : constant_expression + // Rule 196: struct_declaration ::= ERROR_TOKEN // - case 201: { action. consumeBitField(false); break; + case 196: { action. consumeDeclarationProblem(); break; } // - // Rule 202: struct_declarator ::= declarator : constant_expression + // Rule 202: struct_declarator ::= : constant_expression // - case 202: { action. consumeBitField(true); break; + case 202: { action. consumeBitField(false); break; } // - // Rule 203: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } + // Rule 203: struct_declarator ::= declarator : constant_expression // - case 203: { action. consumeTypeSpecifierEnumeration(false); break; + case 203: { action. consumeBitField(true); break; } // - // Rule 204: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } + // Rule 204: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } // - case 204: { action. consumeTypeSpecifierEnumeration(true); break; + case 204: { action. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 210: enumerator ::= identifier_token + // Rule 205: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } // - case 210: { action. consumeEnumerator(false); break; + case 205: { action. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 211: enumerator ::= identifier_token = constant_expression + // Rule 211: enumerator ::= identifier_token // - case 211: { action. consumeEnumerator(true); break; + case 211: { action. consumeEnumerator(false); break; } // - // Rule 212: type_qualifier ::= type_qualifier_token + // Rule 212: enumerator ::= identifier_token = constant_expression // - case 212: { action. consumeToken(); break; + case 212: { action. consumeEnumerator(true); break; } // - // Rule 216: function_specifier ::= inline + // Rule 213: type_qualifier ::= type_qualifier_token // - case 216: { action. consumeToken(); break; + case 213: { action. consumeToken(); break; } // - // Rule 218: declarator ::= pointer_seq direct_declarator + // Rule 217: function_specifier ::= inline // - case 218: { action. consumeDeclaratorWithPointer(true); break; + case 217: { action. consumeToken(); break; } // - // Rule 223: basic_direct_declarator ::= declarator_id_name + // Rule 219: declarator ::= pointer_seq direct_declarator // - case 223: { action. consumeDirectDeclaratorIdentifier(); break; + case 219: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 224: basic_direct_declarator ::= ( declarator ) + // Rule 224: basic_direct_declarator ::= declarator_id_name // - case 224: { action. consumeDirectDeclaratorBracketed(); break; + case 224: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 225: declarator_id_name ::= identifier + // Rule 225: basic_direct_declarator ::= ( declarator ) // - case 225: { action. consumeIdentifierName(); break; + case 225: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 226: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 226: declarator_id_name ::= identifier // - case 226: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 226: { action. consumeIdentifierName(); break; } // - // Rule 227: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 227: array_direct_declarator ::= basic_direct_declarator array_modifier // case 227: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 229: function_direct_declarator ::= basic_direct_declarator ( parameter_type_list ) + // Rule 228: array_direct_declarator ::= array_direct_declarator array_modifier // - case 229: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; + case 228: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 230: function_direct_declarator ::= basic_direct_declarator ( ) + // Rule 230: function_direct_declarator ::= basic_direct_declarator ( parameter_type_list ) // - case 230: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; + case 230: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; } // - // Rule 232: function_declarator ::= pointer_seq function_direct_declarator + // Rule 231: function_direct_declarator ::= basic_direct_declarator ( ) // - case 232: { action. consumeDeclaratorWithPointer(true); break; + case 231: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; } // - // Rule 233: knr_direct_declarator ::= basic_direct_declarator ( identifier_list ) + // Rule 233: function_declarator ::= pointer_seq function_direct_declarator // - case 233: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break; + case 233: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 235: knr_function_declarator ::= pointer_seq knr_direct_declarator + // Rule 234: knr_direct_declarator ::= basic_direct_declarator ( identifier_list ) // - case 235: { action. consumeDeclaratorWithPointer(true); break; + case 234: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break; } // - // Rule 236: identifier_list ::= identifier + // Rule 236: knr_function_declarator ::= pointer_seq knr_direct_declarator // - case 236: { action. consumeIdentifierKnR(); break; + case 236: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 237: identifier_list ::= identifier_list , identifier + // Rule 237: identifier_list ::= identifier // case 237: { action. consumeIdentifierKnR(); break; } // - // Rule 238: array_modifier ::= [ ] + // Rule 238: identifier_list ::= identifier_list , identifier // - case 238: { action. consumeDirectDeclaratorArrayModifier(false); break; + case 238: { action. consumeIdentifierKnR(); break; } // - // Rule 239: array_modifier ::= [ array_modifier_type_qualifiers ] + // Rule 239: array_modifier ::= [ ] // - case 239: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break; + case 239: { action. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 240: array_modifier ::= [ assignment_expression ] + // Rule 240: array_modifier ::= [ array_modifier_type_qualifiers ] // - case 240: { action. consumeDirectDeclaratorArrayModifier(true); break; + case 240: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break; } // - // Rule 241: array_modifier ::= [ array_modifier_type_qualifiers assignment_expression ] + // Rule 241: array_modifier ::= [ assignment_expression ] // - case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break; + case 241: { action. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 242: array_modifier ::= [ static assignment_expression ] + // Rule 242: array_modifier ::= [ array_modifier_type_qualifiers assignment_expression ] // - case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break; + case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break; } // - // Rule 243: array_modifier ::= [ static array_modifier_type_qualifiers assignment_expression ] + // Rule 243: array_modifier ::= [ static assignment_expression ] // - case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; + case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break; } // - // Rule 244: array_modifier ::= [ array_modifier_type_qualifiers static assignment_expression ] + // Rule 244: array_modifier ::= [ static array_modifier_type_qualifiers assignment_expression ] // case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; } // - // Rule 245: array_modifier ::= [ * ] + // Rule 245: array_modifier ::= [ array_modifier_type_qualifiers static assignment_expression ] // - case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break; + case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; } // - // Rule 246: array_modifier ::= [ array_modifier_type_qualifiers * ] + // Rule 246: array_modifier ::= [ * ] // - case 246: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break; + case 246: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break; } // - // Rule 248: pointer_seq ::= pointer_hook * + // Rule 247: array_modifier ::= [ array_modifier_type_qualifiers * ] // - case 248: { action. consumePointer(); break; + case 247: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break; } // - // Rule 249: pointer_seq ::= pointer_seq pointer_hook * + // Rule 249: pointer_seq ::= pointer_hook * pointer_hook // case 249: { action. consumePointer(); break; } // - // Rule 250: pointer_seq ::= pointer_hook * type_qualifier_list + // Rule 250: pointer_seq ::= pointer_seq pointer_hook * pointer_hook // - case 250: { action. consumePointerTypeQualifierList(); break; + case 250: { action. consumePointer(); break; } // - // Rule 251: pointer_seq ::= pointer_seq pointer_hook * type_qualifier_list + // Rule 251: pointer_seq ::= pointer_hook * pointer_hook type_qualifier_list // case 251: { action. consumePointerTypeQualifierList(); break; } // - // Rule 255: parameter_type_list ::= parameter_list + // Rule 252: pointer_seq ::= pointer_seq pointer_hook * pointer_hook type_qualifier_list // - case 255: { action. consumeEmpty(); break; + case 252: { action. consumePointerTypeQualifierList(); break; } // - // Rule 256: parameter_type_list ::= parameter_list , ... + // Rule 256: parameter_type_list ::= parameter_list // - case 256: { action. consumePlaceHolder(); break; + case 256: { action. consumeEmpty(); break; } // - // Rule 257: parameter_type_list ::= ... + // Rule 257: parameter_type_list ::= parameter_list , ... // case 257: { action. consumePlaceHolder(); break; } // - // Rule 260: parameter_declaration ::= declaration_specifiers complete_parameter_declarator + // Rule 258: parameter_type_list ::= ... // - case 260: { action. consumeParameterDeclaration(); break; + case 258: { action. consumePlaceHolder(); break; } // - // Rule 261: parameter_declaration ::= declaration_specifiers + // Rule 261: parameter_declaration ::= declaration_specifiers complete_parameter_declarator // - case 261: { action. consumeParameterDeclarationWithoutDeclarator(); break; + case 261: { action. consumeParameterDeclaration(); break; } // - // Rule 264: type_id ::= specifier_qualifier_list + // Rule 262: parameter_declaration ::= declaration_specifiers // - case 264: { action. consumeTypeId(false); break; + case 262: { action. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 265: type_id ::= specifier_qualifier_list abstract_declarator + // Rule 265: type_id ::= specifier_qualifier_list // - case 265: { action. consumeTypeId(true); break; + case 265: { action. consumeTypeId(false); break; } // - // Rule 267: abstract_declarator ::= pointer_seq + // Rule 266: type_id ::= specifier_qualifier_list abstract_declarator // - case 267: { action. consumeDeclaratorWithPointer(false); break; + case 266: { action. consumeTypeId(true); break; } // - // Rule 268: abstract_declarator ::= pointer_seq direct_abstract_declarator + // Rule 268: abstract_declarator ::= pointer_seq // case 268: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 272: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 269: abstract_declarator ::= pointer_seq direct_abstract_declarator // - case 272: { action. consumeDirectDeclaratorBracketed(); break; + case 269: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 273: array_direct_abstract_declarator ::= array_modifier + // Rule 273: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 273: { action. consumeDirectDeclaratorArrayDeclarator(false); break; + case 273: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 274: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 274: array_direct_abstract_declarator ::= array_modifier // - case 274: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 274: { action. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 275: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 275: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // case 275: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 276: function_direct_abstract_declarator ::= ( ) + // Rule 276: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 276: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break; + case 276: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 277: function_direct_abstract_declarator ::= ( ) + // + case 277: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break; } // - // Rule 277: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( ) + // Rule 278: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( ) // - case 277: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; + case 278: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; } // - // Rule 278: function_direct_abstract_declarator ::= ( parameter_type_list ) + // Rule 279: function_direct_abstract_declarator ::= ( parameter_type_list ) // - case 278: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break; + case 279: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break; } // - // Rule 279: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_type_list ) + // Rule 280: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_type_list ) // - case 279: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; + case 280: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; } // - // Rule 280: initializer ::= assignment_expression + // Rule 281: initializer ::= assignment_expression // - case 280: { action. consumeInitializer(); break; + case 281: { action. consumeInitializer(); break; } // - // Rule 281: initializer ::= start_initializer_list { initializer_list comma_opt } end_initializer_list - // - case 281: { action. consumeInitializerList(); break; - } - - // - // Rule 282: initializer ::= { } + // Rule 282: initializer ::= start_initializer_list { initializer_list comma_opt } end_initializer_list // case 282: { action. consumeInitializerList(); break; } // - // Rule 283: start_initializer_list ::= $Empty + // Rule 283: initializer ::= { } // - case 283: { action. initializerListStart(); break; + case 283: { action. consumeInitializerList(); break; } // - // Rule 284: end_initializer_list ::= $Empty + // Rule 284: start_initializer_list ::= $Empty // - case 284: { action. initializerListEnd(); break; + case 284: { action. initializerListStart(); break; } // - // Rule 289: designated_initializer ::= designation = initializer + // Rule 285: end_initializer_list ::= $Empty // - case 289: { action. consumeInitializerDesignated(); break; + case 285: { action. initializerListEnd(); break; } // - // Rule 293: designator_base ::= [ constant_expression ] + // Rule 290: designated_initializer ::= designation = initializer // - case 293: { action. consumeDesignatorArray(); break; + case 290: { action. consumeInitializerDesignated(); break; } // - // Rule 294: designator_base ::= . identifier_token + // Rule 294: designator_base ::= [ constant_expression ] // - case 294: { action. consumeDesignatorField(); break; + case 294: { action. consumeDesignatorArray(); break; } // - // Rule 295: designator ::= [ constant_expression ] + // Rule 295: designator_base ::= . identifier_token // - case 295: { action. consumeDesignatorArray(); break; + case 295: { action. consumeDesignatorField(); break; } // - // Rule 296: designator ::= . identifier_token + // Rule 296: designator ::= [ constant_expression ] // - case 296: { action. consumeDesignatorField(); break; + case 296: { action. consumeDesignatorArray(); break; } // - // Rule 297: translation_unit ::= external_declaration_list + // Rule 297: designator ::= . identifier_token // - case 297: { action. consumeTranslationUnit(); break; + case 297: { action. consumeDesignatorField(); break; + } + + // + // Rule 298: translation_unit ::= external_declaration_list + // + case 298: { action. consumeTranslationUnit(); break; } // - // Rule 298: translation_unit ::= $Empty + // Rule 299: translation_unit ::= $Empty // - case 298: { action. consumeTranslationUnit(); break; + case 299: { action. consumeTranslationUnit(); break; } // - // Rule 303: external_declaration ::= ; + // Rule 304: external_declaration ::= ; // - case 303: { action. consumeDeclarationEmpty(); break; + case 304: { action. consumeDeclarationEmpty(); break; } // - // Rule 304: external_declaration ::= ERROR_TOKEN + // Rule 305: external_declaration ::= ERROR_TOKEN // - case 304: { action. consumeDeclarationProblem(); break; + case 305: { action. consumeDeclarationProblem(); break; } // - // Rule 307: function_definition ::= declaration_specifiers function_declarator function_body + // Rule 308: function_definition ::= declaration_specifiers function_declarator function_body // - case 307: { action. consumeFunctionDefinition(true); break; + case 308: { action. consumeFunctionDefinition(true); break; } // - // Rule 308: function_definition ::= function_declarator function_body + // Rule 309: function_definition ::= function_declarator function_body // - case 308: { action. consumeFunctionDefinition(false); break; + case 309: { action. consumeFunctionDefinition(false); break; } // - // Rule 309: function_definition ::= declaration_specifiers knr_function_declarator declaration_list compound_statement + // Rule 310: function_definition ::= declaration_specifiers knr_function_declarator declaration_list compound_statement // - case 309: { action. consumeFunctionDefinitionKnR(); break; + case 310: { action. consumeFunctionDefinitionKnR(); break; } // - // Rule 310: function_body ::= { } + // Rule 311: function_body ::= { } // - case 310: { action. consumeStatementCompoundStatement(false); break; + case 311: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 311: function_body ::= { block_item_list } + // Rule 312: function_body ::= { block_item_list } // - case 311: { action. consumeStatementCompoundStatement(true); break; + case 312: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 313: expression_parser_start ::= ERROR_TOKEN + // Rule 314: expression_parser_start ::= ERROR_TOKEN // - case 313: { action. consumeEmpty(); break; + case 314: { action. consumeEmpty(); break; } // - // Rule 314: literal ::= MYTHREAD + // Rule 315: literal ::= MYTHREAD // - case 314: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break; + case 315: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break; } // - // Rule 315: literal ::= THREADS + // Rule 316: literal ::= THREADS // - case 315: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break; + case 316: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break; } // - // Rule 316: literal ::= UPC_MAX_BLOCKSIZE + // Rule 317: literal ::= UPC_MAX_BLOCKSIZE // - case 316: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break; + case 317: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break; } // - // Rule 317: unary_expression ::= upc_localsizeof unary_expression + // Rule 318: unary_expression ::= upc_localsizeof unary_expression // - case 317: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); break; + case 318: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); break; } // - // Rule 318: unary_expression ::= upc_localsizeof ( type_id ) + // Rule 319: unary_expression ::= upc_localsizeof ( type_id ) // - case 318: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof); break; + case 319: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof); break; } // - // Rule 319: unary_expression ::= upc_blocksizeof unary_expression + // Rule 320: unary_expression ::= upc_blocksizeof unary_expression // - case 319: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; + case 320: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; } // - // Rule 320: unary_expression ::= upc_blocksizeof ( type_id ) + // Rule 321: unary_expression ::= upc_blocksizeof ( type_id ) // - case 320: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; + case 321: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; } // - // Rule 321: unary_expression ::= upc_elemsizeof unary_expression + // Rule 322: unary_expression ::= upc_elemsizeof unary_expression // - case 321: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; + case 322: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; } // - // Rule 322: unary_expression ::= upc_elemsizeof ( type_id ) + // Rule 323: unary_expression ::= upc_elemsizeof ( type_id ) // - case 322: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; + case 323: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; } // - // Rule 326: shared_type_qualifier ::= shared - // - case 326: { action. consumeToken(); break; - } - - // - // Rule 327: reference_type_qualifier ::= relaxed + // Rule 327: shared_type_qualifier ::= shared // case 327: { action. consumeToken(); break; } // - // Rule 328: reference_type_qualifier ::= strict + // Rule 328: reference_type_qualifier ::= relaxed // case 328: { action. consumeToken(); break; } // - // Rule 329: layout_qualifier ::= [ constant_expression ] + // Rule 329: reference_type_qualifier ::= strict // - case 329: { action. consumeLayoutQualifier(true, false); break; + case 329: { action. consumeToken(); break; } // - // Rule 330: layout_qualifier ::= [ * ] + // Rule 330: layout_qualifier ::= [ constant_expression ] // - case 330: { action. consumeLayoutQualifier(false, true); break; + case 330: { action. consumeLayoutQualifier(true, false); break; } // - // Rule 331: layout_qualifier ::= [ ] + // Rule 331: layout_qualifier ::= [ * ] // - case 331: { action. consumeLayoutQualifier(false, false); break; + case 331: { action. consumeLayoutQualifier(false, true); break; } // - // Rule 333: synchronization_statement ::= upc_notify expression ; + // Rule 332: layout_qualifier ::= [ ] // - case 333: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break; + case 332: { action. consumeLayoutQualifier(false, false); break; } // - // Rule 334: synchronization_statement ::= upc_notify ; + // Rule 334: synchronization_statement ::= upc_notify expression ; // - case 334: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break; + case 334: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break; } // - // Rule 335: synchronization_statement ::= upc_wait expression ; + // Rule 335: synchronization_statement ::= upc_notify ; // - case 335: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break; + case 335: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break; } // - // Rule 336: synchronization_statement ::= upc_wait ; + // Rule 336: synchronization_statement ::= upc_wait expression ; // - case 336: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break; + case 336: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break; } // - // Rule 337: synchronization_statement ::= upc_barrier expression ; + // Rule 337: synchronization_statement ::= upc_wait ; // - case 337: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break; + case 337: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break; } // - // Rule 338: synchronization_statement ::= upc_barrier ; + // Rule 338: synchronization_statement ::= upc_barrier expression ; // - case 338: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break; + case 338: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break; } // - // Rule 339: synchronization_statement ::= upc_fence ; + // Rule 339: synchronization_statement ::= upc_barrier ; // - case 339: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break; + case 339: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break; } // - // Rule 340: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement + // Rule 340: synchronization_statement ::= upc_fence ; // - case 340: { action. consumeStatementUPCForallLoop(true, true, true, true); break; + case 340: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break; } // - // Rule 341: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement + // Rule 341: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement // - case 341: { action. consumeStatementUPCForallLoop(true, true, true, false); break; + case 341: { action. consumeStatementUPCForallLoop(true, true, true, true); break; } // - // Rule 342: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement + // Rule 342: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement // - case 342: { action. consumeStatementUPCForallLoop(true, true, false, true); break; + case 342: { action. consumeStatementUPCForallLoop(true, true, true, false); break; } // - // Rule 343: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement + // Rule 343: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement // - case 343: { action. consumeStatementUPCForallLoop(true, true, false, false); break; + case 343: { action. consumeStatementUPCForallLoop(true, true, false, true); break; } // - // Rule 344: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement + // Rule 344: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement // - case 344: { action. consumeStatementUPCForallLoop(true, false, true, true); break; + case 344: { action. consumeStatementUPCForallLoop(true, true, false, false); break; } // - // Rule 345: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement + // Rule 345: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement // - case 345: { action. consumeStatementUPCForallLoop(true, false, true, false); break; + case 345: { action. consumeStatementUPCForallLoop(true, false, true, true); break; } // - // Rule 346: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement + // Rule 346: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement // - case 346: { action. consumeStatementUPCForallLoop(true, false, false, true); break; + case 346: { action. consumeStatementUPCForallLoop(true, false, true, false); break; } // - // Rule 347: iteration_statement ::= upc_forall ( expression ; ; ; ) statement + // Rule 347: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement // - case 347: { action. consumeStatementUPCForallLoop(true, false, false, false); break; + case 347: { action. consumeStatementUPCForallLoop(true, false, false, true); break; } // - // Rule 348: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement + // Rule 348: iteration_statement ::= upc_forall ( expression ; ; ; ) statement // - case 348: { action. consumeStatementUPCForallLoop(false, true, true, true); break; + case 348: { action. consumeStatementUPCForallLoop(true, false, false, false); break; } // - // Rule 349: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement + // Rule 349: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement // - case 349: { action. consumeStatementUPCForallLoop(false, true, true, false); break; + case 349: { action. consumeStatementUPCForallLoop(false, true, true, true); break; } // - // Rule 350: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement + // Rule 350: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement // - case 350: { action. consumeStatementUPCForallLoop(false, true, false, true); break; + case 350: { action. consumeStatementUPCForallLoop(false, true, true, false); break; } // - // Rule 351: iteration_statement ::= upc_forall ( ; expression ; ; ) statement + // Rule 351: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement // - case 351: { action. consumeStatementUPCForallLoop(false, true, false, false); break; + case 351: { action. consumeStatementUPCForallLoop(false, true, false, true); break; } // - // Rule 352: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement + // Rule 352: iteration_statement ::= upc_forall ( ; expression ; ; ) statement // - case 352: { action. consumeStatementUPCForallLoop(false, false, true, true); break; + case 352: { action. consumeStatementUPCForallLoop(false, true, false, false); break; } // - // Rule 353: iteration_statement ::= upc_forall ( ; ; expression ; ) statement + // Rule 353: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement // - case 353: { action. consumeStatementUPCForallLoop(false, false, true, false); break; + case 353: { action. consumeStatementUPCForallLoop(false, false, true, true); break; } // - // Rule 354: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement + // Rule 354: iteration_statement ::= upc_forall ( ; ; expression ; ) statement // - case 354: { action. consumeStatementUPCForallLoop(false, false, false, true); break; + case 354: { action. consumeStatementUPCForallLoop(false, false, true, false); break; } // - // Rule 355: iteration_statement ::= upc_forall ( ; ; ; ) statement + // Rule 355: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement // - case 355: { action. consumeStatementUPCForallLoop(false, false, false, false); break; + case 355: { action. consumeStatementUPCForallLoop(false, false, false, true); break; } // - // Rule 356: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement + // Rule 356: iteration_statement ::= upc_forall ( ; ; ; ) statement // - case 356: { action. consumeStatementUPCForallLoop(true, true, true, true); break; + case 356: { action. consumeStatementUPCForallLoop(false, false, false, false); break; } // - // Rule 357: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement + // Rule 357: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement // - case 357: { action. consumeStatementUPCForallLoop(true, true, true, false); break; + case 357: { action. consumeStatementUPCForallLoop(true, true, true, true); break; } // - // Rule 358: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement + // Rule 358: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement // - case 358: { action. consumeStatementUPCForallLoop(true, true, false, true); break; + case 358: { action. consumeStatementUPCForallLoop(true, true, true, false); break; } // - // Rule 359: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement + // Rule 359: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement // - case 359: { action. consumeStatementUPCForallLoop(true, true, false, false); break; + case 359: { action. consumeStatementUPCForallLoop(true, true, false, true); break; } // - // Rule 360: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement + // Rule 360: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement // - case 360: { action. consumeStatementUPCForallLoop(true, false, true, true); break; + case 360: { action. consumeStatementUPCForallLoop(true, true, false, false); break; } // - // Rule 361: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement + // Rule 361: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement // - case 361: { action. consumeStatementUPCForallLoop(true, false, true, false); break; + case 361: { action. consumeStatementUPCForallLoop(true, false, true, true); break; } // - // Rule 362: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement + // Rule 362: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement // - case 362: { action. consumeStatementUPCForallLoop(true, false, false, true); break; + case 362: { action. consumeStatementUPCForallLoop(true, false, true, false); break; } // - // Rule 363: iteration_statement ::= upc_forall ( declaration ; ; ) statement + // Rule 363: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement // - case 363: { action. consumeStatementUPCForallLoop(true, false, false, false); break; + case 363: { action. consumeStatementUPCForallLoop(true, false, false, true); break; } // - // Rule 365: affinity ::= continue + // Rule 364: iteration_statement ::= upc_forall ( declaration ; ; ) statement // - case 365: { action. consumeToken(); break; + case 364: { action. consumeStatementUPCForallLoop(true, false, false, false); break; + } + + // + // Rule 366: affinity ::= continue + // + case 366: { action. consumeToken(); break; } diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParserprs.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParserprs.java index 99c9378c88b..f5404e88217 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParserprs.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParserprs.java @@ -35,85 +35,85 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface BaseCheck { public final static short baseCheck[] = {0, - 0,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3,1,1, - 4,4,3,3,2,2,8,1,0,1, - 1,2,2,2,2,2,2,2,2,2, - 4,1,4,1,3,3,3,1,3,3, - 1,3,3,1,3,3,3,3,1,3, - 3,1,3,1,3,1,3,1,3,1, - 3,1,5,1,3,3,3,3,3,3, - 3,3,3,3,3,1,1,2,1,0, - 1,3,1,1,1,1,1,1,1,1, - 3,4,3,2,4,1,2,1,1,1, - 2,5,7,5,1,0,7,5,9,8, - 3,2,2,2,3,2,4,2,2,2, - 2,2,1,1,1,1,2,1,2,2, - 2,1,2,2,1,2,2,1,2,2, - 1,2,2,1,3,1,3,1,1,1, + 0,0,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,3,1, + 1,4,4,3,3,2,2,8,1,0, + 1,1,2,2,2,2,2,2,2,2, + 2,4,1,4,1,3,3,3,1,3, + 3,1,3,3,1,3,3,3,3,1, + 3,3,1,3,1,3,1,3,1,3, + 1,3,1,5,1,3,3,3,3,3, + 3,3,3,3,3,3,1,1,2,1, + 0,1,3,1,1,1,1,1,1,1, + 1,3,4,3,2,4,1,2,1,1, + 1,2,5,7,5,1,0,7,5,9, + 8,3,2,2,2,3,2,4,2,2, + 2,2,2,1,1,1,1,2,1,2, + 2,2,1,2,2,1,2,2,1,2, + 2,1,2,2,1,3,1,3,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,6,8, - 0,0,1,1,3,3,3,0,1,0, - 1,2,4,2,1,1,1,3,1,1, - 2,3,7,8,0,1,0,1,3,1, - 3,1,1,1,1,1,1,3,1,1, - 1,1,1,3,1,2,2,1,5,3, - 1,3,5,1,3,1,3,2,4,3, - 5,4,6,6,3,5,1,2,3,4, - 5,0,1,2,1,3,1,1,3,2, - 1,1,1,1,2,1,2,3,1,1, - 1,3,1,2,2,2,3,4,5,1, - 7,3,0,0,1,1,3,3,4,1, - 1,2,3,2,3,2,1,0,1,2, - 1,1,1,1,1,2,4,3,6,2, - 4,1,1,1,1,1,2,4,2,4, - 2,4,1,1,2,1,1,1,3,3, - 2,1,3,2,3,2,3,2,2,11, - 10,10,9,10,9,9,8,10,9,9, - 8,9,8,8,7,10,9,9,8,9, - 8,8,7,1,1,-43,0,0,0,0, - 0,0,0,0,0,-82,0,0,0,0, - 0,0,0,0,0,0,-120,-88,0,0, - 0,0,-156,-2,-85,-86,0,0,0,0, - 0,-61,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-180, - 0,-4,0,0,0,-131,0,0,0,0, - 0,0,0,-5,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-137,0,0, + 1,1,1,1,1,1,1,1,1,6, + 8,0,0,1,1,3,3,3,0,1, + 0,1,2,4,2,1,1,1,3,1, + 1,2,3,7,8,0,1,0,1,3, + 1,3,1,1,1,1,1,1,3,1, + 1,1,1,1,3,1,2,2,1,5, + 3,1,3,5,1,3,1,3,2,4, + 3,5,4,6,6,3,5,1,3,4, + 5,6,0,1,2,1,3,1,1,3, + 2,1,1,1,1,2,1,2,3,1, + 1,1,3,1,2,2,2,3,4,5, + 1,7,3,0,0,1,1,3,3,4, + 1,1,2,3,2,3,2,1,0,1, + 2,1,1,1,1,1,2,4,3,6, + 2,4,1,1,1,1,1,2,4,2, + 4,2,4,1,1,2,1,1,1,3, + 3,2,1,3,2,3,2,3,2,2, + 11,10,10,9,10,9,9,8,10,9, + 9,8,9,8,8,7,10,9,9,8, + 9,8,8,7,1,1,-43,0,0,0, + 0,0,0,0,0,0,-40,0,0,0, + 0,0,0,0,0,0,0,-131,0,0, + 0,0,0,-156,-2,-85,-229,0,-86,0, + 0,0,0,-61,0,0,0,0,0,0, + 0,0,0,-4,0,0,0,0,0,0, + 0,0,-17,0,0,-19,0,0,-20,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,-137,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,-58,0,0,0,0,0,0, + -82,0,0,0,-58,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -126,0,0,0,0,0,0,0,0,-129, - 0,0,-132,0,0,-36,0,-17,-95,0, - 0,-19,0,-90,-211,0,-133,0,-20,0, - 0,-143,0,-176,0,0,0,0,0,0, + 0,-126,0,0,0,0,0,0,0,0, + 0,-21,0,-36,0,0,-37,0,-88,-92, + -95,0,-22,0,-23,-212,0,-90,-132,0, + 0,-155,0,0,-176,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-146,0, + 0,0,0,0,0,-133,0,-24,-146,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,-89,0,-21,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,0,0,0,-5,0,0,0, + 0,0,0,0,0,0,-134,0,0,0, 0,0,0,0,0,0,-9,0,0,0, - 0,0,0,0,0,-134,0,-155,0,0, - 0,0,0,0,0,0,-151,0,0,0, - 0,0,0,0,0,0,-10,0,0,0, 0,0,0,0,0,0,0,0,0,0, -83,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-199,0,0,0,0,0,0, - 0,0,0,-40,0,0,0,0,0,0, + 0,-25,0,-199,0,0,0,0,0,0, + 0,0,0,-230,0,0,0,0,0,0, 0,0,0,0,-3,0,0,0,0,0, + 0,0,0,0,-168,0,0,0,0,0, + 0,0,0,0,0,-135,0,-166,-26,-59, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-135,0,-166,0,-59, + 0,0,0,0,0,0,-130,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-80,0,-130,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-22,0,-142, + 0,0,0,0,0,0,0,-27,0,-142, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -23,0,0,-30,0,0,0,0,0,0, + 0,0,0,-30,0,0,0,0,0,0, 0,0,0,-41,0,0,0,0,0,0, 0,0,0,0,-63,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -138,101 +138,102 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP 0,0,0,-78,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,-161,0,0,0,0, + 0,0,0,0,0,-136,0,0,0,0, 0,0,0,0,0,-79,0,0,0,0, - 0,0,0,0,0,0,-162,0,0,0, + 0,0,0,0,0,0,-161,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-179,0,0, - 0,0,0,0,0,0,0,-24,0,0, - 0,0,0,0,0,0,0,-202,0,0, - 0,0,0,0,0,0,0,-92,0,0, - 0,0,0,0,0,0,0,-178,0,-201, - 0,-25,-196,0,-44,0,0,0,0,0, - 0,0,0,-210,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-162,0,0, + 0,0,0,0,0,0,0,-127,0,0, + 0,0,0,0,0,0,0,0,-179,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-218,0,0,0,0,0,0, - 0,0,0,-93,0,0,0,0,0,0, - 0,0,0,-37,0,0,0,-26,-208,0, - -45,0,0,0,0,0,0,0,0,-226, + 0,0,0,0,0,0,0,0,-202,0, + 0,0,0,0,0,0,0,0,-93,0, + 0,0,0,0,0,0,0,0,-178,0, + -28,-196,-201,0,0,-44,0,0,0,0, + 0,0,0,0,-211,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-136, - 0,0,0,0,0,0,0,0,0,-217, - 0,0,0,0,0,0,0,0,0,-97, - 0,0,0,-27,-28,0,-55,0,0,0, + 0,0,0,0,-220,0,0,0,0,0, + 0,0,0,0,-80,0,0,0,0,0, + 0,0,0,0,-120,0,0,-29,-98,-180, + 0,-99,-100,-209,0,-121,0,-97,0,-151, + -228,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -139,-29,0,0,0,0,-194,-152,-169,-145, - 0,0,0,0,0,-213,0,0,0,0, - -56,0,0,0,0,0,0,0,0,0, - -154,0,0,0,0,0,0,0,0,-91, + 0,0,0,0,0,0,-194,-145,-129,-189, + 0,0,0,0,-144,-124,0,0,0,0, + -101,-222,0,0,0,0,0,0,-102,0, + 0,0,0,0,0,0,0,0,0,-139, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-124,-141,0,0,0,0, - 0,0,0,0,0,0,-228,-98,-165,0, - 0,0,0,0,0,0,0,0,0,-62, + 0,0,-141,-103,0,0,0,0,0,0, + 0,0,0,0,0,0,-165,-104,0,0, + 0,0,0,-105,0,0,0,-62,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-190,0,-6,0, + 0,0,0,0,-190,0,-6,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-207,-38,0,0,0,0,0, - -157,-99,-100,0,0,0,-127,-101,-144,0, - 0,-39,0,-167,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-225,0, - -159,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-57,0,0,0,0, - 0,0,0,0,0,-170,0,0,-150,0, + 0,-106,-38,0,0,0,0,0,-152,-107, + -154,-208,0,0,0,-159,-108,0,0,-193, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-173,-175,-149,0,0,0,0, - 0,-102,-103,0,0,-104,0,-49,0,0, - 0,0,0,0,0,0,0,0,0,-50, - 0,0,0,0,0,0,0,0,0,-181, - 0,0,0,0,-51,0,0,0,0,0, - 0,0,0,0,-87,0,-52,0,0,0, - 0,0,0,0,0,0,-105,0,-11,0, + 0,0,0,0,0,-55,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-106,-174,0,-107,-192,0,0,0,0, - -53,0,0,0,0,0,0,0,0,0, - -220,-12,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-109,-167,-110,-111, + -175,-181,0,-56,0,0,0,0,0,0, + 0,0,0,-170,0,0,-57,0,0,0, + 0,0,0,0,0,0,0,0,0,-227, + -157,0,0,-149,0,0,0,0,0,0, + 0,-192,-210,-112,0,-49,0,0,0,0, + 0,0,0,0,0,0,0,-53,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-113,-114,-115,-116,0,0, + 0,-50,0,0,0,0,0,0,0,0, + 0,-117,0,-51,0,0,0,0,0,0, + 0,0,0,-118,0,-87,-7,0,0,0, + 0,0,0,0,0,-52,0,0,0,0, + 0,0,0,0,0,-160,0,-173,0,0, + 0,0,-119,-122,-138,0,-147,0,0,0, 0,0,-54,0,0,0,0,0,0,0, - 0,0,0,-94,-84,-13,0,0,0,0, - 0,0,0,-209,0,-108,-109,-110,0,0, - 0,0,0,0,0,0,0,0,0,0, - -111,0,0,0,-96,0,0,0,0,-164, - 0,0,0,0,0,0,0,-227,0,0, - 0,0,0,0,0,-184,-112,0,0,0, - 0,0,-163,-113,-114,0,0,0,0,0, - -14,0,0,0,0,0,0,0,0,0, - 0,0,-42,0,0,0,0,0,0,0, - 0,0,0,-46,0,0,0,0,0,0, - 0,-47,0,0,0,0,0,0,0,-115, - -116,0,-48,0,0,0,0,0,0,0, - -81,0,0,0,0,0,0,0,-128,0, - 0,0,0,-117,-118,-182,-205,-119,0,-188, - -191,-122,-138,0,-189,0,0,-195,0,0, - 0,-147,-185,-204,0,0,-7,0,0,0, - 0,0,0,0,0,0,0,-8,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-153,-158,-168,-221,0,-171,0,0, - -216,0,0,-186,0,-177,0,0,-197,0, - -15,0,0,0,0,0,0,-16,0,0, - 0,0,0,0,-18,0,-193,0,-187,-31, - 0,0,-214,-198,0,-32,0,0,-219,0, - -33,0,-200,0,0,0,0,0,-34,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-121,0,0,0,0,0,0,0,0, - 0,0,-35,-212,0,0,0,-224,0,0, - 0,-125,0,-222,0,0,0,-223,0,-140, - 0,-172,0,0,0,0,0,0,0,0, + 0,0,-89,-8,0,0,0,0,0,0, + 0,-163,0,-45,0,0,0,0,0,0, + 0,0,-84,-91,-182,0,0,0,0,-94, + -223,-183,0,0,0,0,0,0,0,-153, + -169,0,-219,0,-218,-158,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-96,0,0,0,0,-143,0,-171,0, + 0,0,0,-10,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-177,0, + 0,0,0,0,0,0,0,0,-164,0, + 0,0,0,0,0,0,-11,0,0,0, + 0,0,0,0,0,-197,-198,-224,-174,0, + 0,-12,0,0,0,0,0,0,0,-13, + 0,0,0,0,0,0,0,-14,0,0, + 0,0,0,0,0,-42,-46,0,0,0, + 0,0,0,0,0,0,-47,0,0,0, + 0,0,0,0,-48,0,0,0,0,0, + 0,0,-221,-128,0,-81,0,0,0,0, + 0,0,0,0,-184,-226,-188,-191,0,0, + -185,0,0,0,0,0,0,0,0,0, + 0,-1,-186,0,0,0,0,0,0,0, + 0,0,0,0,0,-187,0,-15,0,0, + 0,0,0,0,0,0,0,-18,-214,0, + 0,0,0,0,-200,-31,0,0,0,0, + -216,0,-213,0,0,0,0,-16,0,0, + 0,0,0,0,0,0,0,-225,0,0, + -32,0,0,0,0,-217,0,0,-33,0, + 0,0,0,0,0,-34,-195,0,0,0, + 0,0,0,-35,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-125,0, + 0,0,0,0,0,0,0,0,-140,-172, 0,0,0,0,0,0,-206,0,0,0, - 0,-215,0,-148,0,0,0,0,-160,0, - 0,-1,-183,0,-60,0,0,0,0,0, + 0,0,0,0,0,0,0,-148,0,0, + 0,0,0,0,0,-204,0,0,-207,0, + -39,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-205,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,-60,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0 + 0,0,0,0,0,0,0,0,0 }; }; public final static short baseCheck[] = BaseCheck.baseCheck; @@ -242,205 +243,207 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface BaseAction { public final static char baseAction[] = { - 89,10,22,22,21,21,37,37,72,72, - 1,1,2,2,2,2,3,3,3,4, - 5,5,5,5,5,5,5,5,54,54, - 73,6,6,6,6,6,6,6,6,6, - 6,6,7,7,8,8,8,8,9,9, - 9,11,11,11,12,12,12,12,12,13, - 13,13,14,14,15,15,16,16,17,17, - 18,18,19,19,20,20,20,20,20,20, - 20,20,20,20,20,20,104,30,28,90, - 90,75,75,46,105,105,105,105,105,105, - 105,106,106,106,107,107,112,112,113,113, - 108,108,109,109,109,115,115,110,110,110, - 110,111,111,111,111,111,114,114,27,27, - 27,27,27,32,32,32,81,81,76,76, - 76,76,77,77,77,78,78,78,79,79, - 79,80,80,80,116,116,117,117,118,33, - 35,35,35,35,35,55,57,57,57,57, - 57,57,57,57,57,57,57,57,66,63, - 63,91,92,67,67,64,64,64,68,82, - 82,83,83,69,69,69,31,93,93,84, - 85,85,85,65,65,94,86,86,87,87, - 70,70,23,24,24,24,34,51,51,38, - 38,38,38,41,41,43,39,39,40,44, - 44,119,119,42,120,120,95,95,29,29, - 29,29,29,29,29,29,29,88,52,52, - 52,52,36,59,59,58,58,58,60,60, - 53,53,96,96,45,45,61,61,61,47, - 47,47,48,49,49,49,50,50,50,50, - 56,56,56,62,97,74,74,74,74,71, - 98,99,99,100,100,101,101,121,121,122, - 122,123,123,123,123,125,125,124,124,124, - 126,126,89,89,2,2,2,6,6,6, - 6,6,6,23,23,25,25,26,26,102, - 102,102,105,127,127,127,127,127,127,127, - 110,110,110,110,110,110,110,110,110,110, - 110,110,110,110,110,110,110,110,110,110, - 110,110,110,110,128,128,1,1318,16,20, - 17,528,1252,44,539,532,63,758,598,1088, - 781,1178,1122,1235,1234,74,91,17,952,134, - 212,323,324,919,175,916,382,448,136,133, - 135,159,606,19,16,20,17,528,42,44, - 539,532,1702,758,598,1088,781,1178,1122,1624, - 936,138,200,165,274,275,380,627,1812,142, - 145,148,151,534,631,19,16,20,17,528, - 321,422,1495,596,1290,1564,1595,1230,531,19, - 16,20,17,528,1252,44,539,532,393,758, - 598,1088,781,1178,1122,1235,1234,74,280,581, - 19,16,20,17,528,1252,44,539,532,393, - 758,598,1088,781,1178,1122,1235,1234,74,280, - 325,1756,420,291,606,19,16,20,17,528, - 42,44,539,532,285,758,598,1088,781,1578, - 1744,427,19,16,20,17,528,42,35,286, - 144,292,618,190,186,285,190,30,790,840, - 1874,1744,373,245,115,190,1759,190,185,892, - 286,277,819,1266,347,19,16,20,17,528, - 1252,44,539,532,393,758,598,1088,781,1178, - 1122,1235,1234,74,280,254,212,323,324,225, - 178,756,19,16,20,17,528,1252,44,539, - 532,1840,758,598,1088,781,1178,1122,1235,1234, - 74,1306,134,212,323,324,40,716,245,24, - 287,136,133,135,159,209,1744,606,19,16, - 20,17,528,42,39,288,786,1743,953,134, - 212,323,324,616,138,426,165,134,144,133, - 135,159,142,145,148,151,534,606,19,16, - 20,17,528,42,38,1495,596,1290,1564,1595, - 1230,281,19,16,20,17,528,1252,44,539, - 532,1832,758,598,1088,781,1178,1122,1235,1234, - 74,1305,1445,238,556,19,16,20,17,528, - 1252,44,539,532,88,758,598,1088,781,1178, - 1122,1235,1234,74,280,606,19,16,20,17, - 528,1252,44,539,532,1681,758,598,1088,781, - 1178,1122,1235,1234,74,91,190,187,988,1748, - 606,19,16,20,17,528,42,44,539,532, - 289,758,598,1088,1591,794,1744,452,19,16, - 20,17,528,42,44,539,532,227,758,598, - 1088,781,1178,1122,1235,1234,93,21,62,331, - 314,19,16,20,17,528,1252,44,539,532, - 422,758,598,1088,781,1178,1122,1235,1234,74, - 1623,53,239,1446,606,19,16,20,17,528, - 1252,44,539,532,88,758,598,1088,781,1178, - 1122,1235,1234,74,92,606,19,16,20,17, - 528,1252,44,539,532,18,758,598,1088,781, - 1178,1122,1235,1234,74,85,606,19,16,20, - 17,528,1252,44,539,532,88,758,598,1088, - 781,1178,1122,1235,1234,74,84,606,19,16, - 20,17,528,1252,44,539,532,1670,758,598, - 1088,781,1178,1122,1235,1234,74,83,606,19, - 16,20,17,528,1252,44,539,532,88,758, - 598,1088,781,1178,1122,1235,1234,74,82,606, - 19,16,20,17,528,1252,44,539,532,1671, - 758,598,1088,781,1178,1122,1235,1234,74,81, - 606,19,16,20,17,528,1252,44,539,532, - 88,758,598,1088,781,1178,1122,1235,1234,74, - 80,606,19,16,20,17,528,1252,44,539, - 532,1694,758,598,1088,781,1178,1122,1235,1234, - 74,79,606,19,16,20,17,528,1252,44, - 539,532,88,758,598,1088,781,1178,1122,1235, - 1234,74,78,606,19,16,20,17,528,1252, - 44,539,532,1695,758,598,1088,781,1178,1122, - 1235,1234,74,77,606,19,16,20,17,528, - 1252,44,539,532,88,758,598,1088,781,1178, - 1122,1235,1234,74,76,606,19,16,20,17, - 528,1252,44,539,532,1698,758,598,1088,781, - 1178,1122,1235,1234,74,75,606,19,16,20, - 17,528,1252,44,539,532,88,758,598,1088, - 781,1178,1122,1235,1234,74,1713,606,19,16, - 20,17,528,1252,44,539,532,22,758,598, - 1088,781,1178,1122,1235,1234,74,1754,606,19, - 16,20,17,528,42,44,539,532,8,758, - 598,1088,781,1178,1122,1235,1234,93,606,19, - 16,20,17,528,42,44,539,532,246,758, - 598,1088,781,1178,1122,1235,1234,93,190,294, - 190,296,135,996,1793,606,19,16,20,17, - 528,42,44,1372,606,19,16,20,17,528, - 42,44,539,532,1824,758,598,1088,781,1178, - 1122,1235,1234,93,606,19,16,20,17,528, - 42,44,539,532,795,758,598,1088,781,1178, - 1122,1235,1234,93,190,30,523,1574,763,996, - 211,606,19,16,20,17,528,42,44,1373, - 606,19,16,20,17,528,42,44,539,532, - 201,758,598,1088,781,1178,1122,1235,1234,93, - 606,19,16,20,17,528,42,44,539,532, - 918,758,598,1088,781,1178,1122,1235,1234,73, - 225,178,537,1834,59,340,202,606,19,16, - 20,17,528,42,44,539,532,23,758,598, - 1525,803,307,134,212,323,324,113,17,966, - 854,1879,137,133,135,159,953,569,1842,569, - 1745,606,19,16,20,17,528,42,44,539, - 532,17,758,1576,196,139,1260,165,1777,273, - 96,1523,193,143,146,149,152,534,217,718, - 220,1384,222,223,228,794,794,266,396,395, - 271,262,259,134,212,323,324,171,781,881, - 1838,263,147,133,135,159,192,240,242,1700, - 606,19,16,20,17,528,42,44,539,532, - 276,758,598,1088,781,1178,1625,893,273,656, - 19,16,20,17,528,319,260,217,718,220, - 1384,222,223,228,909,32,266,396,395,271, - 1779,17,899,901,1746,695,273,88,174,88, - 1377,1480,17,1703,926,218,718,220,1384,222, - 223,228,695,89,268,396,395,271,272,909, - 278,834,217,718,220,1384,222,223,228,1746, - 87,1883,735,226,281,1789,606,19,16,20, - 17,528,42,44,539,532,88,758,1577,427, - 19,16,20,17,528,42,35,217,718,220, - 1384,222,223,228,17,256,794,279,197,199, - 1789,330,865,874,1708,1046,887,1220,606,19, - 16,20,17,528,42,44,539,532,329,1378, - 606,19,16,20,17,528,42,44,539,532, - 256,1452,27,198,199,606,19,16,20,17, - 528,42,44,539,532,375,1453,606,19,16, - 20,17,528,42,44,539,532,927,1456,606, - 19,16,20,17,528,42,37,282,134,212, - 323,324,934,948,1759,889,256,141,133,135, - 159,606,19,16,20,17,528,42,44,539, - 1507,968,606,19,16,20,17,528,42,36, - 140,1746,165,606,19,16,20,17,528,42, - 44,539,1522,179,152,884,606,19,16,20, - 17,528,42,35,256,1689,277,772,937,217, - 718,220,1384,222,223,228,276,134,212,323, - 324,377,1779,208,273,207,150,133,135,159, - 427,19,16,20,17,528,42,35,973,1123, - 1784,203,266,396,395,271,842,306,134,212, - 323,324,246,794,938,784,1377,153,133,135, - 159,606,19,16,20,17,528,42,34,254, - 212,323,324,898,1703,241,218,718,220,1384, - 222,223,228,376,606,19,16,20,17,528, - 42,47,606,19,16,20,17,528,42,46, - 622,647,273,606,19,16,20,17,528,42, - 45,503,19,16,20,17,528,42,43,913, - 266,396,395,271,672,697,17,529,722,569, - 913,17,985,986,265,144,469,569,948,1759, - 569,1867,941,794,850,1697,1260,681,19,16, - 20,17,528,317,1260,1702,230,1260,706,19, - 16,20,17,528,40,243,1702,254,212,323, - 324,1812,258,976,987,63,63,1379,994,1712, - 258,256,1347,258,794,1783,494,1712,1379,804, - 1712,731,19,16,20,17,528,33,731,19, - 16,20,17,528,32,17,244,958,208,88, - 17,1702,1702,88,998,366,17,1364,180,330, - 366,17,1872,794,1179,1784,366,1347,1608,17, - 224,366,196,87,229,794,1643,196,87,366, - 794,1643,904,196,87,293,794,1643,196,87, - 684,794,1643,17,794,836,196,87,80,794, - 1643,878,797,366,256,1986,920,1986,256,1986, - 797,273,57,1986,962,1986,295,1986,1703,194, - 196,87,569,794,1643,253,212,323,324,268, - 396,395,271,253,212,323,324,169,1004,196, - 1986,204,907,1777,942,1317,1986,569,1986,797, - 1986,1986,478,797,569,17,1986,1986,1986,1986, - 1986,542,695,233,196,695,1986,1986,1777,542, - 1986,1260,253,212,323,324,253,212,323,324, - 87,191,312,87,1986,1617,1986,1986,1986,1986, - 760,1986,1986,1986,1526,1257,1986,258,1036,1986, - 1986,1986,1426,1986,1712,1986,191,1986,1616,1986, - 1986,1986,1714,1986,1986,1986,1986,1986,1986,1751, - 1257,1986,1986,1986,1986,1986,1986,1986,1986,1986, - 1986,1986,1986,1986,1986,1986,1986,1986,1986,1986, - 1986,394,1986,0,326,737,0,19,178,0, - 1,2211,0,1,2222,0 + 89,10,104,22,22,21,21,37,37,72, + 72,1,1,2,2,2,2,3,3,3, + 4,5,5,5,5,5,5,5,5,54, + 54,73,6,6,6,6,6,6,6,6, + 6,6,6,7,7,8,8,8,8,9, + 9,9,11,11,11,12,12,12,12,12, + 13,13,13,14,14,15,15,16,16,17, + 17,18,18,19,19,20,20,20,20,20, + 20,20,20,20,20,20,20,105,31,28, + 90,90,75,75,46,106,106,106,106,106, + 106,106,107,107,107,108,108,113,113,114, + 114,109,109,110,110,110,116,116,111,111, + 111,111,112,112,112,112,112,115,115,27, + 27,27,27,27,33,33,33,81,81,76, + 76,76,76,77,77,77,78,78,78,79, + 79,79,80,80,80,117,117,118,118,119, + 34,36,36,36,36,36,55,57,57,57, + 57,57,57,57,57,57,57,57,57,66, + 63,63,91,92,67,67,64,64,64,68, + 82,82,83,83,69,69,69,32,93,93, + 84,85,85,85,65,65,94,86,86,87, + 87,70,70,23,24,24,24,35,51,51, + 38,38,38,38,41,41,43,39,39,40, + 44,44,120,120,42,121,121,95,95,29, + 29,29,29,29,29,29,29,29,88,52, + 52,52,52,30,59,59,58,58,58,60, + 60,53,53,96,96,45,45,61,61,61, + 47,47,47,48,49,49,49,50,50,50, + 50,56,56,56,62,97,74,74,74,74, + 71,98,99,99,100,100,101,101,122,122, + 123,123,124,124,124,124,126,126,125,125, + 125,127,127,89,89,2,2,2,6,6, + 6,6,6,6,23,23,25,25,26,26, + 102,102,102,106,128,128,128,128,128,128, + 128,111,111,111,111,111,111,111,111,111, + 111,111,111,111,111,111,111,111,111,111, + 111,111,111,111,111,129,129,1,1199,17, + 21,18,423,1198,45,429,426,88,533,522, + 568,535,719,672,1141,758,75,92,380,1210, + 135,213,324,325,919,175,916,973,1726,382, + 137,134,136,160,606,20,17,21,18,423, + 43,45,429,426,200,533,522,568,535,719, + 672,1475,139,790,166,275,373,1535,276,892, + 143,146,149,152,538,219,718,221,1398,223, + 224,229,414,1506,1553,1574,1580,1612,1208,531, + 20,17,21,18,423,1198,45,429,426,394, + 533,522,568,535,719,672,1141,758,75,281, + 581,20,17,21,18,423,1198,45,429,426, + 394,533,522,568,535,719,672,1141,758,75, + 281,63,1639,1200,292,606,20,17,21,18, + 423,43,45,429,426,286,533,522,568,535, + 1399,1596,427,20,17,21,18,423,43,36, + 287,1534,245,542,190,31,286,190,31,952, + 246,840,1596,62,246,53,190,1666,115,190, + 187,287,953,1206,1779,347,20,17,21,18, + 423,1198,45,429,426,394,533,522,568,535, + 719,672,1141,758,75,281,190,186,8,225, + 179,756,20,17,21,18,423,1198,45,429, + 426,1859,533,522,568,535,719,672,1141,758, + 75,1283,135,213,324,325,1401,25,539,716, + 24,288,137,134,136,160,210,1596,427,20, + 17,21,18,423,43,36,289,631,20,17, + 21,18,423,322,139,627,166,786,1590,388, + 331,326,143,146,149,152,538,606,20,17, + 21,18,423,43,40,1506,1553,1574,1580,1612, + 1208,281,20,17,21,18,423,1198,45,429, + 426,1849,533,522,568,535,719,672,1141,758, + 75,1246,135,239,556,20,17,21,18,423, + 1198,45,429,426,171,533,522,568,535,719, + 672,1141,758,75,281,606,20,17,21,18, + 423,1198,45,429,426,63,533,522,568,535, + 719,672,1141,758,75,92,190,188,988,763, + 606,20,17,21,18,423,43,45,429,426, + 290,533,522,568,1400,1534,1596,452,20,17, + 21,18,423,43,45,429,426,228,533,522, + 568,535,719,672,1141,758,94,1325,59,332, + 314,20,17,21,18,423,1198,45,429,426, + 414,533,522,568,535,719,672,1141,758,75, + 1562,282,240,1434,606,20,17,21,18,423, + 1198,45,429,426,88,533,522,568,535,719, + 672,1141,758,75,93,606,20,17,21,18, + 423,1198,45,429,426,19,533,522,568,535, + 719,672,1141,758,75,86,606,20,17,21, + 18,423,1198,45,429,426,88,533,522,568, + 535,719,672,1141,758,75,85,606,20,17, + 21,18,423,1198,45,429,426,1477,533,522, + 568,535,719,672,1141,758,75,84,606,20, + 17,21,18,423,1198,45,429,426,88,533, + 522,568,535,719,672,1141,758,75,83,606, + 20,17,21,18,423,1198,45,429,426,1478, + 533,522,568,535,719,672,1141,758,75,82, + 606,20,17,21,18,423,1198,45,429,426, + 88,533,522,568,535,719,672,1141,758,75, + 81,606,20,17,21,18,423,1198,45,429, + 426,1492,533,522,568,535,719,672,1141,758, + 75,80,606,20,17,21,18,423,1198,45, + 429,426,88,533,522,568,535,719,672,1141, + 758,75,79,606,20,17,21,18,423,1198, + 45,429,426,1504,533,522,568,535,719,672, + 1141,758,75,78,606,20,17,21,18,423, + 1198,45,429,426,88,533,522,568,535,719, + 672,1141,758,75,77,606,20,17,21,18, + 423,1198,45,429,426,1533,533,522,568,535, + 719,672,1141,758,75,76,606,20,17,21, + 18,423,1198,45,429,426,88,533,522,568, + 535,719,672,1141,758,75,74,606,20,17, + 21,18,423,1198,45,429,426,23,533,522, + 568,535,719,672,1141,758,75,1741,606,20, + 17,21,18,423,1198,45,429,426,88,533, + 522,568,535,719,672,1141,758,75,1753,606, + 20,17,21,18,423,43,45,429,426,273, + 533,522,568,535,719,672,1141,758,94,606, + 20,17,21,18,423,43,45,429,426,795, + 533,522,568,535,719,672,1141,758,94,190, + 295,340,996,190,297,1785,606,20,17,21, + 18,423,43,45,1202,606,20,17,21,18, + 423,43,45,429,426,1793,533,522,568,535, + 719,672,1141,758,94,606,20,17,21,18, + 423,43,45,429,426,794,533,522,568,535, + 719,672,1141,758,94,17,1443,566,307,781, + 936,212,899,901,996,449,904,22,225,179, + 134,606,20,17,21,18,423,43,45,429, + 426,202,533,522,568,535,719,672,1141,758, + 94,135,213,324,325,274,1535,113,854,144, + 144,138,134,136,160,88,794,569,705,1878, + 1867,174,968,269,399,396,272,203,1668,865, + 278,231,1581,140,197,166,279,274,241,1360, + 63,144,147,150,153,538,218,718,221,1398, + 223,224,229,794,874,267,399,396,272,263, + 218,718,221,1398,223,224,229,881,887,264, + 1526,293,1619,1766,927,243,193,1737,606,20, + 17,21,18,423,43,45,429,426,277,533, + 522,568,535,719,1476,893,274,656,20,17, + 21,18,423,320,261,218,718,221,1398,223, + 224,229,934,32,267,399,396,272,1766,17, + 889,17,909,695,274,1535,63,277,1088,1860, + 958,1669,1581,219,718,221,1398,223,224,229, + 1352,90,269,399,396,272,606,20,17,21, + 18,423,43,45,429,426,1582,533,522,1350, + 218,718,221,1398,223,224,229,772,926,937, + 377,256,256,1723,606,20,17,21,18,423, + 43,45,429,426,88,533,1357,606,20,17, + 21,18,423,43,45,429,426,227,533,1397, + 909,17,195,1046,794,280,198,200,28,283, + 1581,1402,256,256,306,1593,606,20,17,21, + 18,423,43,45,429,426,330,1251,606,20, + 17,21,18,423,43,45,429,1304,218,718, + 221,1398,223,224,229,938,784,622,647,180, + 204,1723,606,20,17,21,18,423,43,45, + 429,426,672,1259,606,20,17,21,18,423, + 43,45,429,426,697,1284,375,681,20,17, + 21,18,423,318,199,200,606,20,17,21, + 18,423,43,45,429,426,819,1298,17,135, + 213,324,325,722,985,986,1735,941,1827,142, + 134,136,160,606,20,17,21,18,423,43, + 45,429,1342,40,706,20,17,21,18,423, + 41,141,794,166,606,20,17,21,18,423, + 43,45,1203,884,96,17,135,213,324,325, + 152,63,834,1724,242,470,145,134,136,160, + 976,966,1886,918,277,256,987,135,213,324, + 325,569,274,135,213,324,325,148,134,136, + 160,1534,207,151,134,136,160,803,1238,994, + 267,399,396,272,606,20,17,21,18,423, + 43,39,181,397,1088,135,213,324,325,494, + 255,213,324,325,260,154,134,136,160,427, + 20,17,21,18,423,43,36,606,20,17, + 21,18,423,43,38,194,804,998,256,948, + 1666,247,606,20,17,21,18,423,43,37, + 606,20,17,21,18,423,43,36,606,20, + 17,21,18,423,43,35,898,606,20,17, + 21,18,423,43,48,205,491,606,20,17, + 21,18,423,43,47,606,20,17,21,18, + 423,43,46,330,913,274,503,20,17,21, + 18,423,43,44,569,797,80,913,17,209, + 2003,794,2003,267,399,396,272,569,1889,2003, + 2003,1238,478,794,1534,1142,1667,266,254,213, + 324,325,695,244,1238,2003,88,1534,731,20, + 17,21,18,423,34,245,1206,259,17,953, + 88,2003,1245,313,1537,794,17,225,367,1325, + 259,88,2003,794,1926,1245,367,1537,731,20, + 17,21,18,423,33,197,88,294,256,794, + 1696,17,230,197,88,296,907,794,1696,17, + 2003,367,2003,377,2003,2003,17,948,1666,367, + 2003,836,2003,1808,17,2003,367,234,197,88, + 2003,395,794,1696,367,684,197,88,2003,797, + 794,1696,2003,197,88,2003,878,794,1696,797, + 57,197,88,2003,920,794,1696,529,2003,2003, + 569,962,254,213,324,325,2003,569,942,1004, + 2003,2003,254,213,324,325,797,197,569,169, + 2003,17,1360,2003,1238,2003,2003,209,2003,569, + 2003,695,2003,2003,2003,1238,2003,2003,1617,254, + 213,324,325,1204,1667,2003,197,2003,1617,88, + 259,1360,1185,2003,2003,1791,842,1537,2003,192, + 850,259,2003,2003,2003,2003,1414,760,1537,2003, + 2003,2003,1442,1237,2003,1930,2003,1057,2003,255, + 213,324,325,255,213,324,325,17,192,2003, + 2003,2003,1816,2003,2003,2003,2003,695,2003,2003, + 2003,1595,1237,2003,2003,2003,2003,2003,2003,2003, + 2003,2003,2003,2003,2003,88,2003,2003,1444,2003, + 0,327,737,0,20,179,0,1,2229,0, + 1,2240,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -568,110 +571,110 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface TermAction { public final static char termAction[] = {0, - 1986,1996,1775,1997,1566,1542,1509,62,1631,1768, - 1761,1728,1998,1999,2000,2001,1,637,607,2300, - 2301,2302,1717,1349,434,2199,2200,2201,2313,388, - 2314,1,2148,2149,2147,2202,2150,2146,90,129, - 2153,2158,2157,2155,2156,2154,2159,2160,2152,2161, - 2162,2163,64,529,1164,1108,1986,1,72,1, - 1237,54,252,190,2199,2200,2201,2313,388,2314, - 90,2148,2149,2147,2202,2150,2146,1416,1271,1986, - 2223,1,1,1,1,1,1,1986,1,1, - 1,1,1,1,1991,130,1,1,1,1, - 1,1,1,1,1,1,1,1,190,1, - 1,1,1986,1,181,1,2181,1531,1553,189, - 2199,2200,2201,2313,388,2314,1990,2148,2149,2147, - 2202,2150,2146,182,68,402,1885,1,1,1, + 2003,2014,1778,2015,1680,1672,1657,63,1688,1798, + 1768,1554,2016,2017,2018,2019,1,1624,637,2318, + 2319,2320,1507,1327,617,2217,2218,2219,2331,529, + 2332,1,2166,2167,2165,2220,2168,2164,91,130, + 2171,2176,2175,2173,2174,2172,2177,2178,2170,2179, + 2180,2181,65,531,1129,530,2003,1,73,1, + 1376,55,253,191,2217,2218,2219,2331,529,2332, + 91,2166,2167,2165,2220,2168,2164,1417,1404,2003, + 2241,1,1,1,1,1,1,2003,1,1, + 1,1,1,1,2009,131,1,1,1,1, + 1,1,1,1,1,1,1,1,191,1, + 1,1,2003,1,182,1,2199,1458,1543,190, + 2217,2218,2219,2331,529,2332,2008,2166,2167,2165, + 2220,2168,2164,183,69,404,1957,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1991,131,1,1,1,1,1,1,1,1, - 1,1,1,1,189,1,1,1,1986,1, - 284,1,2181,58,1986,190,2199,2200,2201,2313, - 388,2314,1990,2148,2149,2147,2202,2150,2146,1986, - 1996,1986,1997,1,1,1,1,1,1,88, - 1,1,1,1,1,1,132,494,1,1, + 2009,132,1,1,1,1,1,1,1,1, + 1,1,1,1,190,1,1,1,2003,1, + 285,1,2199,59,2003,191,2217,2218,2219,2331, + 529,2332,2008,2166,2167,2165,2220,2168,2164,2003, + 2014,2003,2015,1,1,1,1,1,1,89, + 1,1,1,1,1,1,133,495,1,1, 1,1,1,1,1,1,1,1,1,1, - 190,1,1,1,1986,1996,1986,1997,2181,1531, - 1553,2199,2200,2201,2313,388,2314,784,2148,2149, - 2147,2202,2150,2146,59,184,3346,1986,3346,2199, - 2200,2201,2313,388,2314,1986,2148,2149,2147,2202, - 2150,2146,1993,1973,2153,2158,2157,2155,2156,2154, - 2159,2160,2152,2161,2162,2163,61,529,1164,1108, - 1,1996,1775,1997,511,1542,1509,1989,1631,1768, - 1761,1728,1998,1999,2000,2001,1986,637,607,2300, - 2301,2302,1717,1349,434,1986,42,1992,1497,1485, - 1470,1458,571,1986,1996,1775,1997,1600,1542,1509, - 1989,1631,1768,1761,1728,1998,1999,2000,2001,200, - 637,607,2300,2301,2302,1717,1349,434,1988,70, - 1497,1485,1470,1458,1986,1057,1,1996,1775,1997, - 1566,1542,1509,28,1631,1768,1761,1728,1998,1999, - 2000,2001,3322,637,607,2300,2301,2302,1717,1349, - 434,1988,51,1210,128,1015,65,1181,1125,1986, - 1996,269,1997,520,1237,994,973,952,931,910, - 868,889,847,826,805,1258,1986,1190,28,2199, - 2200,2201,2313,388,2314,1986,2148,2149,2147,2202, - 2150,2146,651,1330,2153,2158,2157,2155,2156,2154, - 2159,2160,2152,2161,2162,2163,1986,1996,1775,1997, - 1566,1542,1509,1989,1631,1768,1761,1728,1998,1999, - 2000,2001,1986,637,607,2300,2301,2302,1717,1349, - 434,1986,1996,1775,1997,1429,1542,1509,1989,1631, - 1768,1761,1728,1998,1999,2000,2001,1986,637,607, - 2300,2301,2302,1717,1349,434,1986,1986,1,1, - 1,1,1,1,1988,1,1,1,1,1, - 1,1,1,1986,1,1,1,1,1,1, - 1,1,1986,1996,1775,1997,1566,1542,1509,1988, - 1631,1768,1761,1728,1998,1999,2000,2001,387,637, - 607,2300,2301,2302,1717,1349,434,1986,1,1983, - 1,1996,1775,1997,1566,1542,1509,2299,1631,1768, - 1761,1728,1998,1999,2000,2001,3322,637,607,2300, - 2301,2302,1717,1349,434,1986,1996,1775,1997,1566, - 1542,1509,674,1631,1768,1761,1728,1998,1999,2000, - 2001,3322,637,607,2300,2301,2302,1717,1349,434, - 1,1996,1775,1997,1566,1542,1509,2243,1631,1768, - 1761,1728,1998,1999,2000,2001,3322,637,607,2300, - 2301,2302,1717,1349,434,1986,1996,1775,1997,1566, - 1542,1509,1986,1631,1768,1761,1728,1998,1999,2000, - 2001,322,637,607,2300,2301,2302,1717,1349,434, - 1986,1996,1780,1997,1566,1542,1509,387,1631,1768, - 1761,1728,1998,1999,2000,2001,320,637,607,2300, - 2301,2302,1717,1349,434,1986,1996,1786,1997,1566, - 1542,1509,387,1631,1768,1761,1728,1998,1999,2000, - 2001,318,637,607,2300,2301,2302,1717,1349,434, - 1986,1996,1791,1997,1566,1542,1509,387,1631,1768, - 1761,1728,1998,1999,2000,2001,41,637,607,2300, - 2301,2302,1717,1349,434,1986,1996,1799,1997,1566, - 1542,1509,387,1631,1768,1761,1728,1998,1999,2000, - 2001,1986,637,607,2300,2301,2302,1717,1349,434, - 1986,1996,1823,1997,1566,1542,1509,387,1631,1768, - 1761,1728,1998,1999,2000,2001,1986,637,607,2300, - 2301,2302,1717,1349,434,1,1996,1775,1997,1566, - 1542,1509,66,1631,1768,1761,1728,1998,1999,2000, - 2001,60,637,607,2300,2301,2302,1717,1349,434, - 19,1986,1977,69,1977,1986,1996,1977,1997,31, - 1986,1365,1986,1986,183,3350,1986,3350,2011,2012, - 1989,1281,248,210,1986,178,178,178,178,178, - 178,1977,178,178,178,178,178,178,247,1977, - 1382,2199,2200,2201,2313,388,2314,1,1,1, - 1,1,1,249,720,1497,1485,1470,1458,205, - 3351,250,3351,2199,2200,2201,2313,388,2314,251, - 1174,1988,1986,261,2211,1319,494,1,1,1, - 1,1,1,1,57,526,2199,2200,2201,2313, - 388,2314,1134,56,2199,2200,2201,2313,388,2314, - 1,1980,1319,1,651,1565,55,1991,63,1986, - 1991,48,267,2211,1319,1673,252,264,50,1565, - 49,1,1673,267,1673,1565,1986,252,1,2211, - 1541,651,1,1991,651,270,252,1986,1986,1990, - 1531,1553,1990,651,1995,221,53,1705,651,1531, - 1553,1181,1125,52,651,290,67,71,1181,1125, - 255,1,1531,1553,1828,1990,651,207,1996,1078, - 1997,326,29,1662,1654,1399,651,1,1416,1271, - 1662,1654,1662,1654,1995,1,1098,1,2211,1541, - 283,2243,252,2211,1541,1986,1154,1371,1259,1118, - 206,535,1974,535,1986,1986,1986,219,1251,1401, - 544,1444,1994,1986,188,29,1120,206,188,188, - 2243,1986,1696,1986,1986,1986,1986,1986,720,1701, - 184,1330,1986,1986,183,205,1986,1986,651,1986, - 1986,1986,1371,1986,2242,1986,1986,1986,1986,1986, - 1986,1986,1994,2014,1986,3332 + 191,1,1,1,2003,2014,2003,2015,2199,1458, + 1543,2217,2218,2219,2331,529,2332,784,2166,2167, + 2165,2220,2168,2164,60,185,3364,2003,3364,2217, + 2218,2219,2331,529,2332,2003,2166,2167,2165,2220, + 2168,2164,2011,1990,2171,2176,2175,2173,2174,2172, + 2177,2178,2170,2179,2180,2181,62,531,1129,530, + 1,2014,1778,2015,512,1672,1657,2007,1688,1798, + 1768,1554,2016,2017,2018,2019,2003,1624,637,2318, + 2319,2320,1507,1327,617,2003,43,2010,1516,1494, + 1482,1446,571,2003,2014,1778,2015,1649,1672,1657, + 2007,1688,1798,1768,1554,2016,2017,2018,2019,201, + 1624,637,2318,2319,2320,1507,1327,617,2006,71, + 1516,1494,1482,1446,2003,1078,1,2014,1778,2015, + 1680,1672,1657,29,1688,1798,1768,1554,2016,2017, + 2018,2019,3340,1624,637,2318,2319,2320,1507,1327, + 617,2006,52,1036,129,1015,66,1564,1146,2003, + 2014,270,2015,1239,1376,994,973,952,931,910, + 868,889,847,826,805,1349,2003,1211,29,2217, + 2218,2219,2331,529,2332,2003,2166,2167,2165,2220, + 2168,2164,651,1308,2171,2176,2175,2173,2174,2172, + 2177,2178,2170,2179,2180,2181,2003,2014,1778,2015, + 1680,1672,1657,2007,1688,1798,1768,1554,2016,2017, + 2018,2019,2003,1624,637,2318,2319,2320,1507,1327, + 617,2003,2014,1778,2015,608,1672,1657,2007,1688, + 1798,1768,1554,2016,2017,2018,2019,2003,1624,637, + 2318,2319,2320,1507,1327,617,2003,2003,1,1, + 1,1,1,1,2006,1,1,1,1,1, + 1,1,1,2003,1,1,1,1,1,1, + 1,1,2003,2014,1778,2015,1680,1672,1657,2006, + 1688,1798,1768,1554,2016,2017,2018,2019,1195,1624, + 637,2318,2319,2320,1507,1327,617,2003,1,2000, + 1,2014,1778,2015,1680,1672,1657,2317,1688,1798, + 1768,1554,2016,2017,2018,2019,3340,1624,637,2318, + 2319,2320,1507,1327,617,2003,2014,1778,2015,1680, + 1672,1657,674,1688,1798,1768,1554,2016,2017,2018, + 2019,3340,1624,637,2318,2319,2320,1507,1327,617, + 1,2014,1778,2015,1680,1672,1657,2261,1688,1798, + 1768,1554,2016,2017,2018,2019,3340,1624,637,2318, + 2319,2320,1507,1327,617,2003,2014,1778,2015,1680, + 1672,1657,2003,1688,1798,1768,1554,2016,2017,2018, + 2019,323,1624,637,2318,2319,2320,1507,1327,617, + 2003,2014,1786,2015,1680,1672,1657,1195,1688,1798, + 1768,1554,2016,2017,2018,2019,321,1624,637,2318, + 2319,2320,1507,1327,617,2003,2014,1811,2015,1680, + 1672,1657,1195,1688,1798,1768,1554,2016,2017,2018, + 2019,319,1624,637,2318,2319,2320,1507,1327,617, + 2003,2014,1819,2015,1680,1672,1657,1195,1688,1798, + 1768,1554,2016,2017,2018,2019,42,1624,637,2318, + 2319,2320,1507,1327,617,2003,2014,1826,2015,1680, + 1672,1657,1195,1688,1798,1768,1554,2016,2017,2018, + 2019,2003,1624,637,2318,2319,2320,1507,1327,617, + 2003,2014,1834,2015,1680,1672,1657,1195,1688,1798, + 1768,1554,2016,2017,2018,2019,2003,1624,637,2318, + 2319,2320,1507,1327,617,1,2014,1778,2015,1680, + 1672,1657,67,1688,1798,1768,1554,2016,2017,2018, + 2019,61,1624,637,2318,2319,2320,1507,1327,617, + 20,2003,1994,70,1994,2003,2014,1994,2015,32, + 2003,1343,2003,2003,184,3368,2003,3368,2029,2030, + 2007,1351,248,211,2003,179,179,179,179,179, + 179,1994,179,179,179,179,179,179,249,1994, + 1891,2217,2218,2219,2331,529,2332,2217,2218,2219, + 2331,529,2332,250,720,1516,1494,1482,1446,206, + 3369,251,3369,1,1,1,1,1,1,252, + 527,2006,2003,262,2229,1297,495,1,1,1, + 1,1,1,1,58,524,2217,2218,2219,2331, + 529,2332,1155,57,2217,2218,2219,2331,529,2332, + 1,1997,1297,1,651,1573,56,2009,64,2003, + 2009,49,268,2229,1297,1715,253,265,51,1573, + 50,1,1715,268,1715,1573,2003,253,1,2229, + 1252,651,1,2009,651,271,253,2003,2003,2008, + 1458,1543,2008,651,2013,222,54,1240,651,1458, + 1543,1564,1146,53,651,291,68,72,1564,1146, + 256,1,1458,1543,1736,2008,651,208,2014,1099, + 2015,327,30,1707,1697,1430,651,1,1417,1404, + 1707,1697,1707,1697,2013,1,1119,1,2229,1252, + 284,2261,253,2229,1252,2003,1175,1431,1591,1139, + 207,536,1991,536,2003,2003,2003,220,1270,1356, + 545,1528,2012,2003,189,30,1143,207,189,189, + 2261,2003,1575,2003,2003,2003,2003,2003,720,1738, + 185,1308,2003,2003,184,206,2003,2003,651,2003, + 2003,2003,1431,2003,2260,2003,2003,2003,2003,2003, + 2003,2003,2012,2032,2003,3350 }; }; public final static char termAction[] = TermAction.termAction; @@ -679,29 +682,29 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface Asb { public final static char asb[] = {0, - 473,58,146,102,146,146,146,146,146,146, - 146,146,146,146,146,146,64,8,404,401, - 408,406,414,412,416,415,418,417,71,146, - 8,8,8,8,8,386,386,286,146,283, - 283,347,8,146,146,146,146,146,146,146, - 146,146,146,146,146,146,146,146,146,146, - 146,146,146,146,146,146,146,146,146,146, - 146,146,146,283,283,283,283,283,283,106, - 113,351,137,353,281,280,319,1,331,133, - 331,133,133,331,133,331,28,234,401,401, - 406,406,406,406,404,404,412,408,408,415, - 414,317,417,416,389,389,389,389,135,111, - 347,351,140,106,51,170,283,429,356,170, - 133,386,386,133,386,146,111,351,339,51, - 106,169,137,283,345,28,282,358,106,170, - 135,195,135,228,230,61,225,135,339,51, - 146,146,106,170,353,312,311,351,358,283, - 135,195,228,228,225,109,464,386,146,60, - 225,111,51,339,106,106,283,429,356,345, - 195,225,466,195,228,230,461,230,113,106, - 386,146,111,339,358,195,468,230,225,146, - 386,106,230,283,282,225,425,146,424,165, - 351,225,225,387,468,146,165,230 + 473,1,142,41,142,142,142,142,142,142, + 142,142,142,142,142,142,3,55,23,20, + 27,25,33,31,35,34,37,36,9,142, + 55,55,55,55,55,433,433,247,142,240, + 240,394,55,142,142,142,142,142,142,142, + 142,142,142,142,142,142,142,142,142,142, + 142,142,142,142,142,142,142,142,142,142, + 142,142,142,240,240,240,240,240,240,45, + 109,398,133,400,238,237,366,48,378,129, + 378,129,129,378,129,378,75,191,20,20, + 25,25,25,25,23,23,31,27,27,34, + 33,324,36,35,326,326,326,326,131,107, + 394,398,136,45,98,166,240,441,403,166, + 129,433,433,129,433,142,107,398,386,98, + 45,165,133,240,392,75,239,405,45,166, + 131,272,131,305,307,244,302,131,386,386, + 142,142,45,166,400,319,318,398,405,240, + 131,272,305,305,302,105,439,433,142,243, + 302,107,386,98,45,45,240,441,403,392, + 272,302,311,272,305,307,436,307,109,45, + 433,142,107,98,386,405,272,313,307,302, + 142,433,45,307,386,240,239,302,362,142, + 361,161,398,302,302,434,313,142,161,307 }; }; public final static char asb[] = Asb.asb; @@ -709,54 +712,54 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface Asr { public final static byte asr[] = {0, - 7,68,38,58,39,75,31,11,12,13, - 14,15,2,9,10,8,4,5,6,17, - 18,19,20,21,22,23,24,1,3,53, - 54,55,48,40,45,43,44,42,41,46, - 47,49,50,51,37,34,32,33,36,35, - 25,26,27,29,28,30,0,89,0,69, - 31,61,0,75,31,2,61,76,9,10, - 8,4,5,6,62,63,56,57,64,65, - 66,67,70,71,72,73,74,77,78,52, - 69,79,80,81,82,83,85,84,86,87, - 88,68,39,89,38,58,7,0,7,52, - 31,61,9,10,8,4,5,6,17,18, - 11,22,23,24,2,12,13,14,15,19, - 20,21,1,3,16,0,58,7,32,25, - 26,27,28,29,30,12,13,14,15,19, - 20,21,3,9,10,8,5,6,17,18, - 11,22,23,24,4,2,1,0,32,58, - 7,9,10,8,4,5,6,17,18,11, - 22,23,24,2,1,3,12,13,14,15, - 19,20,21,0,33,40,25,41,53,34, + 89,0,31,2,61,76,9,10,69,79, + 80,81,82,83,85,84,86,87,88,4, + 62,63,5,6,57,56,64,65,66,67, + 70,71,8,72,73,74,52,75,77,78, + 68,39,89,38,58,7,0,7,68,38, + 58,39,75,31,11,12,13,14,15,2, + 9,10,8,4,5,6,17,18,19,20, + 21,22,23,24,1,3,53,54,55,48, + 40,45,43,44,42,41,46,47,49,50, + 51,37,34,32,33,36,35,25,26,27, + 29,28,30,0,7,52,31,61,9,10, + 8,4,5,6,17,18,11,22,23,24, + 2,12,13,14,15,19,20,21,1,3, + 16,0,58,7,32,25,26,27,28,29, + 30,12,13,14,15,19,20,21,3,9, + 10,8,5,6,17,18,11,22,23,24, + 4,2,1,0,32,58,7,9,10,8, + 4,5,6,17,18,11,22,23,24,2, + 1,3,12,13,14,15,19,20,21,0, + 26,32,37,27,36,35,34,25,33,28, + 29,30,61,76,9,10,8,5,6,62, + 63,56,57,64,65,66,67,70,71,72, + 73,74,77,78,69,79,80,81,82,83, + 84,85,86,87,88,4,2,31,38,39, + 7,0,69,31,61,0,7,39,11,12, + 13,14,15,1,3,2,9,10,8,4, + 5,6,17,18,19,20,21,22,23,24, + 0,33,40,25,41,53,34,42,35,43, + 44,36,26,45,46,32,54,37,55,47, + 48,27,49,50,51,1,3,28,29,30, + 60,7,52,0,1,3,7,52,38,0, + 75,7,4,1,2,68,0,2,7,38, + 39,75,31,68,0,8,4,5,6,62, + 63,56,57,64,65,66,67,70,71,72, + 73,74,77,78,69,79,80,81,82,83, + 84,85,86,87,88,58,39,52,89,16, + 68,75,7,38,0,48,40,45,43,44, + 42,41,46,47,49,50,51,68,75,37, + 34,32,33,36,35,25,26,27,28,29, + 30,38,1,7,39,2,31,4,0,4, + 2,31,39,7,33,40,25,41,53,34, 42,35,43,44,36,26,45,46,32,54, - 37,55,47,48,27,49,50,51,1,3, - 28,29,30,60,7,52,0,1,3,7, - 52,38,0,26,32,37,27,36,35,34, - 25,33,28,29,30,61,76,9,10,8, - 5,6,62,63,56,57,64,65,66,67, - 70,71,72,73,74,77,78,69,79,80, - 81,82,83,84,85,86,87,88,4,2, - 31,38,39,7,0,7,39,11,12,13, - 14,15,1,3,2,9,10,8,4,5, - 6,17,18,19,20,21,22,23,24,0, - 2,7,38,39,75,31,68,0,48,40, - 45,43,44,42,41,46,47,49,50,51, - 68,75,37,34,32,33,36,35,25,26, - 27,28,29,30,38,1,7,39,2,31, - 4,0,4,2,31,39,7,33,40,25, - 41,53,34,42,35,43,44,36,26,45, - 46,32,54,37,55,47,48,27,49,50, - 51,28,29,30,59,3,1,0,69,79, - 80,81,82,83,84,85,86,87,88,16, - 4,62,63,5,6,57,56,64,65,66, - 67,70,71,8,72,73,74,58,39,52, - 89,77,78,68,75,7,38,0,4,33, - 40,25,41,53,34,42,35,43,44,36, - 26,45,46,32,54,37,55,47,48,27, - 49,50,51,1,3,28,29,30,59,0, - 7,38,52,69,0,75,7,4,1,2, - 68,0,11,12,13,14,15,1,3,2, + 37,55,47,48,27,49,50,51,28,29, + 30,59,3,1,0,7,38,52,69,0, + 4,33,40,25,41,53,34,42,35,43, + 44,36,26,45,46,32,54,37,55,47, + 48,27,49,50,51,1,3,28,29,30, + 59,0,11,12,13,14,15,1,3,2, 9,10,8,4,5,6,17,18,19,20, 21,22,23,24,60,0 }; @@ -766,29 +769,29 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface Nasb { public final static byte nasb[] = {0, - 119,44,35,44,35,35,35,35,35,35, - 35,35,35,35,35,35,44,102,44,44, - 44,44,44,44,44,44,44,44,44,35, - 102,102,102,102,102,23,23,83,103,21, - 21,89,1,35,35,35,35,35,35,35, - 35,35,35,35,35,35,35,35,35,103, - 35,35,35,35,35,35,35,35,35,35, - 35,35,35,21,21,21,21,21,21,54, - 35,9,52,88,16,16,61,12,62,28, - 62,26,26,62,25,62,56,44,44,44, - 44,44,44,44,44,44,44,44,44,44, - 44,44,44,44,44,44,44,44,44,75, - 109,44,45,54,113,53,21,93,20,53, - 7,7,7,7,7,35,33,44,75,113, - 54,53,30,21,71,37,44,95,54,53, - 50,75,44,75,48,14,75,44,75,113, - 35,35,54,53,70,16,16,9,95,21, - 44,115,75,7,86,32,44,7,35,18, - 86,75,113,30,54,54,21,93,20,77, - 75,86,106,64,7,48,44,44,34,54, - 7,35,33,30,98,115,73,48,86,35, - 7,54,48,21,21,86,107,35,44,73, - 9,86,86,44,73,35,79,68 + 105,39,30,39,30,30,30,30,30,30, + 30,30,30,30,30,30,39,108,39,39, + 39,39,39,39,39,39,39,39,39,30, + 108,108,108,108,108,16,16,85,109,70, + 70,94,1,30,30,30,30,30,30,30, + 30,30,30,30,30,30,30,30,30,109, + 30,30,30,30,30,30,30,30,30,30, + 30,30,30,70,70,70,70,70,70,45, + 30,13,43,93,11,11,60,18,61,23, + 61,21,21,61,20,61,55,39,39,39, + 39,39,39,39,39,39,39,39,39,39, + 39,39,39,39,39,39,39,39,39,77, + 51,39,40,45,112,44,70,100,69,44, + 7,7,7,7,7,30,28,39,83,112, + 45,44,98,70,73,32,39,102,45,44, + 63,77,39,77,25,9,77,39,83,77, + 30,30,45,44,72,11,11,13,102,70, + 39,114,77,7,91,27,39,7,30,49, + 91,77,77,112,45,45,70,100,69,79, + 77,91,88,65,7,25,39,39,29,45, + 7,30,28,112,98,118,114,75,25,91, + 30,7,45,25,98,70,70,91,89,30, + 39,75,13,91,91,39,75,30,81,47 }; }; public final static byte nasb[] = Nasb.nasb; @@ -796,18 +799,18 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface Nasr { public final static char nasr[] = {0, - 81,79,78,67,77,76,1,0,36,52, - 0,102,0,99,0,29,0,101,0,10, - 21,0,73,0,94,68,0,91,0,23, - 0,71,10,62,5,0,81,80,79,78, - 67,77,76,0,5,10,0,54,0,92, - 0,10,5,22,0,67,63,64,65,66, - 55,32,0,10,31,69,0,97,0,21, - 49,48,41,39,10,0,49,48,41,39, - 36,0,10,90,0,37,0,21,48,49, - 10,0,36,52,10,27,0,95,10,27, - 0,31,10,30,0,10,72,0,49,48, - 36,0,59,0,83,10,31,0,10,89, + 81,79,78,67,77,76,1,0,99,0, + 29,0,30,52,0,73,0,102,0,94, + 68,0,91,0,54,0,71,10,62,5, + 0,81,80,79,78,67,77,76,0,5, + 10,0,10,5,22,0,97,0,101,0, + 49,48,30,0,67,63,64,65,66,55, + 33,0,92,0,10,32,69,0,10,21, + 0,21,49,48,41,39,10,0,49,48, + 41,39,30,0,10,90,0,10,72,0, + 37,0,21,48,49,10,0,23,0,30, + 52,10,27,0,10,89,0,32,10,31, + 0,59,0,83,10,32,0,95,10,27, 0 }; }; @@ -835,18 +838,18 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, 114,0,0,0,116,120,121,122,123,0, - 124,125,126,127,128,129,130,131,132,133, - 111,110,143,0,0,0,136,0,164,115, - 155,142,0,0,0,0,112,160,162,0, - 163,0,0,0,118,135,173,174,175,0, - 151,161,170,0,145,150,0,165,168,169, - 172,0,146,147,148,149,152,0,154,159, - 176,113,117,119,134,137,138,139,140,141, - 144,0,153,157,0,0,158,167,109,0, - 0,0,156,0,166,171,0,177,178,0, - 179,180,0,0,0,0,0,0,0,0, + 124,125,126,127,128,129,130,131,0,132, + 111,110,142,0,0,0,135,0,163,0, + 115,154,141,0,0,0,112,159,161,0, + 162,0,0,0,118,134,172,173,174,0, + 150,160,169,0,144,149,0,164,167,168, + 171,0,145,146,147,148,151,0,153,158, + 175,113,117,119,133,136,137,138,139,140, + 143,0,152,156,0,0,157,166,109,0, + 0,0,155,0,165,170,0,176,177,0, + 178,179,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -878,10 +881,10 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface ScopeLhs { public final static char scopeLhs[] = { - 65,63,5,65,29,29,63,56,109,50, + 65,63,5,65,29,29,63,56,110,50, 29,44,29,6,6,6,50,29,29,69, 6,5,5,29,29,19,29,102,101,100, - 48,61,29,41,51,3,71,69,7,110, + 48,61,29,41,51,3,71,69,7,111, 5,69,80,79,78,77,76,44,42,44 }; }; @@ -916,28 +919,28 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public final static char scopeRhs[] = {0, 153,31,0,110,0,152,2,24,0,111, 0,152,2,23,0,152,2,22,0,205, - 117,0,31,150,0,161,181,117,16,169, + 117,0,31,149,0,161,181,117,16,169, 0,112,0,0,165,117,2,155,0,165, - 117,2,0,168,2,0,159,117,0,173, + 117,2,0,168,2,0,159,117,0,172, 0,195,117,31,0,9,110,0,127,32, - 195,117,31,0,69,133,110,0,127,195, - 117,32,31,0,195,117,32,31,0,133, + 195,117,31,0,69,132,110,0,127,195, + 117,32,31,0,195,117,32,31,0,132, 110,0,127,32,31,0,127,195,117,31, - 0,127,31,0,148,0,2,0,166,111, + 0,127,31,0,148,0,2,0,165,111, 0,2,111,0,165,117,2,148,0,2, - 0,165,111,0,158,2,0,160,0,161, + 0,164,111,0,158,2,0,159,0,161, 193,117,16,108,201,53,0,112,0,161, - 193,117,16,201,53,0,138,0,113,0, - 200,117,138,0,117,138,0,156,113,0, + 193,117,16,201,53,0,139,0,113,0, + 200,117,139,0,117,139,0,155,113,0, 189,117,16,199,108,198,174,0,189,117, - 16,198,174,0,188,0,149,0,148,0, - 147,0,146,0,145,0,212,94,0,77, - 2,115,111,113,0,212,128,137,2,98, - 0,53,0,0,137,78,125,0,29,132, + 16,198,174,0,188,0,148,0,147,0, + 146,0,145,0,144,0,213,94,0,77, + 2,115,111,113,0,213,128,138,2,98, + 0,53,0,0,138,78,125,0,29,132, 0,152,2,0,111,121,0,152,2,11, 0,161,181,117,16,128,152,2,0,111, 3,0,119,0,112,0,197,2,112,0, - 137,31,112,0,137,2,0 + 138,31,112,0,138,2,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -945,16 +948,16 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface ScopeState { public final static char scopeState[] = {0, - 420,0,1867,1257,1842,0,393,0,1608,1347, - 1399,1541,1364,1319,1260,0,388,0,1230,569, - 366,0,1384,718,396,395,1347,1812,1319,1260, - 1565,1643,0,1768,1761,1728,1717,1349,434,1600, - 1429,511,1681,1330,402,720,494,1416,1271,1237, - 1553,1531,1497,1485,1470,1458,1673,1662,1654,1181, - 1125,1631,1566,1542,1509,637,607,1190,1154,1134, - 1098,1078,1057,1036,760,1210,737,571,651,1015, + 1200,0,1889,1237,1860,0,394,0,397,1325, + 1430,1252,1352,1297,1238,0,529,0,1208,569, + 367,0,1398,718,399,396,1325,1206,1297,1238, + 1573,1696,0,1798,1768,1554,1507,1327,617,1649, + 608,512,1726,1308,404,720,495,1417,1404,1376, + 1543,1458,1516,1494,1482,1446,1715,1707,1697,1564, + 1146,1688,1680,1672,1657,1624,637,1211,1175,1155, + 1119,1099,1078,1057,760,1036,737,571,651,1015, 994,973,952,931,910,889,868,847,826,805, - 366,784,695,674,469,544,448,0 + 367,784,695,674,470,545,449,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -966,25 +969,25 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP 6,5,4,8,10,9,112,2,116,115, 119,118,121,120,123,122,125,124,113,38, 2,2,2,2,2,76,61,2,31,152, - 137,138,117,6,5,63,62,4,67,66, + 138,139,117,6,5,63,62,4,67,66, 65,64,56,57,8,71,70,73,72,78, 77,74,88,87,86,84,85,83,82,81, - 80,79,69,152,152,152,152,152,197,137, + 80,79,69,152,152,152,152,152,197,138, 128,117,31,2,156,155,183,29,184,174, 185,55,54,186,53,187,188,108,115,115, 118,118,118,118,116,116,120,119,119,122, - 121,137,124,123,128,128,128,128,128,16, - 159,143,32,127,117,4,168,117,2,31, - 198,175,175,201,175,68,117,143,4,117, + 121,138,124,123,128,128,128,128,128,16, + 159,137,32,127,117,4,168,117,2,31, + 198,175,175,201,175,68,117,137,4,117, 127,195,166,165,134,117,167,117,153,4, - 108,16,108,16,181,117,16,169,4,117, + 108,16,108,16,181,117,16,169,4,137, 195,32,127,4,2,146,148,117,38,165, 199,117,16,117,161,38,205,61,31,206, - 117,16,117,166,127,127,158,117,2,159, - 16,189,138,190,117,193,108,194,69,153, - 61,31,117,166,117,117,117,193,161,69, - 38,153,181,165,202,189,200,68,158,2, - 117,161,161,38,38,68,159,144 + 117,16,137,117,127,127,158,117,2,159, + 16,189,139,190,117,193,108,194,69,153, + 61,31,117,117,166,117,117,117,193,161, + 69,38,153,181,166,165,202,189,200,68, + 158,2,117,161,161,38,38,68,159,144 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -1119,12 +1122,11 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP "shift_expression", "relational_expression", "equality_expression", - "AND_expression", - "exclusive_OR_expression", - "inclusive_OR_expression", - "logical_AND_expression", - "logical_OR_expression", - "conditional_expression", + "and_expression", + "exclusive_or_expression", + "inclusive_or_expression", + "logical_and_expression", + "logical_or_expression", "assignment_expression", "expression_list_actual", "constant_expression", @@ -1195,20 +1197,20 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 228, + NUM_STATES = 230, NT_OFFSET = 107, - LA_STATE_OFFSET = 2351, + LA_STATE_OFFSET = 2369, MAX_LA = 2, - NUM_RULES = 365, - NUM_NONTERMINALS = 128, - NUM_SYMBOLS = 235, + NUM_RULES = 366, + NUM_NONTERMINALS = 129, + NUM_SYMBOLS = 236, SEGMENT_SIZE = 8192, - START_STATE = 1882, + START_STATE = 1752, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 89, EOLT_SYMBOL = 89, - ACCEPT_ACTION = 1973, - ERROR_ACTION = 1986; + ACCEPT_ACTION = 1990, + ERROR_ACTION = 2003; public final static boolean BACKTRACK = true; diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParser.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParser.java index 9e62301e284..bb6cfaea97b 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParser.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParser.java @@ -17,13 +17,20 @@ import lpg.lpgjavaruntime.*; import java.util.*; import org.eclipse.cdt.core.dom.ast.*; +import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap; import org.eclipse.cdt.core.dom.lrparser.IParser; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.ITokenCollector; +import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack; +import org.eclipse.cdt.core.parser.IScanner; +import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider; +import org.eclipse.cdt.core.index.IIndex; import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; +import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser; import org.eclipse.cdt.internal.core.dom.parser.c.CNodeFactory; import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction; @@ -37,7 +44,9 @@ import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement; import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnarySizeofExpression; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; -public class UPCNoCastExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser< IASTExpression > +public class UPCNoCastExpressionParser extends PrsStream implements RuleAction, ITokenStream, + ITokenCollector, IParser< IASTExpression > + , ISecondaryParser< IASTExpression > { private static ParseTable prs = new UPCNoCastExpressionParserprs(); private FixedBacktrackingParser btParser; @@ -175,7 +184,11 @@ public class UPCNoCastExpressionParser extends PrsStream implements RuleAction , private UPCParserAction action; private IASTCompletionNode compNode; -public UPCNoCastExpressionParser() { // constructor + +public UPCNoCastExpressionParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Set options) { + initActions(options); + action.initializeTranslationUnit(scanner, builtinBindingsProvider, index); + CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap); } private void initActions(Set options) { @@ -194,10 +207,9 @@ public void addToken(IToken token) { } -public IASTExpression parse(Set options) { +public IASTExpression parse() { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(options); final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse @@ -240,12 +252,12 @@ public void setTokens(List tokens) { addToken(new Token(null, 0, 0, UPCNoCastExpressionParsersym.TK_EOF_TOKEN)); } -public UPCNoCastExpressionParser(IParserActionTokenProvider parser) { // constructor - tokenMap = new TokenMap(UPCNoCastExpressionParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols()); +public UPCNoCastExpressionParser(ITokenStream stream, Set options) { // constructor for creating secondary parser + initActions(options); + tokenMap = new TokenMap(UPCNoCastExpressionParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols()); } - public void ruleAction(int ruleNumber) { switch (ruleNumber) @@ -258,1287 +270,1293 @@ public UPCNoCastExpressionParser(IParserActionTokenProvider parser) { // constr } // - // Rule 12: literal ::= integer + // Rule 2: ::= $Empty // - case 12: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break; + case 2: { action. consumeEmpty(); break; } // - // Rule 13: literal ::= floating + // Rule 13: literal ::= integer // - case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break; + case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break; } // - // Rule 14: literal ::= charconst + // Rule 14: literal ::= floating // - case 14: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break; + case 14: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break; } // - // Rule 15: literal ::= stringlit + // Rule 15: literal ::= charconst // - case 15: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break; + case 15: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break; } // - // Rule 17: primary_expression ::= primary_expression_id + // Rule 16: literal ::= stringlit // - case 17: { action. consumeExpressionID(); break; + case 16: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break; } // - // Rule 18: primary_expression ::= ( expression ) + // Rule 18: primary_expression ::= primary_expression_id // - case 18: { action. consumeExpressionBracketed(); break; + case 18: { action. consumeExpressionID(); break; } // - // Rule 21: postfix_expression ::= postfix_expression [ expression ] + // Rule 19: primary_expression ::= ( expression ) // - case 21: { action. consumeExpressionArraySubscript(); break; + case 19: { action. consumeExpressionBracketed(); break; } // - // Rule 22: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 22: postfix_expression ::= postfix_expression [ expression ] // - case 22: { action. consumeExpressionFunctionCall(); break; + case 22: { action. consumeExpressionArraySubscript(); break; } // - // Rule 23: postfix_expression ::= postfix_expression . member_name + // Rule 23: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 23: { action. consumeExpressionFieldReference(false); break; + case 23: { action. consumeExpressionFunctionCall(); break; } // - // Rule 24: postfix_expression ::= postfix_expression -> member_name + // Rule 24: postfix_expression ::= postfix_expression . member_name // - case 24: { action. consumeExpressionFieldReference(true); break; + case 24: { action. consumeExpressionFieldReference(false); break; } // - // Rule 25: postfix_expression ::= postfix_expression ++ + // Rule 25: postfix_expression ::= postfix_expression -> member_name // - case 25: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; + case 25: { action. consumeExpressionFieldReference(true); break; } // - // Rule 26: postfix_expression ::= postfix_expression -- + // Rule 26: postfix_expression ::= postfix_expression ++ // - case 26: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; + case 26: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 27: postfix_expression ::= ( type_id ) { initializer_list comma_opt } + // Rule 27: postfix_expression ::= postfix_expression -- // - case 27: { action. consumeExpressionTypeIdInitializer(); break; + case 27: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 32: unary_expression ::= ++ unary_expression + // Rule 28: postfix_expression ::= ( type_id ) { initializer_list comma_opt } // - case 32: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; + case 28: { action. consumeExpressionTypeIdInitializer(); break; } // - // Rule 33: unary_expression ::= -- unary_expression + // Rule 33: unary_expression ::= ++ unary_expression // - case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; + case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 34: unary_expression ::= & cast_expression + // Rule 34: unary_expression ::= -- unary_expression // - case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; + case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 35: unary_expression ::= * cast_expression + // Rule 35: unary_expression ::= & cast_expression // - case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; + case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 36: unary_expression ::= + cast_expression + // Rule 36: unary_expression ::= * cast_expression // - case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; + case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 37: unary_expression ::= - cast_expression + // Rule 37: unary_expression ::= + cast_expression // - case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; + case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 38: unary_expression ::= ~ cast_expression + // Rule 38: unary_expression ::= - cast_expression // - case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; + case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 39: unary_expression ::= ! cast_expression + // Rule 39: unary_expression ::= ~ cast_expression // - case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; + case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 40: unary_expression ::= sizeof unary_expression + // Rule 40: unary_expression ::= ! cast_expression // - case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; + case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 41: unary_expression ::= sizeof ( type_id ) + // Rule 41: unary_expression ::= sizeof unary_expression // - case 41: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break; + case 41: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 44: multiplicative_expression ::= multiplicative_expression * cast_expression + // Rule 42: unary_expression ::= sizeof ( type_id ) // - case 44: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break; + case 42: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break; } // - // Rule 45: multiplicative_expression ::= multiplicative_expression / cast_expression + // Rule 45: multiplicative_expression ::= multiplicative_expression * cast_expression // - case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break; + case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break; } // - // Rule 46: multiplicative_expression ::= multiplicative_expression % cast_expression + // Rule 46: multiplicative_expression ::= multiplicative_expression / cast_expression // - case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break; + case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break; } // - // Rule 48: additive_expression ::= additive_expression + multiplicative_expression + // Rule 47: multiplicative_expression ::= multiplicative_expression % cast_expression // - case 48: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break; + case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break; } // - // Rule 49: additive_expression ::= additive_expression - multiplicative_expression + // Rule 49: additive_expression ::= additive_expression + multiplicative_expression // - case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break; + case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break; } // - // Rule 51: shift_expression ::= shift_expression << additive_expression + // Rule 50: additive_expression ::= additive_expression - multiplicative_expression // - case 51: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break; + case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break; } // - // Rule 52: shift_expression ::= shift_expression >> additive_expression + // Rule 52: shift_expression ::= shift_expression << additive_expression // - case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break; + case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break; } // - // Rule 54: relational_expression ::= relational_expression < shift_expression + // Rule 53: shift_expression ::= shift_expression >> additive_expression // - case 54: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break; + case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break; } // - // Rule 55: relational_expression ::= relational_expression > shift_expression + // Rule 55: relational_expression ::= relational_expression < shift_expression // - case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break; + case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break; } // - // Rule 56: relational_expression ::= relational_expression <= shift_expression + // Rule 56: relational_expression ::= relational_expression > shift_expression // - case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break; + case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break; } // - // Rule 57: relational_expression ::= relational_expression >= shift_expression + // Rule 57: relational_expression ::= relational_expression <= shift_expression // - case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break; + case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break; } // - // Rule 59: equality_expression ::= equality_expression == relational_expression + // Rule 58: relational_expression ::= relational_expression >= shift_expression // - case 59: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break; + case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break; } // - // Rule 60: equality_expression ::= equality_expression != relational_expression + // Rule 60: equality_expression ::= equality_expression == relational_expression // - case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break; + case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break; } // - // Rule 62: AND_expression ::= AND_expression & equality_expression + // Rule 61: equality_expression ::= equality_expression != relational_expression // - case 62: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break; + case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break; } // - // Rule 64: exclusive_OR_expression ::= exclusive_OR_expression ^ AND_expression + // Rule 63: and_expression ::= and_expression & equality_expression // - case 64: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break; + case 63: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break; } // - // Rule 66: inclusive_OR_expression ::= inclusive_OR_expression | exclusive_OR_expression + // Rule 65: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 66: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break; + case 65: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break; } // - // Rule 68: logical_AND_expression ::= logical_AND_expression && inclusive_OR_expression + // Rule 67: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 68: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break; + case 67: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break; } // - // Rule 70: logical_OR_expression ::= logical_OR_expression || logical_AND_expression + // Rule 69: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 70: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break; + case 69: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break; } // - // Rule 72: conditional_expression ::= logical_OR_expression ? expression : conditional_expression + // Rule 71: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 72: { action. consumeExpressionConditional(); break; + case 71: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break; } // - // Rule 74: assignment_expression ::= unary_expression = assignment_expression + // Rule 73: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 74: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; + case 73: { action. consumeExpressionConditional(); break; } // - // Rule 75: assignment_expression ::= unary_expression *= assignment_expression + // Rule 75: assignment_expression ::= unary_expression = assignment_expression // - case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break; + case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; } // - // Rule 76: assignment_expression ::= unary_expression /= assignment_expression + // Rule 76: assignment_expression ::= unary_expression *= assignment_expression // - case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break; + case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 77: assignment_expression ::= unary_expression %= assignment_expression + // Rule 77: assignment_expression ::= unary_expression /= assignment_expression // - case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break; + case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break; } // - // Rule 78: assignment_expression ::= unary_expression += assignment_expression + // Rule 78: assignment_expression ::= unary_expression %= assignment_expression // - case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break; + case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break; } // - // Rule 79: assignment_expression ::= unary_expression -= assignment_expression + // Rule 79: assignment_expression ::= unary_expression += assignment_expression // - case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break; + case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break; } // - // Rule 80: assignment_expression ::= unary_expression <<= assignment_expression + // Rule 80: assignment_expression ::= unary_expression -= assignment_expression // - case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break; + case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break; } // - // Rule 81: assignment_expression ::= unary_expression >>= assignment_expression + // Rule 81: assignment_expression ::= unary_expression <<= assignment_expression // - case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break; + case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 82: assignment_expression ::= unary_expression &= assignment_expression + // Rule 82: assignment_expression ::= unary_expression >>= assignment_expression // - case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break; + case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 83: assignment_expression ::= unary_expression ^= assignment_expression + // Rule 83: assignment_expression ::= unary_expression &= assignment_expression // - case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break; + case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 84: assignment_expression ::= unary_expression |= assignment_expression + // Rule 84: assignment_expression ::= unary_expression ^= assignment_expression // - case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break; + case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 87: expression_list ::= expression_list_actual + // Rule 85: assignment_expression ::= unary_expression |= assignment_expression // - case 87: { action. consumeExpressionList(); break; + case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 89: expression_list_opt ::= $Empty + // Rule 88: expression_list ::= expression_list_actual // - case 89: { action. consumeEmpty(); break; + case 88: { action. consumeExpressionList(); break; } // - // Rule 99: statement ::= ERROR_TOKEN + // Rule 90: expression_list_opt ::= $Empty // - case 99: { action. consumeStatementProblem(); break; + case 90: { action. consumeEmpty(); break; } // - // Rule 100: labeled_statement ::= identifier_token : statement + // Rule 100: statement ::= ERROR_TOKEN // - case 100: { action. consumeStatementLabeled(); break; + case 100: { action. consumeStatementProblem(); break; } // - // Rule 101: labeled_statement ::= case constant_expression : statement + // Rule 101: labeled_statement ::= identifier_token : statement // - case 101: { action. consumeStatementCase(); break; + case 101: { action. consumeStatementLabeled(); break; } // - // Rule 102: labeled_statement ::= default : statement + // Rule 102: labeled_statement ::= case constant_expression : statement // - case 102: { action. consumeStatementDefault(); break; + case 102: { action. consumeStatementCase(); break; } // - // Rule 103: compound_statement ::= { } + // Rule 103: labeled_statement ::= default : statement // - case 103: { action. consumeStatementCompoundStatement(false); break; + case 103: { action. consumeStatementDefault(); break; } // - // Rule 104: compound_statement ::= { block_item_list } + // Rule 104: compound_statement ::= { } // - case 104: { action. consumeStatementCompoundStatement(true); break; + case 104: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 108: block_item ::= declaration + // Rule 105: compound_statement ::= { block_item_list } // - case 108: { action. consumeStatementDeclarationWithDisambiguation(); break; + case 105: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 109: expression_statement ::= ; + // Rule 109: block_item ::= declaration // - case 109: { action. consumeStatementNull(); break; + case 109: { action. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 110: expression_statement ::= expression_in_statement ; + // Rule 110: expression_statement ::= ; // - case 110: { action. consumeStatementExpression(); break; + case 110: { action. consumeStatementNull(); break; } // - // Rule 111: selection_statement ::= if ( expression ) statement + // Rule 111: expression_statement ::= expression_in_statement ; // - case 111: { action. consumeStatementIf(false); break; + case 111: { action. consumeStatementExpression(); break; } // - // Rule 112: selection_statement ::= if ( expression ) statement else statement + // Rule 112: selection_statement ::= if ( expression ) statement // - case 112: { action. consumeStatementIf(true); break; + case 112: { action. consumeStatementIf(false); break; } // - // Rule 113: selection_statement ::= switch ( expression ) statement + // Rule 113: selection_statement ::= if ( expression ) statement else statement // - case 113: { action. consumeStatementSwitch(); break; + case 113: { action. consumeStatementIf(true); break; } // - // Rule 115: expression_opt ::= $Empty + // Rule 114: selection_statement ::= switch ( expression ) statement // - case 115: { action. consumeEmpty(); break; + case 114: { action. consumeStatementSwitch(); break; } // - // Rule 116: iteration_statement ::= do statement while ( expression ) ; + // Rule 116: expression_opt ::= $Empty // - case 116: { action. consumeStatementDoLoop(); break; + case 116: { action. consumeEmpty(); break; } // - // Rule 117: iteration_statement ::= while ( expression ) statement + // Rule 117: iteration_statement ::= do statement while ( expression ) ; // - case 117: { action. consumeStatementWhileLoop(); break; + case 117: { action. consumeStatementDoLoop(); break; } // - // Rule 118: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement + // Rule 118: iteration_statement ::= while ( expression ) statement // - case 118: { action. consumeStatementForLoop(); break; + case 118: { action. consumeStatementWhileLoop(); break; } // - // Rule 119: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement + // Rule 119: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement // case 119: { action. consumeStatementForLoop(); break; } // - // Rule 120: jump_statement ::= goto identifier_token ; + // Rule 120: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement // - case 120: { action. consumeStatementGoto(); break; + case 120: { action. consumeStatementForLoop(); break; } // - // Rule 121: jump_statement ::= continue ; + // Rule 121: jump_statement ::= goto identifier_token ; // - case 121: { action. consumeStatementContinue(); break; + case 121: { action. consumeStatementGoto(); break; } // - // Rule 122: jump_statement ::= break ; + // Rule 122: jump_statement ::= continue ; // - case 122: { action. consumeStatementBreak(); break; + case 122: { action. consumeStatementContinue(); break; } // - // Rule 123: jump_statement ::= return ; + // Rule 123: jump_statement ::= break ; // - case 123: { action. consumeStatementReturn(false); break; + case 123: { action. consumeStatementBreak(); break; } // - // Rule 124: jump_statement ::= return expression ; + // Rule 124: jump_statement ::= return ; // - case 124: { action. consumeStatementReturn(true); break; + case 124: { action. consumeStatementReturn(false); break; } // - // Rule 125: declaration ::= declaration_specifiers ; + // Rule 125: jump_statement ::= return expression ; // - case 125: { action. consumeDeclarationSimple(false); break; + case 125: { action. consumeStatementReturn(true); break; } // - // Rule 126: declaration ::= declaration_specifiers init_declarator_list ; + // Rule 126: declaration ::= declaration_specifiers ; // - case 126: { action. consumeDeclarationSimple(true); break; + case 126: { action. consumeDeclarationSimple(false); break; } // - // Rule 127: declaration_specifiers ::= simple_declaration_specifiers + // Rule 127: declaration ::= declaration_specifiers init_declarator_list ; // - case 127: { action. consumeDeclarationSpecifiersSimple(); break; + case 127: { action. consumeDeclarationSimple(true); break; } // - // Rule 128: declaration_specifiers ::= struct_or_union_declaration_specifiers + // Rule 128: declaration_specifiers ::= simple_declaration_specifiers // - case 128: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; + case 128: { action. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 129: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 129: declaration_specifiers ::= struct_or_union_declaration_specifiers // case 129: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; } // - // Rule 130: declaration_specifiers ::= enum_declaration_specifiers + // Rule 130: declaration_specifiers ::= elaborated_declaration_specifiers // case 130: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; } // - // Rule 131: declaration_specifiers ::= typdef_name_declaration_specifiers + // Rule 131: declaration_specifiers ::= enum_declaration_specifiers // - case 131: { action. consumeDeclarationSpecifiersTypedefName(); break; + case 131: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; } // - // Rule 156: init_declarator ::= complete_declarator = initializer + // Rule 132: declaration_specifiers ::= typdef_name_declaration_specifiers // - case 156: { action. consumeDeclaratorWithInitializer(true); break; + case 132: { action. consumeDeclarationSpecifiersTypedefName(); break; } // - // Rule 158: storage_class_specifier ::= storage_class_specifier_token + // Rule 157: init_declarator ::= complete_declarator = initializer // - case 158: { action. consumeToken(); break; + case 157: { action. consumeDeclaratorWithInitializer(true); break; } // - // Rule 164: simple_type_specifier ::= simple_type_specifier_token + // Rule 159: storage_class_specifier ::= storage_class_specifier_token // - case 164: { action. consumeToken(); break; + case 159: { action. consumeToken(); break; } // - // Rule 177: type_name_specifier ::= identifier_token + // Rule 165: simple_type_specifier ::= simple_type_specifier_token // - case 177: { action. consumeToken(); break; + case 165: { action. consumeToken(); break; } // - // Rule 178: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { struct_declaration_list_opt } + // Rule 178: type_name_specifier ::= identifier_token // - case 178: { action. consumeTypeSpecifierComposite(false); break; + case 178: { action. consumeToken(); break; } // - // Rule 179: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { struct_declaration_list_opt } + // Rule 179: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { struct_declaration_list_opt } // - case 179: { action. consumeTypeSpecifierComposite(true); break; + case 179: { action. consumeTypeSpecifierComposite(false); break; } // - // Rule 184: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token + // Rule 180: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { struct_declaration_list_opt } // - case 184: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break; + case 180: { action. consumeTypeSpecifierComposite(true); break; } // - // Rule 185: elaborated_specifier ::= union elaborated_specifier_hook identifier_token + // Rule 185: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token // - case 185: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break; + case 185: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break; } // - // Rule 186: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token + // Rule 186: elaborated_specifier ::= union elaborated_specifier_hook identifier_token // - case 186: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break; + case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break; } // - // Rule 192: struct_declaration ::= specifier_qualifier_list struct_declarator_list ; + // Rule 187: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token // - case 192: { action. consumeStructDeclaration(true); break; + case 187: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break; } // - // Rule 193: struct_declaration ::= specifier_qualifier_list ; + // Rule 193: struct_declaration ::= specifier_qualifier_list struct_declarator_list ; // - case 193: { action. consumeStructDeclaration(false); break; + case 193: { action. consumeStructDeclaration(true); break; } // - // Rule 194: struct_declaration ::= ERROR_TOKEN + // Rule 194: struct_declaration ::= specifier_qualifier_list ; // - case 194: { action. consumeDeclarationProblem(); break; + case 194: { action. consumeStructDeclaration(false); break; } // - // Rule 200: struct_declarator ::= : constant_expression + // Rule 195: struct_declaration ::= ERROR_TOKEN // - case 200: { action. consumeBitField(false); break; + case 195: { action. consumeDeclarationProblem(); break; } // - // Rule 201: struct_declarator ::= declarator : constant_expression + // Rule 201: struct_declarator ::= : constant_expression // - case 201: { action. consumeBitField(true); break; + case 201: { action. consumeBitField(false); break; } // - // Rule 202: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } + // Rule 202: struct_declarator ::= declarator : constant_expression // - case 202: { action. consumeTypeSpecifierEnumeration(false); break; + case 202: { action. consumeBitField(true); break; } // - // Rule 203: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } + // Rule 203: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } // - case 203: { action. consumeTypeSpecifierEnumeration(true); break; + case 203: { action. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 209: enumerator ::= identifier_token + // Rule 204: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } // - case 209: { action. consumeEnumerator(false); break; + case 204: { action. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 210: enumerator ::= identifier_token = constant_expression + // Rule 210: enumerator ::= identifier_token // - case 210: { action. consumeEnumerator(true); break; + case 210: { action. consumeEnumerator(false); break; } // - // Rule 211: type_qualifier ::= type_qualifier_token + // Rule 211: enumerator ::= identifier_token = constant_expression // - case 211: { action. consumeToken(); break; + case 211: { action. consumeEnumerator(true); break; } // - // Rule 215: function_specifier ::= inline + // Rule 212: type_qualifier ::= type_qualifier_token // - case 215: { action. consumeToken(); break; + case 212: { action. consumeToken(); break; } // - // Rule 217: declarator ::= pointer_seq direct_declarator + // Rule 216: function_specifier ::= inline // - case 217: { action. consumeDeclaratorWithPointer(true); break; + case 216: { action. consumeToken(); break; } // - // Rule 222: basic_direct_declarator ::= declarator_id_name + // Rule 218: declarator ::= pointer_seq direct_declarator // - case 222: { action. consumeDirectDeclaratorIdentifier(); break; + case 218: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 223: basic_direct_declarator ::= ( declarator ) + // Rule 223: basic_direct_declarator ::= declarator_id_name // - case 223: { action. consumeDirectDeclaratorBracketed(); break; + case 223: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 224: declarator_id_name ::= identifier + // Rule 224: basic_direct_declarator ::= ( declarator ) // - case 224: { action. consumeIdentifierName(); break; + case 224: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 225: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 225: declarator_id_name ::= identifier // - case 225: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 225: { action. consumeIdentifierName(); break; } // - // Rule 226: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 226: array_direct_declarator ::= basic_direct_declarator array_modifier // case 226: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 228: function_direct_declarator ::= basic_direct_declarator ( parameter_type_list ) + // Rule 227: array_direct_declarator ::= array_direct_declarator array_modifier // - case 228: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; + case 227: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 229: function_direct_declarator ::= basic_direct_declarator ( ) + // Rule 229: function_direct_declarator ::= basic_direct_declarator ( parameter_type_list ) // - case 229: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; + case 229: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; } // - // Rule 231: function_declarator ::= pointer_seq function_direct_declarator + // Rule 230: function_direct_declarator ::= basic_direct_declarator ( ) // - case 231: { action. consumeDeclaratorWithPointer(true); break; + case 230: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; } // - // Rule 232: knr_direct_declarator ::= basic_direct_declarator ( identifier_list ) + // Rule 232: function_declarator ::= pointer_seq function_direct_declarator // - case 232: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break; + case 232: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 234: knr_function_declarator ::= pointer_seq knr_direct_declarator + // Rule 233: knr_direct_declarator ::= basic_direct_declarator ( identifier_list ) // - case 234: { action. consumeDeclaratorWithPointer(true); break; + case 233: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break; } // - // Rule 235: identifier_list ::= identifier + // Rule 235: knr_function_declarator ::= pointer_seq knr_direct_declarator // - case 235: { action. consumeIdentifierKnR(); break; + case 235: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 236: identifier_list ::= identifier_list , identifier + // Rule 236: identifier_list ::= identifier // case 236: { action. consumeIdentifierKnR(); break; } // - // Rule 237: array_modifier ::= [ ] + // Rule 237: identifier_list ::= identifier_list , identifier // - case 237: { action. consumeDirectDeclaratorArrayModifier(false); break; + case 237: { action. consumeIdentifierKnR(); break; } // - // Rule 238: array_modifier ::= [ array_modifier_type_qualifiers ] + // Rule 238: array_modifier ::= [ ] // - case 238: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break; + case 238: { action. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 239: array_modifier ::= [ assignment_expression ] + // Rule 239: array_modifier ::= [ array_modifier_type_qualifiers ] // - case 239: { action. consumeDirectDeclaratorArrayModifier(true); break; + case 239: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break; } // - // Rule 240: array_modifier ::= [ array_modifier_type_qualifiers assignment_expression ] + // Rule 240: array_modifier ::= [ assignment_expression ] // - case 240: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break; + case 240: { action. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 241: array_modifier ::= [ static assignment_expression ] + // Rule 241: array_modifier ::= [ array_modifier_type_qualifiers assignment_expression ] // - case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break; + case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break; } // - // Rule 242: array_modifier ::= [ static array_modifier_type_qualifiers assignment_expression ] + // Rule 242: array_modifier ::= [ static assignment_expression ] // - case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; + case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break; } // - // Rule 243: array_modifier ::= [ array_modifier_type_qualifiers static assignment_expression ] + // Rule 243: array_modifier ::= [ static array_modifier_type_qualifiers assignment_expression ] // case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; } // - // Rule 244: array_modifier ::= [ * ] + // Rule 244: array_modifier ::= [ array_modifier_type_qualifiers static assignment_expression ] // - case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break; + case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; } // - // Rule 245: array_modifier ::= [ array_modifier_type_qualifiers * ] + // Rule 245: array_modifier ::= [ * ] // - case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break; + case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break; } // - // Rule 247: pointer_seq ::= pointer_hook * + // Rule 246: array_modifier ::= [ array_modifier_type_qualifiers * ] // - case 247: { action. consumePointer(); break; + case 246: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break; } // - // Rule 248: pointer_seq ::= pointer_seq pointer_hook * + // Rule 248: pointer_seq ::= pointer_hook * pointer_hook // case 248: { action. consumePointer(); break; } // - // Rule 249: pointer_seq ::= pointer_hook * type_qualifier_list + // Rule 249: pointer_seq ::= pointer_seq pointer_hook * pointer_hook // - case 249: { action. consumePointerTypeQualifierList(); break; + case 249: { action. consumePointer(); break; } // - // Rule 250: pointer_seq ::= pointer_seq pointer_hook * type_qualifier_list + // Rule 250: pointer_seq ::= pointer_hook * pointer_hook type_qualifier_list // case 250: { action. consumePointerTypeQualifierList(); break; } // - // Rule 254: parameter_type_list ::= parameter_list + // Rule 251: pointer_seq ::= pointer_seq pointer_hook * pointer_hook type_qualifier_list // - case 254: { action. consumeEmpty(); break; + case 251: { action. consumePointerTypeQualifierList(); break; } // - // Rule 255: parameter_type_list ::= parameter_list , ... + // Rule 255: parameter_type_list ::= parameter_list // - case 255: { action. consumePlaceHolder(); break; + case 255: { action. consumeEmpty(); break; } // - // Rule 256: parameter_type_list ::= ... + // Rule 256: parameter_type_list ::= parameter_list , ... // case 256: { action. consumePlaceHolder(); break; } // - // Rule 259: parameter_declaration ::= declaration_specifiers complete_parameter_declarator + // Rule 257: parameter_type_list ::= ... // - case 259: { action. consumeParameterDeclaration(); break; + case 257: { action. consumePlaceHolder(); break; } // - // Rule 260: parameter_declaration ::= declaration_specifiers + // Rule 260: parameter_declaration ::= declaration_specifiers complete_parameter_declarator // - case 260: { action. consumeParameterDeclarationWithoutDeclarator(); break; + case 260: { action. consumeParameterDeclaration(); break; } // - // Rule 263: type_id ::= specifier_qualifier_list + // Rule 261: parameter_declaration ::= declaration_specifiers // - case 263: { action. consumeTypeId(false); break; + case 261: { action. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 264: type_id ::= specifier_qualifier_list abstract_declarator + // Rule 264: type_id ::= specifier_qualifier_list // - case 264: { action. consumeTypeId(true); break; + case 264: { action. consumeTypeId(false); break; } // - // Rule 266: abstract_declarator ::= pointer_seq + // Rule 265: type_id ::= specifier_qualifier_list abstract_declarator // - case 266: { action. consumeDeclaratorWithPointer(false); break; + case 265: { action. consumeTypeId(true); break; } // - // Rule 267: abstract_declarator ::= pointer_seq direct_abstract_declarator + // Rule 267: abstract_declarator ::= pointer_seq // case 267: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 271: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 268: abstract_declarator ::= pointer_seq direct_abstract_declarator // - case 271: { action. consumeDirectDeclaratorBracketed(); break; + case 268: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 272: array_direct_abstract_declarator ::= array_modifier + // Rule 272: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 272: { action. consumeDirectDeclaratorArrayDeclarator(false); break; + case 272: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 273: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 273: array_direct_abstract_declarator ::= array_modifier // - case 273: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 273: { action. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 274: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 274: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // case 274: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 275: function_direct_abstract_declarator ::= ( ) + // Rule 275: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 275: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break; + case 275: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 276: function_direct_abstract_declarator ::= ( ) + // + case 276: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break; } // - // Rule 276: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( ) + // Rule 277: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( ) // - case 276: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; + case 277: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; } // - // Rule 277: function_direct_abstract_declarator ::= ( parameter_type_list ) + // Rule 278: function_direct_abstract_declarator ::= ( parameter_type_list ) // - case 277: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break; + case 278: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break; } // - // Rule 278: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_type_list ) + // Rule 279: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_type_list ) // - case 278: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; + case 279: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; } // - // Rule 279: initializer ::= assignment_expression + // Rule 280: initializer ::= assignment_expression // - case 279: { action. consumeInitializer(); break; + case 280: { action. consumeInitializer(); break; } // - // Rule 280: initializer ::= start_initializer_list { initializer_list comma_opt } end_initializer_list - // - case 280: { action. consumeInitializerList(); break; - } - - // - // Rule 281: initializer ::= { } + // Rule 281: initializer ::= start_initializer_list { initializer_list comma_opt } end_initializer_list // case 281: { action. consumeInitializerList(); break; } // - // Rule 282: start_initializer_list ::= $Empty + // Rule 282: initializer ::= { } // - case 282: { action. initializerListStart(); break; + case 282: { action. consumeInitializerList(); break; } // - // Rule 283: end_initializer_list ::= $Empty + // Rule 283: start_initializer_list ::= $Empty // - case 283: { action. initializerListEnd(); break; + case 283: { action. initializerListStart(); break; } // - // Rule 288: designated_initializer ::= designation = initializer + // Rule 284: end_initializer_list ::= $Empty // - case 288: { action. consumeInitializerDesignated(); break; + case 284: { action. initializerListEnd(); break; } // - // Rule 292: designator_base ::= [ constant_expression ] + // Rule 289: designated_initializer ::= designation = initializer // - case 292: { action. consumeDesignatorArray(); break; + case 289: { action. consumeInitializerDesignated(); break; } // - // Rule 293: designator_base ::= . identifier_token + // Rule 293: designator_base ::= [ constant_expression ] // - case 293: { action. consumeDesignatorField(); break; + case 293: { action. consumeDesignatorArray(); break; } // - // Rule 294: designator ::= [ constant_expression ] + // Rule 294: designator_base ::= . identifier_token // - case 294: { action. consumeDesignatorArray(); break; + case 294: { action. consumeDesignatorField(); break; } // - // Rule 295: designator ::= . identifier_token + // Rule 295: designator ::= [ constant_expression ] // - case 295: { action. consumeDesignatorField(); break; + case 295: { action. consumeDesignatorArray(); break; } // - // Rule 296: translation_unit ::= external_declaration_list + // Rule 296: designator ::= . identifier_token // - case 296: { action. consumeTranslationUnit(); break; + case 296: { action. consumeDesignatorField(); break; + } + + // + // Rule 297: translation_unit ::= external_declaration_list + // + case 297: { action. consumeTranslationUnit(); break; } // - // Rule 297: translation_unit ::= $Empty + // Rule 298: translation_unit ::= $Empty // - case 297: { action. consumeTranslationUnit(); break; + case 298: { action. consumeTranslationUnit(); break; } // - // Rule 302: external_declaration ::= ; + // Rule 303: external_declaration ::= ; // - case 302: { action. consumeDeclarationEmpty(); break; + case 303: { action. consumeDeclarationEmpty(); break; } // - // Rule 303: external_declaration ::= ERROR_TOKEN + // Rule 304: external_declaration ::= ERROR_TOKEN // - case 303: { action. consumeDeclarationProblem(); break; + case 304: { action. consumeDeclarationProblem(); break; } // - // Rule 306: function_definition ::= declaration_specifiers function_declarator function_body + // Rule 307: function_definition ::= declaration_specifiers function_declarator function_body // - case 306: { action. consumeFunctionDefinition(true); break; + case 307: { action. consumeFunctionDefinition(true); break; } // - // Rule 307: function_definition ::= function_declarator function_body + // Rule 308: function_definition ::= function_declarator function_body // - case 307: { action. consumeFunctionDefinition(false); break; + case 308: { action. consumeFunctionDefinition(false); break; } // - // Rule 308: function_definition ::= declaration_specifiers knr_function_declarator declaration_list compound_statement + // Rule 309: function_definition ::= declaration_specifiers knr_function_declarator declaration_list compound_statement // - case 308: { action. consumeFunctionDefinitionKnR(); break; + case 309: { action. consumeFunctionDefinitionKnR(); break; } // - // Rule 309: function_body ::= { } + // Rule 310: function_body ::= { } // - case 309: { action. consumeStatementCompoundStatement(false); break; + case 310: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 310: function_body ::= { block_item_list } + // Rule 311: function_body ::= { block_item_list } // - case 310: { action. consumeStatementCompoundStatement(true); break; + case 311: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 312: no_cast_start ::= ERROR_TOKEN + // Rule 313: no_cast_start ::= ERROR_TOKEN // - case 312: { action. consumeEmpty(); break; + case 313: { action. consumeEmpty(); break; } // - // Rule 313: literal ::= MYTHREAD + // Rule 314: literal ::= MYTHREAD // - case 313: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break; + case 314: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break; } // - // Rule 314: literal ::= THREADS + // Rule 315: literal ::= THREADS // - case 314: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break; + case 315: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break; } // - // Rule 315: literal ::= UPC_MAX_BLOCKSIZE + // Rule 316: literal ::= UPC_MAX_BLOCKSIZE // - case 315: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break; + case 316: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break; } // - // Rule 316: unary_expression ::= upc_localsizeof unary_expression + // Rule 317: unary_expression ::= upc_localsizeof unary_expression // - case 316: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); break; + case 317: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); break; } // - // Rule 317: unary_expression ::= upc_localsizeof ( type_id ) + // Rule 318: unary_expression ::= upc_localsizeof ( type_id ) // - case 317: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof); break; + case 318: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof); break; } // - // Rule 318: unary_expression ::= upc_blocksizeof unary_expression + // Rule 319: unary_expression ::= upc_blocksizeof unary_expression // - case 318: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; + case 319: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; } // - // Rule 319: unary_expression ::= upc_blocksizeof ( type_id ) + // Rule 320: unary_expression ::= upc_blocksizeof ( type_id ) // - case 319: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; + case 320: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; } // - // Rule 320: unary_expression ::= upc_elemsizeof unary_expression + // Rule 321: unary_expression ::= upc_elemsizeof unary_expression // - case 320: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; + case 321: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; } // - // Rule 321: unary_expression ::= upc_elemsizeof ( type_id ) + // Rule 322: unary_expression ::= upc_elemsizeof ( type_id ) // - case 321: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; + case 322: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; } // - // Rule 325: shared_type_qualifier ::= shared - // - case 325: { action. consumeToken(); break; - } - - // - // Rule 326: reference_type_qualifier ::= relaxed + // Rule 326: shared_type_qualifier ::= shared // case 326: { action. consumeToken(); break; } // - // Rule 327: reference_type_qualifier ::= strict + // Rule 327: reference_type_qualifier ::= relaxed // case 327: { action. consumeToken(); break; } // - // Rule 328: layout_qualifier ::= [ constant_expression ] + // Rule 328: reference_type_qualifier ::= strict // - case 328: { action. consumeLayoutQualifier(true, false); break; + case 328: { action. consumeToken(); break; } // - // Rule 329: layout_qualifier ::= [ * ] + // Rule 329: layout_qualifier ::= [ constant_expression ] // - case 329: { action. consumeLayoutQualifier(false, true); break; + case 329: { action. consumeLayoutQualifier(true, false); break; } // - // Rule 330: layout_qualifier ::= [ ] + // Rule 330: layout_qualifier ::= [ * ] // - case 330: { action. consumeLayoutQualifier(false, false); break; + case 330: { action. consumeLayoutQualifier(false, true); break; } // - // Rule 332: synchronization_statement ::= upc_notify expression ; + // Rule 331: layout_qualifier ::= [ ] // - case 332: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break; + case 331: { action. consumeLayoutQualifier(false, false); break; } // - // Rule 333: synchronization_statement ::= upc_notify ; + // Rule 333: synchronization_statement ::= upc_notify expression ; // - case 333: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break; + case 333: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break; } // - // Rule 334: synchronization_statement ::= upc_wait expression ; + // Rule 334: synchronization_statement ::= upc_notify ; // - case 334: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break; + case 334: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break; } // - // Rule 335: synchronization_statement ::= upc_wait ; + // Rule 335: synchronization_statement ::= upc_wait expression ; // - case 335: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break; + case 335: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break; } // - // Rule 336: synchronization_statement ::= upc_barrier expression ; + // Rule 336: synchronization_statement ::= upc_wait ; // - case 336: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break; + case 336: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break; } // - // Rule 337: synchronization_statement ::= upc_barrier ; + // Rule 337: synchronization_statement ::= upc_barrier expression ; // - case 337: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break; + case 337: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break; } // - // Rule 338: synchronization_statement ::= upc_fence ; + // Rule 338: synchronization_statement ::= upc_barrier ; // - case 338: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break; + case 338: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break; } // - // Rule 339: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement + // Rule 339: synchronization_statement ::= upc_fence ; // - case 339: { action. consumeStatementUPCForallLoop(true, true, true, true); break; + case 339: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break; } // - // Rule 340: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement + // Rule 340: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement // - case 340: { action. consumeStatementUPCForallLoop(true, true, true, false); break; + case 340: { action. consumeStatementUPCForallLoop(true, true, true, true); break; } // - // Rule 341: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement + // Rule 341: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement // - case 341: { action. consumeStatementUPCForallLoop(true, true, false, true); break; + case 341: { action. consumeStatementUPCForallLoop(true, true, true, false); break; } // - // Rule 342: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement + // Rule 342: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement // - case 342: { action. consumeStatementUPCForallLoop(true, true, false, false); break; + case 342: { action. consumeStatementUPCForallLoop(true, true, false, true); break; } // - // Rule 343: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement + // Rule 343: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement // - case 343: { action. consumeStatementUPCForallLoop(true, false, true, true); break; + case 343: { action. consumeStatementUPCForallLoop(true, true, false, false); break; } // - // Rule 344: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement + // Rule 344: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement // - case 344: { action. consumeStatementUPCForallLoop(true, false, true, false); break; + case 344: { action. consumeStatementUPCForallLoop(true, false, true, true); break; } // - // Rule 345: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement + // Rule 345: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement // - case 345: { action. consumeStatementUPCForallLoop(true, false, false, true); break; + case 345: { action. consumeStatementUPCForallLoop(true, false, true, false); break; } // - // Rule 346: iteration_statement ::= upc_forall ( expression ; ; ; ) statement + // Rule 346: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement // - case 346: { action. consumeStatementUPCForallLoop(true, false, false, false); break; + case 346: { action. consumeStatementUPCForallLoop(true, false, false, true); break; } // - // Rule 347: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement + // Rule 347: iteration_statement ::= upc_forall ( expression ; ; ; ) statement // - case 347: { action. consumeStatementUPCForallLoop(false, true, true, true); break; + case 347: { action. consumeStatementUPCForallLoop(true, false, false, false); break; } // - // Rule 348: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement + // Rule 348: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement // - case 348: { action. consumeStatementUPCForallLoop(false, true, true, false); break; + case 348: { action. consumeStatementUPCForallLoop(false, true, true, true); break; } // - // Rule 349: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement + // Rule 349: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement // - case 349: { action. consumeStatementUPCForallLoop(false, true, false, true); break; + case 349: { action. consumeStatementUPCForallLoop(false, true, true, false); break; } // - // Rule 350: iteration_statement ::= upc_forall ( ; expression ; ; ) statement + // Rule 350: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement // - case 350: { action. consumeStatementUPCForallLoop(false, true, false, false); break; + case 350: { action. consumeStatementUPCForallLoop(false, true, false, true); break; } // - // Rule 351: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement + // Rule 351: iteration_statement ::= upc_forall ( ; expression ; ; ) statement // - case 351: { action. consumeStatementUPCForallLoop(false, false, true, true); break; + case 351: { action. consumeStatementUPCForallLoop(false, true, false, false); break; } // - // Rule 352: iteration_statement ::= upc_forall ( ; ; expression ; ) statement + // Rule 352: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement // - case 352: { action. consumeStatementUPCForallLoop(false, false, true, false); break; + case 352: { action. consumeStatementUPCForallLoop(false, false, true, true); break; } // - // Rule 353: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement + // Rule 353: iteration_statement ::= upc_forall ( ; ; expression ; ) statement // - case 353: { action. consumeStatementUPCForallLoop(false, false, false, true); break; + case 353: { action. consumeStatementUPCForallLoop(false, false, true, false); break; } // - // Rule 354: iteration_statement ::= upc_forall ( ; ; ; ) statement + // Rule 354: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement // - case 354: { action. consumeStatementUPCForallLoop(false, false, false, false); break; + case 354: { action. consumeStatementUPCForallLoop(false, false, false, true); break; } // - // Rule 355: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement + // Rule 355: iteration_statement ::= upc_forall ( ; ; ; ) statement // - case 355: { action. consumeStatementUPCForallLoop(true, true, true, true); break; + case 355: { action. consumeStatementUPCForallLoop(false, false, false, false); break; } // - // Rule 356: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement + // Rule 356: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement // - case 356: { action. consumeStatementUPCForallLoop(true, true, true, false); break; + case 356: { action. consumeStatementUPCForallLoop(true, true, true, true); break; } // - // Rule 357: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement + // Rule 357: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement // - case 357: { action. consumeStatementUPCForallLoop(true, true, false, true); break; + case 357: { action. consumeStatementUPCForallLoop(true, true, true, false); break; } // - // Rule 358: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement + // Rule 358: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement // - case 358: { action. consumeStatementUPCForallLoop(true, true, false, false); break; + case 358: { action. consumeStatementUPCForallLoop(true, true, false, true); break; } // - // Rule 359: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement + // Rule 359: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement // - case 359: { action. consumeStatementUPCForallLoop(true, false, true, true); break; + case 359: { action. consumeStatementUPCForallLoop(true, true, false, false); break; } // - // Rule 360: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement + // Rule 360: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement // - case 360: { action. consumeStatementUPCForallLoop(true, false, true, false); break; + case 360: { action. consumeStatementUPCForallLoop(true, false, true, true); break; } // - // Rule 361: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement + // Rule 361: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement // - case 361: { action. consumeStatementUPCForallLoop(true, false, false, true); break; + case 361: { action. consumeStatementUPCForallLoop(true, false, true, false); break; } // - // Rule 362: iteration_statement ::= upc_forall ( declaration ; ; ) statement + // Rule 362: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement // - case 362: { action. consumeStatementUPCForallLoop(true, false, false, false); break; + case 362: { action. consumeStatementUPCForallLoop(true, false, false, true); break; } // - // Rule 364: affinity ::= continue + // Rule 363: iteration_statement ::= upc_forall ( declaration ; ; ) statement // - case 364: { action. consumeToken(); break; + case 363: { action. consumeStatementUPCForallLoop(true, false, false, false); break; + } + + // + // Rule 365: affinity ::= continue + // + case 365: { action. consumeToken(); break; } diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParserprs.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParserprs.java index a8eb0b888bf..a22af617655 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParserprs.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParserprs.java @@ -35,199 +35,200 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseCheck { public final static short baseCheck[] = {0, - 0,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3,1,1, - 4,4,3,3,2,2,8,1,0,1, - 1,2,2,2,2,2,2,2,2,2, - 4,1,1,3,3,3,1,3,3,1, - 3,3,1,3,3,3,3,1,3,3, - 1,3,1,3,1,3,1,3,1,3, - 1,5,1,3,3,3,3,3,3,3, - 3,3,3,3,1,1,2,1,0,1, - 3,1,1,1,1,1,1,1,1,3, - 4,3,2,4,1,2,1,1,1,2, - 5,7,5,1,0,7,5,9,8,3, - 2,2,2,3,2,4,2,2,2,2, - 2,1,1,1,1,2,1,2,2,2, - 1,2,2,1,2,2,1,2,2,1, - 2,2,1,3,1,3,1,1,1,1, + 0,0,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,3,1, + 1,4,4,3,3,2,2,8,1,0, + 1,1,2,2,2,2,2,2,2,2, + 2,4,1,1,3,3,3,1,3,3, + 1,3,3,1,3,3,3,3,1,3, + 3,1,3,1,3,1,3,1,3,1, + 3,1,5,1,3,3,3,3,3,3, + 3,3,3,3,3,1,1,2,1,0, + 1,3,1,1,1,1,1,1,1,1, + 3,4,3,2,4,1,2,1,1,1, + 2,5,7,5,1,0,7,5,9,8, + 3,2,2,2,3,2,4,2,2,2, + 2,2,1,1,1,1,2,1,2,2, + 2,1,2,2,1,2,2,1,2,2, + 1,2,2,1,3,1,3,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,6,8,0, - 0,1,1,3,3,3,0,1,0,1, - 2,4,2,1,1,1,3,1,1,2, - 3,7,8,0,1,0,1,3,1,3, - 1,1,1,1,1,1,3,1,1,1, - 1,1,3,1,2,2,1,5,3,1, - 3,5,1,3,1,3,2,4,3,5, - 4,6,6,3,5,1,2,3,4,5, - 0,1,2,1,3,1,1,3,2,1, - 1,1,1,2,1,2,3,1,1,1, - 3,1,2,2,2,3,4,5,1,7, - 3,0,0,1,1,3,3,4,1,1, - 2,3,2,3,2,1,0,1,2,1, - 1,1,1,1,2,4,3,6,2,4, - 1,1,1,1,1,2,4,2,4,2, - 4,1,1,2,1,1,1,3,3,2, - 1,3,2,3,2,3,2,2,11,10, - 10,9,10,9,9,8,10,9,9,8, - 9,8,8,7,10,9,9,8,9,8, - 8,7,1,1,-38,0,0,0,0,0, - 0,0,0,0,-2,0,0,0,0,0, - 0,0,0,0,0,-128,0,0,0,0, - 0,-153,-81,-4,-82,0,0,0,0,-133, - 0,0,0,0,0,0,0,0,0,-18, + 1,1,1,1,1,1,1,1,6,8, + 0,0,1,1,3,3,3,0,1,0, + 1,2,4,2,1,1,1,3,1,1, + 2,3,7,8,0,1,0,1,3,1, + 3,1,1,1,1,1,1,3,1,1, + 1,1,1,3,1,2,2,1,5,3, + 1,3,5,1,3,1,3,2,4,3, + 5,4,6,6,3,5,1,3,4,5, + 6,0,1,2,1,3,1,1,3,2, + 1,1,1,1,2,1,2,3,1,1, + 1,3,1,2,2,2,3,4,5,1, + 7,3,0,0,1,1,3,3,4,1, + 1,2,3,2,3,2,1,0,1,2, + 1,1,1,1,1,2,4,3,6,2, + 4,1,1,1,1,1,2,4,2,4, + 2,4,1,1,2,1,1,1,3,3, + 2,1,3,2,3,2,3,2,2,11, + 10,10,9,10,9,9,8,10,9,9, + 8,9,8,8,7,10,9,9,8,9, + 8,8,7,1,1,-38,0,0,0,0, + 0,0,0,0,0,-35,0,0,0,0, + 0,0,0,0,0,0,-2,-84,0,0, + 0,0,-153,-81,-136,-226,0,0,0,0, + 0,-60,0,0,0,0,0,0,0,0, + 0,-4,0,0,0,0,0,0,0,-177, + 0,0,0,0,0,-128,0,-18,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-129,0,-130,0,0,0,0, - 0,0,-5,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-134,0,0,0, + 0,0,0,0,0,0,0,-134,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-200,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-78,0, - 0,0,-57,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,-126,-19, - 0,-20,-88,0,0,-91,-39,0,0,0, - -21,0,-208,0,-22,-89,-131,0,0,0, - 0,0,-173,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-143,0,-120,0,0,0,0, + 0,0,0,0,0,0,0,0,-200,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-85,-23,0,0,0,0,0,0,0, - -35,-24,0,0,0,-9,0,0,0,0, + 0,0,0,-57,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,-126, + 0,0,-129,0,0,-39,0,-117,-91,0, + 0,-19,0,-86,-209,0,-20,0,-21,0, + 0,-140,0,-173,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-143,0, + -120,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-85,0,-156,0,0, + 0,0,0,0,0,0,-9,0,0,0, + 0,0,0,0,0,-130,0,-152,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-10,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -79,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-196,0,0,0,0,0,0, + 0,0,0,-36,0,0,0,0,0,0, + 0,0,0,0,-3,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-131,0,-22,-82,-58, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-96,0,-127,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-23,0,-48, + 0,0,0,0,0,0,0,0,0,0, + 0,-139,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-24,0,-30,0,0,0,0,0, + 0,0,0,0,-73,0,0,0,0,0, + 0,0,0,0,0,-62,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-63,0,0,0, + 0,0,0,0,0,0,-74,0,0,0, + 0,0,0,0,0,0,0,-64,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-65,0, + 0,0,0,0,0,0,0,0,-75,0, + 0,0,0,0,0,0,0,0,0,-66, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-10,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-79,0,0,0,0, + -67,0,0,0,0,0,0,0,0,0, + -76,0,0,0,0,0,0,0,0,0, + 0,-68,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-25,0,-196,0, - 0,0,0,0,0,0,0,0,-36,0, - 0,0,0,0,0,0,0,0,0,-3, + 0,0,-69,0,0,0,0,0,0,0, + 0,0,-95,0,0,0,0,0,0,0, + 0,0,0,-70,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-71,0,0,0,0,0, + 0,0,0,0,-124,0,0,0,0,0, + 0,0,0,0,0,-72,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -132,0,-26,-163,-58,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-96, - 0,-127,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-133,0,0,0, + 0,0,0,0,0,0,-141,0,0,0, + 0,0,0,0,0,0,0,-158,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-27,0,-48,0,0,0,0,0, - 0,0,0,0,0,0,-139,0,0,0, + 0,0,0,0,0,0,0,0,-159,0, + 0,0,0,0,0,0,0,0,-167,0, + 0,0,0,0,0,0,0,0,0,-176, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-28,0,-30, - 0,0,0,0,0,0,0,0,0,-73, - 0,0,0,0,0,0,0,0,0,0, - -62,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-63,0,0,0,0,0,0,0,0, - 0,-74,0,0,0,0,0,0,0,0, - 0,0,-64,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-65,0,0,0,0,0,0, - 0,0,0,-75,0,0,0,0,0,0, - 0,0,0,0,-66,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-67,0,0,0,0, - 0,0,0,0,0,-76,0,0,0,0, - 0,0,0,0,0,0,-68,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-69,0,0, - 0,0,0,0,0,0,0,-95,0,0, - 0,0,0,0,0,0,0,0,-70,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-71, - 0,0,0,0,0,0,0,0,0,-124, - 0,0,0,0,0,0,0,0,0,0, - -72,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-158,0,0,0,0,0,0,0,0, - 0,-141,0,0,0,0,0,0,0,0, - 0,0,-159,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-176,0,0,0,0,0,0, - 0,0,0,-29,0,0,0,0,0,0, - 0,0,0,-199,0,0,0,0,0,0, - 0,0,0,-117,0,0,0,0,0,0, - 0,0,0,0,-77,-152,-175,0,0,-43, - 0,0,0,0,0,0,0,0,-207,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-215,0, - 0,0,0,0,0,0,0,0,-94,0, - 0,0,0,0,0,0,0,0,-86,0, - -40,0,-193,0,-44,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,-60,0,0,0,0,0,0, - 0,0,0,-136,0,0,0,0,0,0, - 0,-93,0,0,-198,0,0,-148,0,-54, + 0,0,0,0,0,0,0,0,0,-199, 0,0,0,0,0,0,0,0,0,-190, - 0,0,0,0,0,0,0,0,-191,0, - -166,-142,0,0,0,0,-97,-98,0,0, - 0,0,-55,0,0,0,0,0,0,0, - 0,0,-84,0,0,0,0,0,0,0, - -167,-164,-87,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-121,0,0,0, - 0,0,0,0,-177,0,0,0,0,0, - -162,0,0,0,0,0,0,0,0,0, - 0,-61,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-187, - -6,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-204,0,0,0,0, - -149,0,-42,-186,-172,0,-151,0,-184,-99, + 0,0,0,0,0,0,0,0,0,0, + -132,0,-148,-193,0,-43,0,0,0,0, + 0,0,0,0,-208,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-217,0,0,0,0,0, + 0,0,0,0,-186,0,0,0,0,0, + 0,0,0,0,0,-175,0,0,-25,0, + -26,0,-198,0,-27,0,-93,0,-78,-225, 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,-225,-171,0,0,0,-56,0,0, - 0,0,0,0,0,0,0,-100,0,0, - -147,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-154,-156,-138,-205,0, - 0,0,0,-101,-102,0,0,-103,0,-49, + 0,0,0,-83,0,-149,-142,0,0,0, + 0,0,-206,-227,-28,0,0,-5,0,0, + 0,0,0,0,0,-172,0,0,0,0, + 0,0,-29,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-50,0,0,0,0,0,0,0,0, - 0,-83,0,0,0,0,-51,0,0,0, - 0,0,0,0,0,0,-210,0,-170,0, - 0,-217,0,-104,0,0,0,0,0,0, - -105,0,0,0,0,0,-52,0,0,0, - 0,0,0,0,0,0,-53,0,0,0, - 0,0,0,0,0,0,0,-80,0,0, - 0,0,0,0,0,0,-90,0,-214,-106, - 0,-146,0,-179,-107,-108,-109,-188,0,-160, - -178,-211,-110,0,-157,0,-59,0,-92,0, - 0,0,0,0,-111,-224,0,0,0,0, + 0,-88,0,0,0,0,-89,0,0,-77, + 0,-94,0,-97,-211,-162,0,0,-6,0, + 0,0,0,0,0,0,-61,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-187,-7,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-151,0,-121,0,0, + -205,-154,0,0,0,0,0,-40,0,-178, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-54,0,0,0,0,0, + 0,0,0,0,-163,0,0,0,0,0, + 0,0,0,0,0,-98,0,-99,-100,-189, + -207,0,-55,0,0,0,0,0,0,0, + 0,0,0,0,0,-56,0,0,0,0, + 0,0,0,0,0,-165,0,0,-224,-157, + 0,-170,-179,-101,0,0,0,0,0,0, + -102,0,0,0,-49,0,0,0,0,0, + 0,0,0,0,0,0,-52,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-171,0,-103,-104,0,-105,0, + -50,0,0,0,0,0,0,0,0,0, + -106,0,-51,0,0,0,0,0,0,0, + 0,0,-107,0,-11,0,0,0,0,0, + 0,0,0,0,-53,0,0,0,0,0, + 0,0,0,0,-219,-44,0,0,0,0, + 0,0,0,0,0,-147,0,0,0,0, + 0,0,0,0,-108,-109,-164,-87,-80,-12, + 0,0,0,0,0,0,0,0,0,0, + 0,-110,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-138,-90,0, 0,0,0,-161,0,0,0,0,0,0, - 0,0,-112,0,0,0,0,0,0,0, - 0,-113,-114,0,-115,0,-11,0,0,0, - 0,0,0,0,-12,0,0,0,0,0, - 0,0,-13,0,0,0,0,0,0,0, - -14,0,0,0,0,0,0,0,-37,-45, - 0,0,0,0,0,0,0,-140,0,-46, - 0,0,0,0,0,0,0,-47,0,0, - 0,0,0,0,0,-125,0,-1,-185,-182, - 0,0,0,0,-116,0,-183,0,0,-189, - -197,-209,-206,-119,0,0,0,0,-135,-181, - -144,0,0,-150,-155,0,0,0,0,0, - -168,0,0,0,0,-7,0,0,0,0, + 0,-92,-111,-112,0,0,0,0,-146,0, + -160,0,0,0,0,0,-113,-192,0,0, + 0,0,0,0,0,0,0,0,-114,-115, + 0,-116,0,0,0,0,0,-13,0,0, + 0,0,0,0,0,-14,0,0,0,0, + 0,0,0,-37,-45,0,0,0,0,0, + 0,0,-119,0,-46,0,0,0,0,0, + 0,0,-47,0,0,0,0,0,0,0, + -125,0,-180,-185,-166,-184,-182,0,-188,-135, + 0,-183,0,0,0,-144,-150,-155,0,0, + 0,0,0,0,0,-220,0,0,0,0, + 0,0,0,0,0,-8,0,0,0,0, + 0,0,-15,0,0,0,0,0,0,-17, + -168,-174,0,0,0,0,0,0,0,0, + 0,0,-31,0,-16,0,0,0,0,0, + 0,-41,0,-32,-213,-197,0,0,-118,0, + 0,0,-215,0,-33,0,-34,-214,-210,0, + -194,-216,0,0,0,0,0,0,0,0, + 0,0,-195,0,0,-122,0,0,0,0, + 0,0,0,0,0,0,0,0,-137,0, + 0,-218,0,0,0,0,0,0,0,0, + 0,0,-221,-222,0,-169,0,-223,-203,-204, + -191,0,0,0,0,0,0,-145,0,0, + 0,0,0,0,0,-181,0,0,-1,0, + -201,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,-202,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-174,0,-194,0,0,-118,0,-8, - 0,0,0,0,0,0,-15,0,0,0, - 0,0,0,-16,0,0,0,0,0,0, - -17,-195,-216,-221,-31,0,0,-213,0,-202, - 0,-32,0,0,0,0,-192,0,-33,0, - 0,0,-34,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-212,0,0, + 0,-212,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-122,-165,0,0,-137, - -41,0,0,-169,-145,0,-203,0,0,0, - 0,-180,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-201,-219,0, - 0,0,0,0,0,0,0,0,0,0, - -218,0,0,0,0,-220,0,0,0,0, + -59,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0 + 0,0,0 }; }; public final static short baseCheck[] = BaseCheck.baseCheck; @@ -237,200 +238,201 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseAction { public final static char baseAction[] = { - 89,10,22,22,21,21,37,37,72,72, - 1,1,2,2,2,2,3,3,3,4, - 5,5,5,5,5,5,5,5,54,54, - 73,6,6,6,6,6,6,6,6,6, - 6,6,7,8,8,8,8,9,9,9, - 11,11,11,12,12,12,12,12,13,13, - 13,14,14,15,15,16,16,17,17,18, - 18,19,19,20,20,20,20,20,20,20, - 20,20,20,20,20,104,30,29,90,90, - 75,75,45,105,105,105,105,105,105,105, - 106,106,106,107,107,112,112,113,113,108, - 108,109,109,109,115,115,110,110,110,110, - 111,111,111,111,111,114,114,27,27,27, - 27,27,31,31,31,81,81,76,76,76, - 76,77,77,77,78,78,78,79,79,79, - 80,80,80,116,116,117,117,118,32,34, - 34,34,34,34,55,57,57,57,57,57, - 57,57,57,57,57,57,57,66,63,63, - 91,92,67,67,64,64,64,68,82,82, - 83,83,69,69,69,35,93,93,84,85, - 85,85,65,65,94,86,86,87,87,70, - 70,23,24,24,24,33,51,51,38,38, - 38,38,41,41,43,39,39,40,44,44, - 119,119,42,120,120,95,95,28,28,28, - 28,28,28,28,28,28,88,52,52,52, - 52,36,59,59,58,58,58,60,60,53, - 53,96,96,50,50,61,61,61,46,46, - 46,47,48,48,48,49,49,49,49,56, - 56,56,62,97,74,74,74,74,71,98, - 99,99,100,100,101,101,121,121,122,122, - 123,123,123,123,125,125,124,124,124,126, - 126,89,89,2,2,2,6,6,6,6, - 6,6,23,23,25,25,26,26,102,102, - 102,105,127,127,127,127,127,127,127,110, - 110,110,110,110,110,110,110,110,110,110, - 110,110,110,110,110,110,110,110,110,110, - 110,110,110,128,128,1,1169,16,20,17, - 410,1094,43,522,520,88,535,531,602,593, - 713,667,788,753,73,90,521,1238,133,211, - 322,323,401,537,194,580,135,132,134,158, - 664,19,16,20,17,410,42,43,522,520, - 931,535,531,602,593,713,667,788,753,72, - 137,273,164,274,230,185,230,184,141,144, - 147,150,1179,695,19,16,20,17,410,320, - 394,1482,592,1293,1547,1569,1232,571,19,16, - 20,17,410,1094,43,522,520,392,535,531, - 602,593,713,667,788,753,73,279,633,19, - 16,20,17,410,1094,43,522,520,392,535, - 531,602,593,713,667,788,753,73,279,61, - 1743,1315,290,664,19,16,20,17,410,42, - 43,522,520,284,535,531,602,593,1556,1715, - 446,19,16,20,17,410,42,35,285,293, - 70,1126,457,359,284,1704,455,230,30,1835, - 1715,250,244,230,1745,39,399,564,1714,285, - 276,1748,1497,363,19,16,20,17,410,1094, - 43,522,520,392,535,531,602,593,713,667, - 788,753,73,279,225,177,819,19,16,20, - 17,410,1094,43,522,520,1830,535,531,602, - 593,713,667,788,753,73,1448,133,211,322, - 323,424,862,32,711,135,132,134,158,286, - 24,188,81,208,426,1715,664,19,16,20, - 17,410,42,39,287,133,211,322,323,137, - 537,164,1125,143,132,134,158,141,144,147, - 150,1179,664,19,16,20,17,410,42,38, - 1482,592,1293,1547,1569,1232,281,19,16,20, - 17,410,1094,43,522,520,1826,535,531,602, - 593,713,667,788,753,73,1307,59,237,602, - 19,16,20,17,410,1094,43,522,520,188, - 535,531,602,593,713,667,788,753,73,279, - 664,19,16,20,17,410,1094,43,522,520, - 18,535,531,602,593,713,667,788,753,73, - 90,230,186,115,644,664,19,16,20,17, - 410,42,43,522,520,288,535,531,602,1557, - 239,1715,487,19,16,20,17,410,42,43, - 522,520,226,535,531,602,593,713,667,788, - 753,92,21,243,330,664,19,16,20,17, - 410,42,43,522,520,394,1380,322,19,16, - 20,17,410,1094,43,522,520,1552,535,531, - 602,593,713,667,788,753,73,1560,53,238, - 664,19,16,20,17,410,1094,43,522,520, - 188,535,531,602,593,713,667,788,753,73, - 91,664,19,16,20,17,410,1094,43,522, - 520,1622,535,531,602,593,713,667,788,753, - 73,84,664,19,16,20,17,410,1094,43, - 522,520,188,535,531,602,593,713,667,788, - 753,73,83,664,19,16,20,17,410,1094, - 43,522,520,1623,535,531,602,593,713,667, - 788,753,73,82,664,19,16,20,17,410, - 1094,43,522,520,188,535,531,602,593,713, - 667,788,753,73,81,664,19,16,20,17, - 410,1094,43,522,520,1625,535,531,602,593, - 713,667,788,753,73,80,664,19,16,20, - 17,410,1094,43,522,520,188,535,531,602, - 593,713,667,788,753,73,79,664,19,16, - 20,17,410,1094,43,522,520,1695,535,531, - 602,593,713,667,788,753,73,78,664,19, - 16,20,17,410,1094,43,522,520,188,535, - 531,602,593,713,667,788,753,73,77,664, - 19,16,20,17,410,1094,43,522,520,22, - 535,531,602,593,713,667,788,753,73,76, - 664,19,16,20,17,410,1094,43,522,520, - 188,535,531,602,593,713,667,788,753,73, - 75,664,19,16,20,17,410,1094,43,522, - 520,271,535,531,602,593,713,667,788,753, - 73,74,664,19,16,20,17,410,1094,43, - 522,520,188,535,531,602,593,713,667,788, - 753,73,1690,664,19,16,20,17,410,1094, - 43,522,520,277,535,531,602,593,713,667, - 788,753,73,1697,664,19,16,20,17,410, - 42,43,522,520,337,535,531,602,593,713, - 667,788,753,92,664,19,16,20,17,410, - 42,43,522,520,13,535,531,602,593,713, - 667,788,753,92,447,71,797,230,293,1701, - 664,19,16,20,17,410,42,43,1267,664, - 19,16,20,17,410,42,43,522,520,1702, - 535,531,602,593,713,667,788,753,92,664, - 19,16,20,17,410,42,43,522,520,850, - 535,531,602,593,713,667,788,753,92,137, - 1375,230,30,892,210,664,19,16,20,17, - 410,42,43,1268,664,19,16,20,17,410, - 42,43,522,520,200,535,531,602,593,713, - 667,788,753,92,664,19,16,20,17,410, - 42,43,522,520,125,535,531,602,593,713, - 667,1575,225,177,1565,230,295,1703,139,201, - 664,19,16,20,17,410,42,43,522,520, - 538,535,531,1511,23,133,211,322,323,113, - 1366,707,1000,136,132,134,158,477,498,564, - 386,564,1827,664,19,16,20,17,410,42, - 43,522,520,607,535,1550,195,138,1262,164, - 272,188,617,891,1250,142,145,148,151,1179, - 216,714,219,1292,221,222,227,239,265,395, - 393,270,278,261,258,581,133,211,322,323, - 225,954,193,262,146,132,134,158,191,239, - 1721,1689,664,19,16,20,17,410,42,43, - 522,520,275,535,531,602,593,713,1613,272, - 1008,726,19,16,20,17,410,318,259,216, - 714,219,1292,221,222,227,63,265,395,393, - 270,13,1379,13,293,518,1871,13,272,188, - 119,1834,1010,690,1780,324,1709,1414,217,714, - 219,1292,221,222,227,229,267,395,393,270, - 223,63,86,730,216,714,219,1292,221,222, - 227,1871,27,144,482,1745,291,1773,664,19, - 16,20,17,410,42,43,522,520,126,535, - 1555,446,19,16,20,17,410,42,35,216, - 714,219,1292,221,222,227,13,237,239,892, - 196,198,1773,329,143,207,1561,1842,312,1549, - 664,19,16,20,17,410,42,43,522,520, - 241,1428,664,19,16,20,17,410,42,43, - 522,520,394,1454,207,197,198,664,19,16, - 20,17,410,42,43,522,520,797,1455,13, - 1183,1772,412,1859,372,133,211,322,323,1787, - 280,408,1871,140,132,134,158,664,19,16, - 20,17,410,42,43,522,1458,664,19,16, - 20,17,410,42,43,522,1504,139,994,164, - 216,714,219,1292,221,222,227,903,1686,133, - 291,1876,239,1379,13,331,361,673,13,275, - 239,518,188,643,468,69,272,13,1837,932, - 133,211,322,323,328,333,525,690,149,132, - 134,158,240,228,265,395,393,270,252,211, - 322,323,133,211,322,323,86,1563,281,1010, - 152,132,134,158,446,19,16,20,17,410, - 42,35,1709,669,217,714,219,1292,221,222, - 227,192,700,731,1710,762,245,664,19,16, - 20,17,410,42,37,664,19,16,20,17, - 410,42,36,664,19,16,20,17,410,42, - 35,664,19,16,20,17,410,42,34,1011, - 664,19,16,20,17,410,42,46,181,489, - 664,19,16,20,17,410,42,45,664,19, - 16,20,17,410,42,44,559,272,528,559, - 239,253,211,322,323,793,564,239,690,564, - 518,239,239,518,245,265,395,393,270,292, - 961,735,242,1262,824,856,1262,86,311,243, - 264,857,1704,292,294,1704,757,19,16,20, - 17,410,316,253,211,322,323,178,1748,257, - 202,1350,257,6,1052,853,1711,1052,1014,1711, - 788,19,16,20,17,410,40,664,19,16, - 20,17,410,33,664,19,16,20,17,410, - 32,13,915,704,373,13,272,375,518,1938, - 679,365,13,1938,1709,365,1938,482,1745,13, - 564,1938,365,13,267,395,393,270,195,365, - 86,679,195,365,86,679,1659,1262,82,195, - 1659,86,679,1938,1938,179,195,1659,86,679, - 195,601,86,679,1659,800,69,61,1659,232, - 69,251,842,257,57,503,1938,169,1562,884, - 1711,690,69,926,564,564,1938,564,1938,252, - 211,322,323,252,211,322,323,207,973,518, - 88,195,1262,1704,195,252,211,322,323,1250, - 1938,61,1250,1449,1772,1808,518,1938,1938,1350, - 1938,253,211,322,323,1668,1938,1938,257,1668, - 1938,1938,1938,1291,1938,1711,203,1938,1938,1938, - 1938,1858,1938,190,1938,1938,190,1704,1938,1938, - 1938,1938,1938,1413,767,1938,1700,1259,1042,1778, - 1259,968,1938,1576,1938,0,325,732,0,19, - 177,0,1,2162,0,1,2173,0 + 89,10,104,22,22,21,21,37,37,72, + 72,1,1,2,2,2,2,3,3,3, + 4,5,5,5,5,5,5,5,5,54, + 54,73,6,6,6,6,6,6,6,6, + 6,6,6,7,8,8,8,8,9,9, + 9,11,11,11,12,12,12,12,12,13, + 13,13,14,14,15,15,16,16,17,17, + 18,18,19,19,20,20,20,20,20,20, + 20,20,20,20,20,20,105,31,30,90, + 90,75,75,45,106,106,106,106,106,106, + 106,107,107,107,108,108,113,113,114,114, + 109,109,110,110,110,116,116,111,111,111, + 111,112,112,112,112,112,115,115,27,27, + 27,27,27,32,32,32,81,81,76,76, + 76,76,77,77,77,78,78,78,79,79, + 79,80,80,80,117,117,118,118,119,33, + 35,35,35,35,35,55,57,57,57,57, + 57,57,57,57,57,57,57,57,66,63, + 63,91,92,67,67,64,64,64,68,82, + 82,83,83,69,69,69,36,93,93,84, + 85,85,85,65,65,94,86,86,87,87, + 70,70,23,24,24,24,34,51,51,38, + 38,38,38,41,41,43,39,39,40,44, + 44,120,120,42,121,121,95,95,28,28, + 28,28,28,28,28,28,28,88,52,52, + 52,52,29,59,59,58,58,58,60,60, + 53,53,96,96,50,50,61,61,61,46, + 46,46,47,48,48,48,49,49,49,49, + 56,56,56,62,97,74,74,74,74,71, + 98,99,99,100,100,101,101,122,122,123, + 123,124,124,124,124,126,126,125,125,125, + 127,127,89,89,2,2,2,6,6,6, + 6,6,6,23,23,25,25,26,26,102, + 102,102,106,128,128,128,128,128,128,128, + 111,111,111,111,111,111,111,111,111,111, + 111,111,111,111,111,111,111,111,111,111, + 111,111,111,111,129,129,1,1302,17,21, + 18,428,1273,44,537,532,188,718,539,793, + 758,1211,1209,1255,1215,74,91,88,607,134, + 212,323,324,401,537,61,525,1300,136,133, + 135,159,664,20,17,21,18,428,43,44, + 537,532,194,718,539,793,758,1211,1209,1603, + 581,138,274,165,1440,1690,521,1153,931,142, + 145,148,151,534,218,1395,220,1557,222,223, + 228,412,1244,596,1558,1589,1602,1217,571,20, + 17,21,18,428,1273,44,537,532,393,718, + 539,793,758,1211,1209,1255,1215,74,280,633, + 20,17,21,18,428,1273,44,537,532,393, + 718,539,793,758,1211,1209,1255,1215,74,280, + 325,1732,420,291,664,20,17,21,18,428, + 43,44,537,532,285,718,539,793,758,1555, + 1698,446,20,17,21,18,428,43,36,286, + 293,292,618,230,186,285,230,31,13,455, + 1828,1698,70,245,137,230,1771,457,448,250, + 286,277,125,1305,363,20,17,21,18,428, + 1273,44,537,532,393,718,539,793,758,1211, + 1209,1255,1215,74,280,254,212,323,324,225, + 178,819,20,17,21,18,428,1273,44,537, + 532,1799,718,539,793,758,1211,1209,1255,1215, + 74,1588,134,212,323,324,862,1151,61,25, + 287,136,133,135,159,209,1698,664,20,17, + 21,18,428,43,40,288,230,185,797,134, + 212,323,324,716,138,426,165,1683,144,133, + 135,159,142,145,148,151,534,664,20,17, + 21,18,428,43,39,1244,596,1558,1589,1602, + 1217,281,20,17,21,18,428,1273,44,537, + 532,1786,718,539,793,758,1211,1209,1255,1215, + 74,1358,1266,238,602,20,17,21,18,428, + 1273,44,537,532,188,718,539,793,758,1211, + 1209,1255,1215,74,280,664,20,17,21,18, + 428,1273,44,537,532,19,718,539,793,758, + 1211,1209,1255,1215,74,91,564,1697,39,580, + 664,20,17,21,18,428,43,44,537,532, + 289,718,539,793,1556,239,1698,487,20,17, + 21,18,428,43,44,537,532,275,718,539, + 793,758,1211,1209,1255,1215,93,22,32,331, + 664,20,17,21,18,428,43,44,537,532, + 412,1408,322,20,17,21,18,428,1273,44, + 537,532,1609,718,539,793,758,1211,1209,1255, + 1215,74,1611,81,239,664,20,17,21,18, + 428,1273,44,537,532,188,718,539,793,758, + 1211,1209,1255,1215,74,92,664,20,17,21, + 18,428,1273,44,537,532,1617,718,539,793, + 758,1211,1209,1255,1215,74,85,664,20,17, + 21,18,428,1273,44,537,532,188,718,539, + 793,758,1211,1209,1255,1215,74,84,664,20, + 17,21,18,428,1273,44,537,532,1629,718, + 539,793,758,1211,1209,1255,1215,74,83,664, + 20,17,21,18,428,1273,44,537,532,188, + 718,539,793,758,1211,1209,1255,1215,74,82, + 664,20,17,21,18,428,1273,44,537,532, + 1630,718,539,793,758,1211,1209,1255,1215,74, + 81,664,20,17,21,18,428,1273,44,537, + 532,188,718,539,793,758,1211,1209,1255,1215, + 74,80,664,20,17,21,18,428,1273,44, + 537,532,1632,718,539,793,758,1211,1209,1255, + 1215,74,79,664,20,17,21,18,428,1273, + 44,537,532,188,718,539,793,758,1211,1209, + 1255,1215,74,78,664,20,17,21,18,428, + 1273,44,537,532,23,718,539,793,758,1211, + 1209,1255,1215,74,77,664,20,17,21,18, + 428,1273,44,537,532,188,718,539,793,758, + 1211,1209,1255,1215,74,76,664,20,17,21, + 18,428,1273,44,537,532,272,718,539,793, + 758,1211,1209,1255,1215,74,75,664,20,17, + 21,18,428,1273,44,537,532,188,718,539, + 793,758,1211,1209,1255,1215,74,73,664,20, + 17,21,18,428,1273,44,537,532,278,718, + 539,793,758,1211,1209,1255,1215,74,1687,664, + 20,17,21,18,428,1273,44,537,532,188, + 718,539,793,758,1211,1209,1255,1215,74,1692, + 664,20,17,21,18,428,43,44,537,532, + 279,718,539,793,758,1211,1209,1255,1215,93, + 664,20,17,21,18,428,43,44,537,532, + 538,718,539,793,758,1211,1209,1255,1215,93, + 1361,230,187,139,892,1756,664,20,17,21, + 18,428,43,44,1304,664,20,17,21,18, + 428,43,44,537,532,1769,718,539,793,758, + 1211,1209,1255,1215,93,664,20,17,21,18, + 428,43,44,537,532,293,718,539,793,758, + 1211,1209,1255,1215,93,1819,230,294,1411,59, + 211,115,194,230,296,243,230,225,178,61, + 664,20,17,21,18,428,43,44,537,532, + 201,718,539,793,758,1211,1209,1255,1215,93, + 134,212,323,324,394,1731,13,1000,1663,137, + 133,135,159,892,144,53,1816,1436,695,20, + 17,21,18,428,321,202,518,134,212,323, + 324,1759,139,337,165,273,141,133,135,159, + 143,146,149,152,534,217,1395,220,1557,222, + 223,228,359,266,719,394,271,399,262,140, + 71,165,850,28,477,797,954,1813,263,726, + 20,17,21,18,428,319,1684,664,20,17, + 21,18,428,43,44,537,532,276,718,539, + 793,758,1211,1604,273,1008,757,20,17,21, + 18,428,317,260,217,1395,220,1557,222,223, + 228,281,266,719,394,271,13,1686,239,1814, + 523,63,13,273,1690,616,1484,1015,230,31, + 518,1706,1370,218,1395,220,1557,222,223,228, + 240,268,719,394,271,664,20,17,21,18, + 428,43,44,537,532,644,718,539,1489,217, + 1395,220,1557,222,223,228,498,282,119,126, + 518,518,1802,664,20,17,21,18,428,43, + 44,537,532,227,718,1501,664,20,17,21, + 18,428,43,44,537,532,61,718,1513,63, + 181,24,13,13,143,197,199,179,203,1706, + 1836,207,1618,469,1772,664,20,17,21,18, + 428,43,44,537,532,1663,1409,664,20,17, + 21,18,428,43,44,537,1486,217,1395,220, + 1557,222,223,228,482,1771,312,372,1335,408, + 1802,664,20,17,21,18,428,43,44,537, + 532,291,1444,664,20,17,21,18,428,43, + 44,537,532,331,1451,664,20,17,21,18, + 428,43,38,198,199,664,20,17,21,18, + 428,43,44,537,1487,412,664,20,17,21, + 18,428,43,44,1406,1706,446,20,17,21, + 18,428,43,36,208,361,673,617,891,994, + 664,20,17,21,18,428,43,37,330,1681, + 1154,1783,643,217,1395,220,1557,222,223,228, + 276,134,212,323,324,226,1686,273,239,903, + 147,133,135,159,446,20,17,21,18,428, + 43,36,932,333,669,266,719,394,271,239, + 242,239,134,212,323,324,246,700,482,1771, + 1015,150,133,135,159,134,212,323,324,731, + 762,329,793,241,153,133,135,159,664,20, + 17,21,18,428,43,36,664,20,17,21, + 18,428,43,35,1011,664,20,17,21,18, + 428,43,47,245,1219,664,20,17,21,18, + 428,43,46,664,20,17,21,18,428,43, + 45,559,273,237,559,707,188,239,208,13, + 292,569,239,1841,569,569,735,824,856,1820, + 266,719,394,271,1253,1783,61,224,1247,243, + 1663,1247,1247,1663,244,265,788,20,17,21, + 18,428,41,664,20,17,21,18,428,34, + 13,857,6,1759,258,1663,1335,258,259,1057, + 366,1696,1057,13,1696,664,20,17,21,18, + 428,33,251,366,13,188,239,196,396,1014, + 87,684,695,518,366,13,1654,13,82,239, + 196,853,133,87,684,366,229,366,293,1654, + 376,196,89,915,87,684,69,273,1690,233, + 1654,295,196,805,196,87,684,87,684,69, + 180,1654,704,1654,847,268,719,394,271,253, + 212,323,324,518,518,889,57,931,373,679, + 169,113,253,212,323,324,569,1947,503,569, + 569,569,1947,1947,1947,1947,69,1947,569,528, + 1947,69,973,196,193,542,1247,196,196,695, + 204,1254,1140,13,1947,1247,1140,1140,542,253, + 212,323,324,695,253,212,323,324,961,87, + 312,1947,258,1947,772,1947,1947,1755,1947,1696, + 1947,258,973,87,735,191,1099,1068,1696,191, + 192,254,212,323,324,1868,1947,1947,1410,1821, + 1882,13,1763,1821,1947,254,212,323,324,1947, + 1947,695,1947,1947,1768,1947,1947,1947,1947,1947, + 1947,1947,1947,1947,1947,1947,1947,1947,387,1947, + 1947,87,1572,1947,0,326,737,0,20,178, + 0,1,2172,0,1,2183,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -560,111 +562,111 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 1938,1948,1771,1949,1643,1938,1635,1627,1651,2150, - 2151,2152,1,1764,1757,2264,1283,2265,1750,1950, - 1951,1952,1953,632,606,2251,2252,2253,1726,1351, - 433,63,2099,2100,2098,2153,2101,2097,53,1240, - 2104,2109,2108,2106,2107,2105,2110,2111,2103,2112, - 2113,2114,69,526,536,523,1938,1,67,1, - 251,189,1,2162,1502,1,1,1,1938,50, - 1938,1,1,1,669,1185,1130,2150,2151,2152, - 61,1938,1114,2264,1283,2265,1943,1938,1,1, - 1,1,1,1,1517,1527,1,1,1,1, - 1,1,1,1,1,1,1,1,189,1, - 1,1,1938,1,65,1,2132,188,57,1774, - 1942,1,1,1,247,56,1332,1,1,1, - 1159,493,1938,1,1,1,180,1947,181,1, - 1,1,55,283,1,1,1,1,1,1, - 1418,1273,1,1,1,1,1,1,1,1, - 1,1,1,1,188,1,1,1,1938,1, - 1401,1,2132,189,1517,1527,1925,1,1,1, - 246,1517,1527,1,1,1,715,1938,1938,2150, - 2151,2152,1943,87,1938,2264,1283,2265,1517,1527, - 1,1,1,1,1,1,54,1946,1,1, + 1947,1958,1730,1959,1638,1947,1560,1515,1646,2160, + 2161,2162,1,1745,1723,2274,388,2275,1716,1960, + 1961,1962,1963,637,607,2261,2262,2263,1336,1309, + 1258,64,2109,2110,2108,2163,2111,2107,54,1385, + 2114,2119,2118,2116,2117,2115,2120,2121,2113,2122, + 2123,2124,70,529,1297,1292,1947,1,68,1, + 252,190,1,2172,1535,1,1,1,1947,51, + 1947,1,1,1,674,1536,1156,2160,2161,2162, + 62,1947,528,2274,388,2275,1953,1947,1,1, + 1,1,1,1,1467,1525,1,1,1,1, + 1,1,1,1,1,1,1,1,190,1, + 1,1,1947,1,66,1,2142,189,58,1818, + 1952,1,1,1,247,57,1317,1,1,1, + 1185,494,1947,2160,2161,2162,181,1957,182,2274, + 388,2275,56,284,1,1,1,1,1,1, + 1426,1413,1,1,1,1,1,1,1,1, + 1,1,1,1,189,1,1,1,1947,1, + 1439,1,2142,190,1467,1525,1934,1,1,1, + 248,1467,1525,1,1,1,720,1947,1947,1, + 1,1,1953,88,1947,1,1,1,1467,1525, + 1,1,1,1,1,1,55,1956,1,1, 1,1,1,1,1,1,1,1,1,1, - 189,1,1,1,1938,1948,1942,1949,2132,1938, - 1948,790,1949,2150,2151,2152,248,1938,1938,2264, - 1283,2265,71,1941,1938,1,1,1,1224,58, - 1,1,1,1,1938,89,2099,2100,2098,2153, - 2101,2097,1517,1527,2104,2109,2108,2106,2107,2105, - 2110,2111,2103,2112,2113,2114,1938,526,536,523, - 1,1948,1771,1949,510,1941,1635,1627,1651,89, - 60,1938,1,1764,1757,1447,1940,1943,1750,1950, - 1951,1952,1953,632,606,2251,2252,2253,1726,1351, - 433,52,566,1487,1472,1460,755,1185,1130,1214, - 1567,1938,1948,1771,1949,1604,1941,1635,1627,1651, - 59,1942,70,1938,1764,1757,42,1938,1940,1750, - 1950,1951,1952,1953,632,606,2251,2252,2253,1726, - 1351,433,1938,1063,1487,1472,1460,755,183,3160, - 66,3160,1,1948,1771,1949,1643,28,1635,1627, - 1651,51,1938,2174,3101,1764,1757,1185,1130,1940, - 1750,1950,1951,1952,1953,632,606,2251,2252,2253, - 1726,1351,433,127,1487,1472,1460,755,182,3165, - 1938,3165,2150,2151,2152,1021,1332,62,2264,1283, - 2265,1,2162,1502,28,1000,979,958,937,916, - 874,895,853,832,811,2099,2100,2098,2153,2101, - 2097,1084,715,2104,2109,2108,2106,2107,2105,2110, - 2111,2103,2112,2113,2114,1938,1948,1771,1949,1643, - 1941,1635,1627,1651,204,3166,47,3166,1764,1757, - 1678,1127,1938,1750,1950,1951,1952,1953,632,606, - 2251,2252,2253,1726,1351,433,49,1418,1273,1938, - 1678,206,1948,1938,1949,1938,1938,1948,1771,1949, - 1431,1941,1635,1627,1651,205,533,48,533,1764, - 1757,1678,1,1940,1750,1950,1951,1952,1953,632, - 606,2251,2252,2253,1726,1351,433,1938,1670,1660, - 1938,1948,1945,1949,251,2162,1502,1938,1,1, - 1,1,1371,1,1,1,269,1,1670,1660, - 1,1,1947,1938,1940,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1670, - 1660,2194,251,1938,1948,1938,1949,646,1938,1944, - 1,1948,1771,1949,1643,1377,1635,1627,1651,268, - 289,519,3101,1764,1757,1938,1938,2250,1750,1950, - 1951,1952,1953,632,606,2251,2252,2253,1726,1351, - 433,1938,1948,1771,1949,1643,325,1635,1627,1651, - 646,1104,1946,3101,1764,1757,220,2194,1374,1750, - 1950,1951,1952,1953,632,606,2251,2252,2253,1726, - 1351,433,1,1948,1771,1949,1643,1926,1635,1627, - 1651,1235,1938,218,3101,1764,1757,646,1938,1938, - 1750,1950,1951,1952,1953,632,606,2251,2252,2253, - 1726,1351,433,1938,1948,1771,1949,1643,68,1635, - 1627,1651,64,1938,646,1938,1764,1757,1,1935, - 1240,1750,1950,1951,1952,1953,632,606,2251,2252, - 2253,1726,1351,433,1938,1948,1775,1949,1643,321, - 1635,1627,1651,199,1938,1938,1,1764,1757,1938, - 400,1114,1750,1950,1951,1952,1953,632,606,2251, - 2252,2253,1726,1351,433,1938,1948,1782,1949,1643, - 319,1635,1627,1651,254,1938,1938,2194,1764,1757, - 1938,493,1114,1750,1950,1951,1952,1953,632,606, - 2251,2252,2253,1726,1351,433,1938,1948,1789,1949, - 1643,317,1635,1627,1651,2193,1938,1938,1938,1764, - 1757,1194,1261,1114,1750,1950,1951,1952,1953,632, - 606,2251,2252,2253,1726,1351,433,1938,1948,1793, - 1949,1643,41,1635,1627,1651,29,1938,282,1938, - 1764,1757,1938,1446,1114,1750,1950,1951,1952,1953, - 632,606,2251,2252,2253,1726,1351,433,1,1948, - 1771,1949,1643,1938,1635,1627,1651,1938,1938,1938, - 1938,1764,1757,1938,543,1499,1750,1950,1951,1952, - 1953,632,606,2251,2252,2253,1726,1351,433,19, - 1446,1929,209,1929,1929,1938,1938,187,177,177, - 177,128,187,187,177,177,177,1554,1558,183, - 2150,2151,2152,1938,182,204,2264,1283,2265,1938, - 1929,177,177,177,177,177,177,1938,1929,1938, - 129,29,1938,2099,2100,2098,2153,2101,2097,2150, - 2151,2152,130,1938,1938,2264,1283,2265,1938,1938, - 1938,2150,2151,2152,205,1938,1938,2264,1283,2265, - 1938,1139,2099,2100,2098,2153,2101,2097,1938,1966, - 31,131,1831,1938,2099,2100,2098,2153,2101,2097, - 2150,2151,2152,1963,1964,1938,2264,1283,2265,1938, - 1938,1938,2798,1,1932,1321,1938,1938,1943,1938, - 249,1373,1938,2099,2100,2098,2153,2101,2097,2150, - 2151,2152,250,1938,1938,2264,1283,2265,1938,1938, - 1938,2150,2151,2152,646,1938,1938,2264,1283,2265, - 1938,1181,1942,1,1938,1538,1938,1938,1943,260, - 2162,1321,1938,1,1938,1938,527,266,2162,1321, - 263,251,1538,266,1,1538,1938,251,1938,1938, - 1938,1938,1938,1938,646,1938,1938,1938,1938,1938, - 646,1938,1942,1938,1938,1938,1938,1938,646,1938, - 1938,646,1938,1938,646 + 190,1,1,1,1947,1958,1952,1959,2142,1947, + 1958,795,1959,2160,2161,2162,249,1947,1947,2274, + 388,2275,72,1951,1947,1,1,1,395,59, + 1,1,1,1,1947,90,2109,2110,2108,2163, + 2111,2107,1467,1525,2114,2119,2118,2116,2117,2115, + 2120,2121,2113,2122,2123,2124,1947,529,1297,1292, + 1,1958,1730,1959,511,1951,1560,1515,1646,90, + 61,1947,1,1745,1723,598,1950,1953,1716,1960, + 1961,1962,1963,637,607,2261,2262,2263,1336,1309, + 1258,53,571,1503,1491,1455,760,1536,1156,402, + 1901,1947,1958,1730,1959,1594,1951,1560,1515,1646, + 60,1952,71,1947,1745,1723,43,1947,1950,1716, + 1960,1961,1962,1963,637,607,2261,2262,2263,1336, + 1309,1258,1947,1089,1503,1491,1455,760,184,3170, + 67,3170,1,1958,1730,1959,1638,29,1560,1515, + 1646,52,1947,2184,3111,1745,1723,1536,1156,1950, + 1716,1960,1961,1962,1963,637,607,2261,2262,2263, + 1336,1309,1258,128,1503,1491,1455,760,183,3175, + 1947,3175,2160,2161,2162,1026,1317,63,2274,388, + 2275,1,2172,1535,29,1005,984,963,942,921, + 879,900,858,837,816,2109,2110,2108,2163,2111, + 2107,1110,720,2114,2119,2118,2116,2117,2115,2120, + 2121,2113,2122,2123,2124,1947,1958,1730,1959,1638, + 1951,1560,1515,1646,205,3176,48,3176,1745,1723, + 1673,1206,1947,1716,1960,1961,1962,1963,637,607, + 2261,2262,2263,1336,1309,1258,50,1426,1413,1947, + 1673,207,1958,1947,1959,1947,1947,1958,1730,1959, + 1546,1951,1560,1515,1646,206,535,49,535,1745, + 1723,1673,1,1950,1716,1960,1961,1962,1963,637, + 607,2261,2262,2263,1336,1309,1258,1947,1665,1655, + 1947,1958,1955,1959,252,2172,1535,1947,1,1, + 1,1,1246,1,1,1,270,1,1665,1655, + 1,1,1957,1947,1950,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1665, + 1655,2204,252,1947,1958,1947,1959,651,1947,1954, + 1,1958,1730,1959,1638,1356,1560,1515,1646,269, + 290,520,3111,1745,1723,1947,1947,2260,1716,1960, + 1961,1962,1963,637,607,2261,2262,2263,1336,1309, + 1258,1947,1958,1730,1959,1638,326,1560,1515,1646, + 651,1130,1956,3111,1745,1723,221,2204,1195,1716, + 1960,1961,1962,1963,637,607,2261,2262,2263,1336, + 1309,1258,1,1958,1730,1959,1638,1935,1560,1515, + 1646,1213,1947,219,3111,1745,1723,651,1947,1947, + 1716,1960,1961,1962,1963,637,607,2261,2262,2263, + 1336,1309,1258,1947,1958,1730,1959,1638,69,1560, + 1515,1646,65,1947,651,1947,1745,1723,1,1944, + 1385,1716,1960,1961,1962,1963,637,607,2261,2262, + 2263,1336,1309,1258,1947,1958,1743,1959,1638,322, + 1560,1515,1646,200,1947,1947,1,1745,1723,1947, + 1047,528,1716,1960,1961,1962,1963,637,607,2261, + 2262,2263,1336,1309,1258,1947,1958,1754,1959,1638, + 320,1560,1515,1646,255,1947,1947,2204,1745,1723, + 1947,494,528,1716,1960,1961,1962,1963,637,607, + 2261,2262,2263,1336,1309,1258,1947,1958,1765,1959, + 1638,318,1560,1515,1646,2203,1947,1947,1947,1745, + 1723,1220,1685,528,1716,1960,1961,1962,1963,637, + 607,2261,2262,2263,1336,1309,1258,1947,1958,1767, + 1959,1638,42,1560,1515,1646,30,1947,283,1947, + 1745,1723,1947,1362,528,1716,1960,1961,1962,1963, + 637,607,2261,2262,2263,1336,1309,1258,1,1958, + 1730,1959,1638,1947,1560,1515,1646,1947,1947,1947, + 1947,1745,1723,1947,544,1442,1716,1960,1961,1962, + 1963,637,607,2261,2262,2263,1336,1309,1258,20, + 1362,1938,210,1938,1938,1947,1947,188,178,178, + 178,129,188,188,178,178,178,1443,1689,184, + 2160,2161,2162,1947,183,205,2274,388,2275,1947, + 1938,178,178,178,178,178,178,1947,1938,1947, + 130,30,1947,2109,2110,2108,2163,2111,2107,2160, + 2161,2162,131,1947,1947,2274,388,2275,1947,1947, + 1947,2160,2161,2162,206,1947,1947,2274,388,2275, + 1947,1165,2109,2110,2108,2163,2111,2107,1947,1976, + 32,132,1752,1947,2109,2110,2108,2163,2111,2107, + 2160,2161,2162,1973,1974,1947,2274,388,2275,1947, + 1947,1947,2808,1,1941,1306,1947,1947,1953,1947, + 250,1853,1947,2109,2110,2108,2163,2111,2107,2160, + 2161,2162,251,1947,1947,2274,388,2275,1947,1947, + 1947,2160,2161,2162,651,1947,1947,2274,388,2275, + 1947,1368,1952,1,1947,1559,1947,1947,1953,261, + 2172,1306,1947,1,1947,1947,526,267,2172,1306, + 264,252,1559,267,1,1559,1947,252,1947,1947, + 1947,1947,1947,1947,651,1947,1947,1947,1947,1947, + 651,1947,1952,1947,1947,1947,1947,1947,651,1947, + 1947,651,1947,1947,651 }; }; public final static char termAction[] = TermAction.termAction; @@ -672,29 +674,29 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 443,1,85,41,85,85,85,85,85,85, - 85,85,85,85,85,85,200,3,386,383, - 390,388,396,394,398,397,400,399,10,85, - 200,200,200,200,183,183,329,200,368,368, - 472,85,85,85,85,85,85,85,85,85, - 85,85,85,85,85,85,85,85,85,85, - 85,85,85,85,85,85,85,85,85,85, - 85,85,183,183,183,183,74,333,76,335, - 181,180,301,193,313,72,313,72,72,313, - 72,313,220,134,183,45,383,383,388,388, - 388,388,386,386,394,390,390,397,396,256, - 399,398,371,371,371,371,50,329,333,79, - 45,243,109,183,411,338,109,72,368,368, - 72,368,85,50,333,321,243,45,108,76, - 183,327,220,182,340,45,109,74,262,74, - 295,297,259,292,74,321,243,85,85,45, - 109,335,251,250,333,340,183,74,262,295, - 295,292,48,470,368,85,258,292,50,243, - 321,45,45,183,411,338,327,262,292,186, - 262,295,297,467,297,52,45,368,85,50, - 321,340,262,188,297,292,85,368,45,297, - 183,182,292,407,85,406,104,333,292,292, - 369,188,85,104,297 + 473,1,146,102,146,146,146,146,146,146, + 146,146,146,146,146,146,10,64,84,81, + 88,86,94,92,96,95,98,97,70,146, + 10,10,10,10,318,318,230,10,368,368, + 443,146,146,146,146,146,146,146,146,146, + 146,146,146,146,146,146,146,146,146,146, + 146,146,146,146,146,146,146,146,146,146, + 146,146,318,318,318,318,135,234,137,335, + 316,315,202,3,214,133,214,133,133,214, + 133,214,30,269,318,106,81,81,86,86, + 86,86,84,84,92,88,88,95,94,333, + 97,96,371,371,371,371,111,230,234,140, + 106,53,170,318,411,338,170,133,368,368, + 133,368,146,111,234,222,53,106,169,137, + 318,228,30,317,340,106,170,135,236,135, + 321,323,61,266,135,222,222,146,146,106, + 170,335,328,327,234,340,318,135,236,321, + 321,266,109,471,368,146,60,266,111,222, + 53,106,106,318,411,338,228,236,266,195, + 236,321,323,468,323,113,106,368,146,111, + 53,222,340,236,197,323,266,146,368,106, + 323,222,318,317,266,407,146,406,165,234, + 266,266,369,197,146,165,323 }; }; public final static char asb[] = Asb.asb; @@ -702,56 +704,56 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static byte asr[] = {0, - 89,0,75,31,2,61,76,13,14,8, - 4,6,7,62,63,56,57,64,65,66, - 67,70,71,72,73,74,77,78,52,69, - 79,80,81,82,83,85,84,86,87,88, - 68,39,89,38,58,5,0,5,52,31, - 61,13,14,8,4,6,7,23,24,18, - 28,29,30,2,19,20,21,22,25,26, - 27,1,3,12,0,58,5,32,9,10, - 11,15,16,17,19,20,21,22,25,26, - 27,3,13,14,8,6,7,23,24,18, - 28,29,30,4,2,1,0,32,58,5, - 13,14,8,4,6,7,23,24,18,28, - 29,30,2,1,3,19,20,21,22,25, - 26,27,0,10,32,37,11,36,35,34, - 9,33,15,16,17,61,76,13,14,8, - 6,7,62,63,56,57,64,65,66,67, - 70,71,72,73,74,77,78,69,79,80, - 81,82,83,84,85,86,87,88,4,2, - 31,38,39,5,0,75,5,4,1,2, - 68,0,5,68,38,58,39,75,31,18, + 89,0,5,68,38,58,39,75,31,18, 19,20,21,22,2,13,14,8,4,6, 7,23,24,25,26,27,28,29,30,1, 3,53,54,55,48,40,45,43,44,42, 41,46,47,49,50,51,37,34,32,33, - 36,35,9,10,11,16,15,17,0,2, - 5,38,39,75,31,68,0,69,31,61, - 0,33,40,9,41,53,34,42,35,43, - 44,36,10,45,46,32,54,37,55,47, - 48,11,49,50,51,1,3,15,16,17, - 60,5,52,0,1,3,5,52,38,0, - 48,40,45,43,44,42,41,46,47,49, - 50,51,68,75,37,34,32,33,36,35, - 9,10,11,15,16,17,38,1,5,39, - 2,31,4,0,4,2,31,39,5,33, + 36,35,9,10,11,16,15,17,0,69, + 31,61,0,31,2,61,76,13,14,69, + 79,80,81,82,83,85,84,86,87,88, + 4,62,63,6,7,57,56,64,65,66, + 67,70,71,8,72,73,74,52,75,77, + 78,68,39,89,38,58,5,0,5,52, + 31,61,13,14,8,4,6,7,23,24, + 18,28,29,30,2,19,20,21,22,25, + 26,27,1,3,12,0,58,5,32,9, + 10,11,15,16,17,19,20,21,22,25, + 26,27,3,13,14,8,6,7,23,24, + 18,28,29,30,4,2,1,0,32,58, + 5,13,14,8,4,6,7,23,24,18, + 28,29,30,2,1,3,19,20,21,22, + 25,26,27,0,75,5,4,1,2,68, + 0,48,40,45,43,44,42,41,46,47, + 49,50,51,68,75,37,34,32,33,36, + 35,9,10,11,15,16,17,38,1,5, + 39,2,31,4,0,33,40,9,41,53, + 34,42,35,43,44,36,10,45,46,32, + 54,37,55,47,48,11,49,50,51,1, + 3,15,16,17,60,5,52,0,10,32, + 37,11,36,35,34,9,33,15,16,17, + 61,76,13,14,8,6,7,62,63,56, + 57,64,65,66,67,70,71,72,73,74, + 77,78,69,79,80,81,82,83,84,85, + 86,87,88,4,2,31,38,39,5,0, + 1,3,5,52,38,0,2,5,38,39, + 75,31,68,0,4,2,31,39,5,33, 40,9,41,53,34,42,35,43,44,36, 10,45,46,32,54,37,55,47,48,11, 49,50,51,15,16,17,59,3,1,0, - 69,79,80,81,82,83,84,85,86,87, - 88,12,4,62,63,6,7,57,56,64, - 65,66,67,70,71,8,72,73,74,58, - 39,52,89,77,78,68,75,5,38,0, + 8,4,6,7,62,63,56,57,64,65, + 66,67,70,71,72,73,74,77,78,69, + 79,80,81,82,83,84,85,86,87,88, + 58,39,52,89,12,68,75,5,38,0, 4,33,40,9,41,53,34,42,35,43, 44,36,10,45,46,32,54,37,55,47, 48,11,49,50,51,1,3,15,16,17, - 59,0,18,19,20,21,22,1,3,2, + 59,0,5,39,18,19,20,21,22,1, + 3,2,13,14,8,4,6,7,23,24, + 25,26,27,28,29,30,0,5,38,52, + 69,0,18,19,20,21,22,1,3,2, 13,14,8,4,6,7,23,24,25,26, - 27,28,29,30,60,0,5,38,52,69, - 0,5,39,18,19,20,21,22,1,3, - 2,13,14,8,4,6,7,23,24,25, - 26,27,28,29,30,0 + 27,28,29,30,60,0 }; }; public final static byte asr[] = Asr.asr; @@ -759,29 +761,29 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasb { public final static byte nasb[] = {0, - 98,36,27,36,27,27,27,27,27,27, - 27,27,27,27,27,27,105,36,36,36, - 36,36,36,36,36,36,36,36,36,27, - 105,105,105,105,17,17,87,1,22,22, - 115,106,27,27,27,27,27,27,27,27, - 27,27,27,27,27,27,27,27,106,27, - 27,27,27,27,27,27,27,27,27,27, - 27,27,17,17,17,17,36,13,40,86, - 11,11,53,65,54,46,54,20,20,54, - 19,54,48,36,17,42,36,36,36,36, - 36,36,36,36,36,36,36,36,36,36, - 36,36,36,36,36,36,74,101,36,37, - 42,113,41,17,93,16,41,7,7,7, - 7,7,27,25,36,74,113,42,41,91, - 17,70,29,36,95,42,41,56,74,36, - 74,44,9,74,36,74,113,27,27,42, - 41,69,11,11,13,95,17,36,118,74, - 7,82,24,36,7,27,67,82,74,113, - 91,42,42,17,93,16,76,74,82,58, - 61,7,44,36,36,26,42,7,27,25, - 91,109,118,72,44,82,27,7,42,44, - 17,17,82,59,27,36,72,13,82,82, - 36,72,27,78,84 + 119,41,32,41,32,32,32,32,32,32, + 32,32,32,32,32,32,94,41,41,41, + 41,41,41,41,41,41,41,41,41,32, + 94,94,94,94,18,18,85,1,20,20, + 98,95,32,32,32,32,32,32,32,32, + 32,32,32,32,32,32,32,32,95,32, + 32,32,32,32,32,32,32,32,32,32, + 32,32,18,18,18,18,41,64,47,84, + 13,13,61,9,62,25,62,23,23,62, + 22,62,56,41,18,49,41,41,41,41, + 41,41,41,41,41,41,41,41,41,41, + 41,41,41,41,41,41,76,101,41,42, + 49,105,48,18,89,17,48,7,7,7, + 7,7,32,30,41,82,105,49,48,27, + 18,72,34,41,91,49,48,54,76,41, + 76,45,11,76,41,82,76,32,32,49, + 48,71,13,13,64,91,18,41,107,76, + 7,69,29,41,7,32,15,69,76,76, + 105,49,49,18,89,17,78,76,69,51, + 115,7,45,41,41,31,49,7,32,30, + 105,27,111,107,74,45,69,32,7,49, + 45,27,18,18,69,52,32,41,74,64, + 69,69,41,74,32,80,67 }; }; public final static byte nasb[] = Nasb.nasb; @@ -789,18 +791,18 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasr { public final static char nasr[] = {0, - 81,79,78,67,77,76,1,0,99,0, - 28,0,36,52,0,10,21,0,94,68, - 0,73,0,71,10,62,5,0,81,80, - 79,78,67,77,76,0,5,10,0,10, - 5,22,0,54,0,91,0,67,63,64, - 65,66,55,31,0,92,0,10,72,0, - 10,35,69,0,102,0,101,0,21,48, - 47,41,39,10,0,48,47,41,39,36, - 0,37,0,97,0,21,47,48,10,0, - 23,0,36,52,10,27,0,10,89,0, - 48,47,36,0,35,10,30,0,95,10, - 27,0,59,0,10,90,0,83,10,35, + 81,79,78,67,77,76,1,0,102,0, + 99,0,28,0,101,0,10,21,0,73, + 0,94,68,0,91,0,23,0,71,10, + 62,5,0,81,80,79,78,67,77,76, + 0,5,10,0,54,0,10,5,22,0, + 10,72,0,92,0,67,63,64,65,66, + 55,32,0,29,52,0,97,0,37,0, + 21,48,47,41,39,10,0,48,47,41, + 39,29,0,21,47,48,10,0,29,52, + 10,27,0,36,10,31,0,10,90,0, + 48,47,29,0,59,0,83,10,36,0, + 95,10,27,0,10,36,69,0,10,89, 0 }; }; @@ -828,18 +830,18 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, 114,0,0,0,116,120,121,122,123,0, - 124,125,126,127,128,129,130,131,132,133, - 111,110,143,0,0,0,136,164,0,115, - 142,0,0,0,155,0,112,160,162,0, - 163,0,0,0,135,173,174,175,0,118, - 151,161,170,0,145,150,0,165,168,169, - 172,0,146,147,148,149,152,0,154,159, - 176,113,117,119,134,137,138,139,140,141, - 144,0,153,157,0,0,158,167,109,0, - 0,0,156,0,166,171,0,177,178,0, - 179,180,0,0,0,0,0,0,0,0, + 124,125,126,127,128,129,130,131,0,132, + 111,110,142,0,0,0,135,163,0,0, + 115,141,0,0,0,154,112,159,161,0, + 162,0,0,0,134,172,173,174,0,118, + 150,160,169,0,144,149,0,164,167,168, + 171,0,145,146,147,148,151,0,153,158, + 175,113,117,119,133,136,137,138,139,140, + 143,0,152,156,0,0,157,166,109,0, + 0,0,155,0,165,170,0,176,177,0, + 178,179,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -871,10 +873,10 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLhs { public final static char scopeLhs[] = { - 65,63,5,65,28,28,63,56,109,49, + 65,63,5,65,28,28,63,56,110,49, 28,44,28,6,6,6,49,28,28,69, 6,5,5,28,28,19,28,102,101,100, - 47,61,28,41,51,3,71,69,110,5, + 47,61,28,41,51,3,71,69,111,5, 69,80,79,78,77,76,44,42,44 }; }; @@ -909,28 +911,28 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final static char scopeRhs[] = {0, 152,31,0,110,0,157,2,30,0,111, 0,157,2,29,0,157,2,28,0,205, - 117,0,31,150,0,161,181,117,12,169, + 117,0,31,149,0,161,181,117,12,169, 0,112,0,0,165,117,2,154,0,165, - 117,2,0,168,2,0,159,117,0,173, + 117,2,0,168,2,0,159,117,0,172, 0,195,117,31,0,9,110,0,127,32, - 195,117,31,0,69,133,110,0,127,195, - 117,32,31,0,195,117,32,31,0,133, + 195,117,31,0,69,132,110,0,127,195, + 117,32,31,0,195,117,32,31,0,132, 110,0,127,32,31,0,127,195,117,31, - 0,127,31,0,148,0,2,0,166,111, + 0,127,31,0,148,0,2,0,165,111, 0,2,111,0,165,117,2,148,0,2, - 0,165,111,0,158,2,0,160,0,161, + 0,164,111,0,158,2,0,159,0,161, 193,117,12,108,201,53,0,112,0,161, - 193,117,12,201,53,0,142,0,113,0, - 200,117,142,0,117,142,0,156,113,0, + 193,117,12,201,53,0,143,0,113,0, + 200,117,143,0,117,143,0,155,113,0, 189,117,12,199,108,198,174,0,189,117, - 12,198,174,0,188,0,149,0,148,0, - 147,0,146,0,145,0,212,94,0,77, - 2,115,111,113,0,212,128,137,2,98, - 0,53,0,0,137,78,125,0,29,132, + 12,198,174,0,188,0,148,0,147,0, + 146,0,145,0,144,0,213,94,0,77, + 2,115,111,113,0,213,128,138,2,98, + 0,53,0,0,138,78,125,0,29,132, 0,157,2,18,0,161,181,117,12,128, 157,2,0,157,2,0,111,3,0,119, - 0,112,0,197,2,112,0,137,31,112, - 0,137,2,0 + 0,112,0,197,2,112,0,138,31,112, + 0,138,2,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -938,16 +940,16 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 1315,0,1837,1259,1834,0,392,0,1576,1350, - 1401,1502,1366,1321,1262,0,1283,0,1232,564, - 365,0,1292,714,395,393,1350,1748,1321,1262, - 1538,1659,0,1604,1431,510,1332,1214,715,493, - 1418,1273,1240,1527,1517,1487,1472,1460,755,1678, - 1670,1660,1185,1130,1764,1757,1651,1643,1635,1627, - 632,606,1750,1726,1351,433,1194,1159,1139,1104, - 1084,1063,1042,767,400,732,566,646,1021,1000, - 979,958,937,916,895,874,853,832,811,365, - 790,690,669,468,543,447,0 + 420,0,1820,1821,1816,0,393,0,396,1335, + 1439,1535,1361,1306,1247,0,388,0,1217,569, + 366,0,1557,1395,719,394,1335,1759,1306,1247, + 1559,1654,0,1594,1546,511,1317,402,720,494, + 1426,1413,1385,1525,1467,1503,1491,1455,760,1673, + 1665,1655,1536,1156,1745,1723,1646,1638,1560,1515, + 637,607,1716,1336,1309,1258,1220,1185,1165,1130, + 1110,1089,1068,772,1047,737,571,651,1026,1005, + 984,963,942,921,900,879,858,837,816,366, + 795,695,674,469,544,448,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -958,26 +960,26 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,196,117,182,30,29,28,18,24,23, 7,6,4,8,14,13,2,112,116,115, 119,118,121,120,123,122,125,124,113,38, - 2,2,2,2,157,137,142,117,76,61, + 2,2,2,2,157,138,143,117,76,61, 2,31,7,6,63,62,4,67,66,65, 64,56,57,8,71,70,73,72,78,77, 74,88,87,86,84,85,83,82,81,80, 79,69,157,157,157,157,128,117,31,2, 155,154,183,16,184,174,185,55,54,186, - 53,187,188,108,197,137,115,115,118,118, - 118,118,116,116,120,119,119,122,121,137, - 124,123,128,128,128,128,12,159,143,32, + 53,187,188,108,197,138,115,115,118,118, + 118,118,116,116,120,119,119,122,121,138, + 124,123,128,128,128,128,12,159,136,32, 127,117,4,168,117,2,31,198,175,175, - 201,175,68,117,143,4,117,127,195,166, + 201,175,68,117,136,4,117,127,195,166, 165,134,117,167,117,152,4,108,12,108, - 12,181,117,12,169,4,117,195,32,127, + 12,181,117,12,169,4,136,195,32,127, 4,2,146,148,117,38,165,199,117,12, - 117,161,38,205,61,31,206,117,12,117, - 166,127,127,158,117,2,159,12,189,142, + 117,161,38,205,61,31,206,117,12,136, + 117,127,127,158,117,2,159,12,189,143, 190,117,193,108,194,69,152,61,31,117, - 166,117,117,117,193,161,69,38,152,181, - 165,202,189,200,68,158,2,117,161,161, - 38,38,68,159,144 + 117,166,117,117,117,193,161,69,38,152, + 181,166,165,202,189,200,68,158,2,117, + 161,161,38,38,68,159,144 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -1112,12 +1114,11 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab "shift_expression", "relational_expression", "equality_expression", - "AND_expression", - "exclusive_OR_expression", - "inclusive_OR_expression", - "logical_AND_expression", - "logical_OR_expression", - "conditional_expression", + "and_expression", + "exclusive_or_expression", + "inclusive_or_expression", + "logical_and_expression", + "logical_or_expression", "assignment_expression", "expression_list_actual", "constant_expression", @@ -1188,20 +1189,20 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 225, + NUM_STATES = 227, NT_OFFSET = 107, - LA_STATE_OFFSET = 2302, + LA_STATE_OFFSET = 2312, MAX_LA = 2, - NUM_RULES = 364, - NUM_NONTERMINALS = 128, - NUM_SYMBOLS = 235, + NUM_RULES = 365, + NUM_NONTERMINALS = 129, + NUM_SYMBOLS = 236, SEGMENT_SIZE = 8192, - START_STATE = 1688, + START_STATE = 1839, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 89, EOLT_SYMBOL = 89, - ACCEPT_ACTION = 1925, - ERROR_ACTION = 1938; + ACCEPT_ACTION = 1934, + ERROR_ACTION = 1947; public final static boolean BACKTRACK = true; diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java index 693ff8f0483..2ea043384da 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java @@ -17,13 +17,16 @@ import lpg.lpgjavaruntime.*; import java.util.*; import org.eclipse.cdt.core.dom.ast.*; +import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap; import org.eclipse.cdt.core.dom.lrparser.IParser; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.ITokenCollector; +import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack; - -import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; -import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; +import org.eclipse.cdt.core.parser.IScanner; +import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider; +import org.eclipse.cdt.core.index.IIndex; import org.eclipse.cdt.internal.core.dom.parser.c.CNodeFactory; import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction; @@ -37,7 +40,9 @@ import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement; import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnarySizeofExpression; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; -public class UPCParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser< IASTTranslationUnit > +public class UPCParser extends PrsStream implements RuleAction, ITokenStream, + ITokenCollector, IParser< IASTTranslationUnit > + { private static ParseTable prs = new UPCParserprs(); private FixedBacktrackingParser btParser; @@ -175,7 +180,11 @@ public class UPCParser extends PrsStream implements RuleAction , IParserActionTo private UPCParserAction action; private IASTCompletionNode compNode; -public UPCParser() { // constructor + +public UPCParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Set options) { + initActions(options); + action.initializeTranslationUnit(scanner, builtinBindingsProvider, index); + CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap); } private void initActions(Set options) { @@ -194,17 +203,16 @@ public void addToken(IToken token) { } -public IASTTranslationUnit parse(Set options) { +public IASTTranslationUnit parse() { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(options); final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse super.resetTokenStream(); // allow tokens to be garbage collected compNode = action.getASTCompletionNode(); // the completion node may be null - return ( IASTTranslationUnit ) action.getParseResult(); + return ( IASTTranslationUnit ) action.getParseResult(); } @@ -227,25 +235,6 @@ public String getName() { } - -private ITokenMap tokenMap = null; - -public void setTokens(List tokens) { - resetTokenStream(); - addToken(new Token(null, 0, 0, 0)); // dummy token - for(IToken token : tokens) { - token.setKind(tokenMap.mapKind(token.getKind())); - addToken(token); - } - addToken(new Token(null, 0, 0, UPCParsersym.TK_EOF_TOKEN)); -} - -public UPCParser(IParserActionTokenProvider parser) { // constructor - tokenMap = new TokenMap(UPCParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols()); -} - - - public void ruleAction(int ruleNumber) { switch (ruleNumber) @@ -258,1287 +247,1293 @@ public UPCParser(IParserActionTokenProvider parser) { // constructor } // - // Rule 12: literal ::= integer + // Rule 2: ::= $Empty // - case 12: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break; + case 2: { action. consumeEmpty(); break; } // - // Rule 13: literal ::= floating + // Rule 13: literal ::= integer // - case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break; + case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break; } // - // Rule 14: literal ::= charconst + // Rule 14: literal ::= floating // - case 14: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break; + case 14: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break; } // - // Rule 15: literal ::= stringlit + // Rule 15: literal ::= charconst // - case 15: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break; + case 15: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break; } // - // Rule 17: primary_expression ::= primary_expression_id + // Rule 16: literal ::= stringlit // - case 17: { action. consumeExpressionID(); break; + case 16: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break; } // - // Rule 18: primary_expression ::= ( expression ) + // Rule 18: primary_expression ::= primary_expression_id // - case 18: { action. consumeExpressionBracketed(); break; + case 18: { action. consumeExpressionID(); break; } // - // Rule 21: postfix_expression ::= postfix_expression [ expression ] + // Rule 19: primary_expression ::= ( expression ) // - case 21: { action. consumeExpressionArraySubscript(); break; + case 19: { action. consumeExpressionBracketed(); break; } // - // Rule 22: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 22: postfix_expression ::= postfix_expression [ expression ] // - case 22: { action. consumeExpressionFunctionCall(); break; + case 22: { action. consumeExpressionArraySubscript(); break; } // - // Rule 23: postfix_expression ::= postfix_expression . member_name + // Rule 23: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 23: { action. consumeExpressionFieldReference(false); break; + case 23: { action. consumeExpressionFunctionCall(); break; } // - // Rule 24: postfix_expression ::= postfix_expression -> member_name + // Rule 24: postfix_expression ::= postfix_expression . member_name // - case 24: { action. consumeExpressionFieldReference(true); break; + case 24: { action. consumeExpressionFieldReference(false); break; } // - // Rule 25: postfix_expression ::= postfix_expression ++ + // Rule 25: postfix_expression ::= postfix_expression -> member_name // - case 25: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; + case 25: { action. consumeExpressionFieldReference(true); break; } // - // Rule 26: postfix_expression ::= postfix_expression -- + // Rule 26: postfix_expression ::= postfix_expression ++ // - case 26: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; + case 26: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 27: postfix_expression ::= ( type_id ) { initializer_list comma_opt } + // Rule 27: postfix_expression ::= postfix_expression -- // - case 27: { action. consumeExpressionTypeIdInitializer(); break; + case 27: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 32: unary_expression ::= ++ unary_expression + // Rule 28: postfix_expression ::= ( type_id ) { initializer_list comma_opt } // - case 32: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; + case 28: { action. consumeExpressionTypeIdInitializer(); break; } // - // Rule 33: unary_expression ::= -- unary_expression + // Rule 33: unary_expression ::= ++ unary_expression // - case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; + case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 34: unary_expression ::= & cast_expression + // Rule 34: unary_expression ::= -- unary_expression // - case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; + case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 35: unary_expression ::= * cast_expression + // Rule 35: unary_expression ::= & cast_expression // - case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; + case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 36: unary_expression ::= + cast_expression + // Rule 36: unary_expression ::= * cast_expression // - case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; + case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 37: unary_expression ::= - cast_expression + // Rule 37: unary_expression ::= + cast_expression // - case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; + case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 38: unary_expression ::= ~ cast_expression + // Rule 38: unary_expression ::= - cast_expression // - case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; + case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 39: unary_expression ::= ! cast_expression + // Rule 39: unary_expression ::= ~ cast_expression // - case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; + case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 40: unary_expression ::= sizeof unary_expression + // Rule 40: unary_expression ::= ! cast_expression // - case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; + case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 41: unary_expression ::= sizeof ( type_id ) + // Rule 41: unary_expression ::= sizeof unary_expression // - case 41: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break; + case 41: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 43: cast_expression ::= ( type_id ) cast_expression + // Rule 42: unary_expression ::= sizeof ( type_id ) // - case 43: { action. consumeExpressionCast(IASTCastExpression.op_cast); break; + case 42: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break; } // - // Rule 45: multiplicative_expression ::= multiplicative_expression * cast_expression + // Rule 44: cast_expression ::= ( type_id ) cast_expression // - case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break; + case 44: { action. consumeExpressionCast(IASTCastExpression.op_cast); break; } // - // Rule 46: multiplicative_expression ::= multiplicative_expression / cast_expression + // Rule 46: multiplicative_expression ::= multiplicative_expression * cast_expression // - case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break; + case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break; } // - // Rule 47: multiplicative_expression ::= multiplicative_expression % cast_expression + // Rule 47: multiplicative_expression ::= multiplicative_expression / cast_expression // - case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break; + case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break; } // - // Rule 49: additive_expression ::= additive_expression + multiplicative_expression + // Rule 48: multiplicative_expression ::= multiplicative_expression % cast_expression // - case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break; + case 48: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break; } // - // Rule 50: additive_expression ::= additive_expression - multiplicative_expression + // Rule 50: additive_expression ::= additive_expression + multiplicative_expression // - case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break; + case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break; } // - // Rule 52: shift_expression ::= shift_expression << additive_expression + // Rule 51: additive_expression ::= additive_expression - multiplicative_expression // - case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break; + case 51: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break; } // - // Rule 53: shift_expression ::= shift_expression >> additive_expression + // Rule 53: shift_expression ::= shift_expression << additive_expression // - case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break; + case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break; } // - // Rule 55: relational_expression ::= relational_expression < shift_expression + // Rule 54: shift_expression ::= shift_expression >> additive_expression // - case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break; + case 54: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break; } // - // Rule 56: relational_expression ::= relational_expression > shift_expression + // Rule 56: relational_expression ::= relational_expression < shift_expression // - case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break; + case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break; } // - // Rule 57: relational_expression ::= relational_expression <= shift_expression + // Rule 57: relational_expression ::= relational_expression > shift_expression // - case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break; + case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break; } // - // Rule 58: relational_expression ::= relational_expression >= shift_expression + // Rule 58: relational_expression ::= relational_expression <= shift_expression // - case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break; + case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break; } // - // Rule 60: equality_expression ::= equality_expression == relational_expression + // Rule 59: relational_expression ::= relational_expression >= shift_expression // - case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break; + case 59: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break; } // - // Rule 61: equality_expression ::= equality_expression != relational_expression + // Rule 61: equality_expression ::= equality_expression == relational_expression // - case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break; + case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break; } // - // Rule 63: AND_expression ::= AND_expression & equality_expression + // Rule 62: equality_expression ::= equality_expression != relational_expression // - case 63: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break; + case 62: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break; } // - // Rule 65: exclusive_OR_expression ::= exclusive_OR_expression ^ AND_expression + // Rule 64: and_expression ::= and_expression & equality_expression // - case 65: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break; + case 64: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break; } // - // Rule 67: inclusive_OR_expression ::= inclusive_OR_expression | exclusive_OR_expression + // Rule 66: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 67: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break; + case 66: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break; } // - // Rule 69: logical_AND_expression ::= logical_AND_expression && inclusive_OR_expression + // Rule 68: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 69: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break; + case 68: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break; } // - // Rule 71: logical_OR_expression ::= logical_OR_expression || logical_AND_expression + // Rule 70: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 71: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break; + case 70: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break; } // - // Rule 73: conditional_expression ::= logical_OR_expression ? expression : conditional_expression + // Rule 72: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 73: { action. consumeExpressionConditional(); break; + case 72: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break; } // - // Rule 75: assignment_expression ::= unary_expression = assignment_expression + // Rule 74: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; + case 74: { action. consumeExpressionConditional(); break; } // - // Rule 76: assignment_expression ::= unary_expression *= assignment_expression + // Rule 76: assignment_expression ::= unary_expression = assignment_expression // - case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break; + case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; } // - // Rule 77: assignment_expression ::= unary_expression /= assignment_expression + // Rule 77: assignment_expression ::= unary_expression *= assignment_expression // - case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break; + case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 78: assignment_expression ::= unary_expression %= assignment_expression + // Rule 78: assignment_expression ::= unary_expression /= assignment_expression // - case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break; + case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break; } // - // Rule 79: assignment_expression ::= unary_expression += assignment_expression + // Rule 79: assignment_expression ::= unary_expression %= assignment_expression // - case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break; + case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break; } // - // Rule 80: assignment_expression ::= unary_expression -= assignment_expression + // Rule 80: assignment_expression ::= unary_expression += assignment_expression // - case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break; + case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break; } // - // Rule 81: assignment_expression ::= unary_expression <<= assignment_expression + // Rule 81: assignment_expression ::= unary_expression -= assignment_expression // - case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break; + case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break; } // - // Rule 82: assignment_expression ::= unary_expression >>= assignment_expression + // Rule 82: assignment_expression ::= unary_expression <<= assignment_expression // - case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break; + case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 83: assignment_expression ::= unary_expression &= assignment_expression + // Rule 83: assignment_expression ::= unary_expression >>= assignment_expression // - case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break; + case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 84: assignment_expression ::= unary_expression ^= assignment_expression + // Rule 84: assignment_expression ::= unary_expression &= assignment_expression // - case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break; + case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 85: assignment_expression ::= unary_expression |= assignment_expression + // Rule 85: assignment_expression ::= unary_expression ^= assignment_expression // - case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break; + case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 88: expression_list ::= expression_list_actual + // Rule 86: assignment_expression ::= unary_expression |= assignment_expression // - case 88: { action. consumeExpressionList(); break; + case 86: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 90: expression_list_opt ::= $Empty + // Rule 89: expression_list ::= expression_list_actual // - case 90: { action. consumeEmpty(); break; + case 89: { action. consumeExpressionList(); break; } // - // Rule 100: statement ::= ERROR_TOKEN + // Rule 91: expression_list_opt ::= $Empty // - case 100: { action. consumeStatementProblem(); break; + case 91: { action. consumeEmpty(); break; } // - // Rule 101: labeled_statement ::= identifier_token : statement + // Rule 101: statement ::= ERROR_TOKEN // - case 101: { action. consumeStatementLabeled(); break; + case 101: { action. consumeStatementProblem(); break; } // - // Rule 102: labeled_statement ::= case constant_expression : statement + // Rule 102: labeled_statement ::= identifier_token : statement // - case 102: { action. consumeStatementCase(); break; + case 102: { action. consumeStatementLabeled(); break; } // - // Rule 103: labeled_statement ::= default : statement + // Rule 103: labeled_statement ::= case constant_expression : statement // - case 103: { action. consumeStatementDefault(); break; + case 103: { action. consumeStatementCase(); break; } // - // Rule 104: compound_statement ::= { } + // Rule 104: labeled_statement ::= default : statement // - case 104: { action. consumeStatementCompoundStatement(false); break; + case 104: { action. consumeStatementDefault(); break; } // - // Rule 105: compound_statement ::= { block_item_list } + // Rule 105: compound_statement ::= { } // - case 105: { action. consumeStatementCompoundStatement(true); break; + case 105: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 109: block_item ::= declaration + // Rule 106: compound_statement ::= { block_item_list } // - case 109: { action. consumeStatementDeclarationWithDisambiguation(); break; + case 106: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 110: expression_statement ::= ; + // Rule 110: block_item ::= declaration // - case 110: { action. consumeStatementNull(); break; + case 110: { action. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 111: expression_statement ::= expression_in_statement ; + // Rule 111: expression_statement ::= ; // - case 111: { action. consumeStatementExpression(); break; + case 111: { action. consumeStatementNull(); break; } // - // Rule 112: selection_statement ::= if ( expression ) statement + // Rule 112: expression_statement ::= expression_in_statement ; // - case 112: { action. consumeStatementIf(false); break; + case 112: { action. consumeStatementExpression(); break; } // - // Rule 113: selection_statement ::= if ( expression ) statement else statement + // Rule 113: selection_statement ::= if ( expression ) statement // - case 113: { action. consumeStatementIf(true); break; + case 113: { action. consumeStatementIf(false); break; } // - // Rule 114: selection_statement ::= switch ( expression ) statement + // Rule 114: selection_statement ::= if ( expression ) statement else statement // - case 114: { action. consumeStatementSwitch(); break; + case 114: { action. consumeStatementIf(true); break; } // - // Rule 116: expression_opt ::= $Empty + // Rule 115: selection_statement ::= switch ( expression ) statement // - case 116: { action. consumeEmpty(); break; + case 115: { action. consumeStatementSwitch(); break; } // - // Rule 117: iteration_statement ::= do statement while ( expression ) ; + // Rule 117: expression_opt ::= $Empty // - case 117: { action. consumeStatementDoLoop(); break; + case 117: { action. consumeEmpty(); break; } // - // Rule 118: iteration_statement ::= while ( expression ) statement + // Rule 118: iteration_statement ::= do statement while ( expression ) ; // - case 118: { action. consumeStatementWhileLoop(); break; + case 118: { action. consumeStatementDoLoop(); break; } // - // Rule 119: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement + // Rule 119: iteration_statement ::= while ( expression ) statement // - case 119: { action. consumeStatementForLoop(); break; + case 119: { action. consumeStatementWhileLoop(); break; } // - // Rule 120: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement + // Rule 120: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement // case 120: { action. consumeStatementForLoop(); break; } // - // Rule 121: jump_statement ::= goto identifier_token ; + // Rule 121: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement // - case 121: { action. consumeStatementGoto(); break; + case 121: { action. consumeStatementForLoop(); break; } // - // Rule 122: jump_statement ::= continue ; + // Rule 122: jump_statement ::= goto identifier_token ; // - case 122: { action. consumeStatementContinue(); break; + case 122: { action. consumeStatementGoto(); break; } // - // Rule 123: jump_statement ::= break ; + // Rule 123: jump_statement ::= continue ; // - case 123: { action. consumeStatementBreak(); break; + case 123: { action. consumeStatementContinue(); break; } // - // Rule 124: jump_statement ::= return ; + // Rule 124: jump_statement ::= break ; // - case 124: { action. consumeStatementReturn(false); break; + case 124: { action. consumeStatementBreak(); break; } // - // Rule 125: jump_statement ::= return expression ; + // Rule 125: jump_statement ::= return ; // - case 125: { action. consumeStatementReturn(true); break; + case 125: { action. consumeStatementReturn(false); break; } // - // Rule 126: declaration ::= declaration_specifiers ; + // Rule 126: jump_statement ::= return expression ; // - case 126: { action. consumeDeclarationSimple(false); break; + case 126: { action. consumeStatementReturn(true); break; } // - // Rule 127: declaration ::= declaration_specifiers init_declarator_list ; + // Rule 127: declaration ::= declaration_specifiers ; // - case 127: { action. consumeDeclarationSimple(true); break; + case 127: { action. consumeDeclarationSimple(false); break; } // - // Rule 128: declaration_specifiers ::= simple_declaration_specifiers + // Rule 128: declaration ::= declaration_specifiers init_declarator_list ; // - case 128: { action. consumeDeclarationSpecifiersSimple(); break; + case 128: { action. consumeDeclarationSimple(true); break; } // - // Rule 129: declaration_specifiers ::= struct_or_union_declaration_specifiers + // Rule 129: declaration_specifiers ::= simple_declaration_specifiers // - case 129: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; + case 129: { action. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 130: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 130: declaration_specifiers ::= struct_or_union_declaration_specifiers // case 130: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; } // - // Rule 131: declaration_specifiers ::= enum_declaration_specifiers + // Rule 131: declaration_specifiers ::= elaborated_declaration_specifiers // case 131: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; } // - // Rule 132: declaration_specifiers ::= typdef_name_declaration_specifiers + // Rule 132: declaration_specifiers ::= enum_declaration_specifiers // - case 132: { action. consumeDeclarationSpecifiersTypedefName(); break; + case 132: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; } // - // Rule 157: init_declarator ::= complete_declarator = initializer + // Rule 133: declaration_specifiers ::= typdef_name_declaration_specifiers // - case 157: { action. consumeDeclaratorWithInitializer(true); break; + case 133: { action. consumeDeclarationSpecifiersTypedefName(); break; } // - // Rule 159: storage_class_specifier ::= storage_class_specifier_token + // Rule 158: init_declarator ::= complete_declarator = initializer // - case 159: { action. consumeToken(); break; + case 158: { action. consumeDeclaratorWithInitializer(true); break; } // - // Rule 165: simple_type_specifier ::= simple_type_specifier_token + // Rule 160: storage_class_specifier ::= storage_class_specifier_token // - case 165: { action. consumeToken(); break; + case 160: { action. consumeToken(); break; } // - // Rule 178: type_name_specifier ::= identifier_token + // Rule 166: simple_type_specifier ::= simple_type_specifier_token // - case 178: { action. consumeToken(); break; + case 166: { action. consumeToken(); break; } // - // Rule 179: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { struct_declaration_list_opt } + // Rule 179: type_name_specifier ::= identifier_token // - case 179: { action. consumeTypeSpecifierComposite(false); break; + case 179: { action. consumeToken(); break; } // - // Rule 180: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { struct_declaration_list_opt } + // Rule 180: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { struct_declaration_list_opt } // - case 180: { action. consumeTypeSpecifierComposite(true); break; + case 180: { action. consumeTypeSpecifierComposite(false); break; } // - // Rule 185: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token + // Rule 181: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { struct_declaration_list_opt } // - case 185: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break; + case 181: { action. consumeTypeSpecifierComposite(true); break; } // - // Rule 186: elaborated_specifier ::= union elaborated_specifier_hook identifier_token + // Rule 186: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token // - case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break; + case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break; } // - // Rule 187: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token + // Rule 187: elaborated_specifier ::= union elaborated_specifier_hook identifier_token // - case 187: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break; + case 187: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break; } // - // Rule 193: struct_declaration ::= specifier_qualifier_list struct_declarator_list ; + // Rule 188: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token // - case 193: { action. consumeStructDeclaration(true); break; + case 188: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break; } // - // Rule 194: struct_declaration ::= specifier_qualifier_list ; + // Rule 194: struct_declaration ::= specifier_qualifier_list struct_declarator_list ; // - case 194: { action. consumeStructDeclaration(false); break; + case 194: { action. consumeStructDeclaration(true); break; } // - // Rule 195: struct_declaration ::= ERROR_TOKEN + // Rule 195: struct_declaration ::= specifier_qualifier_list ; // - case 195: { action. consumeDeclarationProblem(); break; + case 195: { action. consumeStructDeclaration(false); break; } // - // Rule 201: struct_declarator ::= : constant_expression + // Rule 196: struct_declaration ::= ERROR_TOKEN // - case 201: { action. consumeBitField(false); break; + case 196: { action. consumeDeclarationProblem(); break; } // - // Rule 202: struct_declarator ::= declarator : constant_expression + // Rule 202: struct_declarator ::= : constant_expression // - case 202: { action. consumeBitField(true); break; + case 202: { action. consumeBitField(false); break; } // - // Rule 203: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } + // Rule 203: struct_declarator ::= declarator : constant_expression // - case 203: { action. consumeTypeSpecifierEnumeration(false); break; + case 203: { action. consumeBitField(true); break; } // - // Rule 204: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } + // Rule 204: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } // - case 204: { action. consumeTypeSpecifierEnumeration(true); break; + case 204: { action. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 210: enumerator ::= identifier_token + // Rule 205: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } // - case 210: { action. consumeEnumerator(false); break; + case 205: { action. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 211: enumerator ::= identifier_token = constant_expression + // Rule 211: enumerator ::= identifier_token // - case 211: { action. consumeEnumerator(true); break; + case 211: { action. consumeEnumerator(false); break; } // - // Rule 212: type_qualifier ::= type_qualifier_token + // Rule 212: enumerator ::= identifier_token = constant_expression // - case 212: { action. consumeToken(); break; + case 212: { action. consumeEnumerator(true); break; } // - // Rule 216: function_specifier ::= inline + // Rule 213: type_qualifier ::= type_qualifier_token // - case 216: { action. consumeToken(); break; + case 213: { action. consumeToken(); break; } // - // Rule 218: declarator ::= pointer_seq direct_declarator + // Rule 217: function_specifier ::= inline // - case 218: { action. consumeDeclaratorWithPointer(true); break; + case 217: { action. consumeToken(); break; } // - // Rule 223: basic_direct_declarator ::= declarator_id_name + // Rule 219: declarator ::= pointer_seq direct_declarator // - case 223: { action. consumeDirectDeclaratorIdentifier(); break; + case 219: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 224: basic_direct_declarator ::= ( declarator ) + // Rule 224: basic_direct_declarator ::= declarator_id_name // - case 224: { action. consumeDirectDeclaratorBracketed(); break; + case 224: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 225: declarator_id_name ::= identifier + // Rule 225: basic_direct_declarator ::= ( declarator ) // - case 225: { action. consumeIdentifierName(); break; + case 225: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 226: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 226: declarator_id_name ::= identifier // - case 226: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 226: { action. consumeIdentifierName(); break; } // - // Rule 227: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 227: array_direct_declarator ::= basic_direct_declarator array_modifier // case 227: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 229: function_direct_declarator ::= basic_direct_declarator ( parameter_type_list ) + // Rule 228: array_direct_declarator ::= array_direct_declarator array_modifier // - case 229: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; + case 228: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 230: function_direct_declarator ::= basic_direct_declarator ( ) + // Rule 230: function_direct_declarator ::= basic_direct_declarator ( parameter_type_list ) // - case 230: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; + case 230: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; } // - // Rule 232: function_declarator ::= pointer_seq function_direct_declarator + // Rule 231: function_direct_declarator ::= basic_direct_declarator ( ) // - case 232: { action. consumeDeclaratorWithPointer(true); break; + case 231: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; } // - // Rule 233: knr_direct_declarator ::= basic_direct_declarator ( identifier_list ) + // Rule 233: function_declarator ::= pointer_seq function_direct_declarator // - case 233: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break; + case 233: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 235: knr_function_declarator ::= pointer_seq knr_direct_declarator + // Rule 234: knr_direct_declarator ::= basic_direct_declarator ( identifier_list ) // - case 235: { action. consumeDeclaratorWithPointer(true); break; + case 234: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break; } // - // Rule 236: identifier_list ::= identifier + // Rule 236: knr_function_declarator ::= pointer_seq knr_direct_declarator // - case 236: { action. consumeIdentifierKnR(); break; + case 236: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 237: identifier_list ::= identifier_list , identifier + // Rule 237: identifier_list ::= identifier // case 237: { action. consumeIdentifierKnR(); break; } // - // Rule 238: array_modifier ::= [ ] + // Rule 238: identifier_list ::= identifier_list , identifier // - case 238: { action. consumeDirectDeclaratorArrayModifier(false); break; + case 238: { action. consumeIdentifierKnR(); break; } // - // Rule 239: array_modifier ::= [ array_modifier_type_qualifiers ] + // Rule 239: array_modifier ::= [ ] // - case 239: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break; + case 239: { action. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 240: array_modifier ::= [ assignment_expression ] + // Rule 240: array_modifier ::= [ array_modifier_type_qualifiers ] // - case 240: { action. consumeDirectDeclaratorArrayModifier(true); break; + case 240: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break; } // - // Rule 241: array_modifier ::= [ array_modifier_type_qualifiers assignment_expression ] + // Rule 241: array_modifier ::= [ assignment_expression ] // - case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break; + case 241: { action. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 242: array_modifier ::= [ static assignment_expression ] + // Rule 242: array_modifier ::= [ array_modifier_type_qualifiers assignment_expression ] // - case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break; + case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break; } // - // Rule 243: array_modifier ::= [ static array_modifier_type_qualifiers assignment_expression ] + // Rule 243: array_modifier ::= [ static assignment_expression ] // - case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; + case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break; } // - // Rule 244: array_modifier ::= [ array_modifier_type_qualifiers static assignment_expression ] + // Rule 244: array_modifier ::= [ static array_modifier_type_qualifiers assignment_expression ] // case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; } // - // Rule 245: array_modifier ::= [ * ] + // Rule 245: array_modifier ::= [ array_modifier_type_qualifiers static assignment_expression ] // - case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break; + case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; } // - // Rule 246: array_modifier ::= [ array_modifier_type_qualifiers * ] + // Rule 246: array_modifier ::= [ * ] // - case 246: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break; + case 246: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break; } // - // Rule 248: pointer_seq ::= pointer_hook * + // Rule 247: array_modifier ::= [ array_modifier_type_qualifiers * ] // - case 248: { action. consumePointer(); break; + case 247: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break; } // - // Rule 249: pointer_seq ::= pointer_seq pointer_hook * + // Rule 249: pointer_seq ::= pointer_hook * pointer_hook // case 249: { action. consumePointer(); break; } // - // Rule 250: pointer_seq ::= pointer_hook * type_qualifier_list + // Rule 250: pointer_seq ::= pointer_seq pointer_hook * pointer_hook // - case 250: { action. consumePointerTypeQualifierList(); break; + case 250: { action. consumePointer(); break; } // - // Rule 251: pointer_seq ::= pointer_seq pointer_hook * type_qualifier_list + // Rule 251: pointer_seq ::= pointer_hook * pointer_hook type_qualifier_list // case 251: { action. consumePointerTypeQualifierList(); break; } // - // Rule 255: parameter_type_list ::= parameter_list + // Rule 252: pointer_seq ::= pointer_seq pointer_hook * pointer_hook type_qualifier_list // - case 255: { action. consumeEmpty(); break; + case 252: { action. consumePointerTypeQualifierList(); break; } // - // Rule 256: parameter_type_list ::= parameter_list , ... + // Rule 256: parameter_type_list ::= parameter_list // - case 256: { action. consumePlaceHolder(); break; + case 256: { action. consumeEmpty(); break; } // - // Rule 257: parameter_type_list ::= ... + // Rule 257: parameter_type_list ::= parameter_list , ... // case 257: { action. consumePlaceHolder(); break; } // - // Rule 260: parameter_declaration ::= declaration_specifiers complete_parameter_declarator + // Rule 258: parameter_type_list ::= ... // - case 260: { action. consumeParameterDeclaration(); break; + case 258: { action. consumePlaceHolder(); break; } // - // Rule 261: parameter_declaration ::= declaration_specifiers + // Rule 261: parameter_declaration ::= declaration_specifiers complete_parameter_declarator // - case 261: { action. consumeParameterDeclarationWithoutDeclarator(); break; + case 261: { action. consumeParameterDeclaration(); break; } // - // Rule 264: type_id ::= specifier_qualifier_list + // Rule 262: parameter_declaration ::= declaration_specifiers // - case 264: { action. consumeTypeId(false); break; + case 262: { action. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 265: type_id ::= specifier_qualifier_list abstract_declarator + // Rule 265: type_id ::= specifier_qualifier_list // - case 265: { action. consumeTypeId(true); break; + case 265: { action. consumeTypeId(false); break; } // - // Rule 267: abstract_declarator ::= pointer_seq + // Rule 266: type_id ::= specifier_qualifier_list abstract_declarator // - case 267: { action. consumeDeclaratorWithPointer(false); break; + case 266: { action. consumeTypeId(true); break; } // - // Rule 268: abstract_declarator ::= pointer_seq direct_abstract_declarator + // Rule 268: abstract_declarator ::= pointer_seq // case 268: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 272: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 269: abstract_declarator ::= pointer_seq direct_abstract_declarator // - case 272: { action. consumeDirectDeclaratorBracketed(); break; + case 269: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 273: array_direct_abstract_declarator ::= array_modifier + // Rule 273: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 273: { action. consumeDirectDeclaratorArrayDeclarator(false); break; + case 273: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 274: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 274: array_direct_abstract_declarator ::= array_modifier // - case 274: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 274: { action. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 275: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 275: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // case 275: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 276: function_direct_abstract_declarator ::= ( ) + // Rule 276: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 276: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break; + case 276: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 277: function_direct_abstract_declarator ::= ( ) + // + case 277: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break; } // - // Rule 277: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( ) + // Rule 278: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( ) // - case 277: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; + case 278: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; } // - // Rule 278: function_direct_abstract_declarator ::= ( parameter_type_list ) + // Rule 279: function_direct_abstract_declarator ::= ( parameter_type_list ) // - case 278: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break; + case 279: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break; } // - // Rule 279: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_type_list ) + // Rule 280: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_type_list ) // - case 279: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; + case 280: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; } // - // Rule 280: initializer ::= assignment_expression + // Rule 281: initializer ::= assignment_expression // - case 280: { action. consumeInitializer(); break; + case 281: { action. consumeInitializer(); break; } // - // Rule 281: initializer ::= start_initializer_list { initializer_list comma_opt } end_initializer_list - // - case 281: { action. consumeInitializerList(); break; - } - - // - // Rule 282: initializer ::= { } + // Rule 282: initializer ::= start_initializer_list { initializer_list comma_opt } end_initializer_list // case 282: { action. consumeInitializerList(); break; } // - // Rule 283: start_initializer_list ::= $Empty + // Rule 283: initializer ::= { } // - case 283: { action. initializerListStart(); break; + case 283: { action. consumeInitializerList(); break; } // - // Rule 284: end_initializer_list ::= $Empty + // Rule 284: start_initializer_list ::= $Empty // - case 284: { action. initializerListEnd(); break; + case 284: { action. initializerListStart(); break; } // - // Rule 289: designated_initializer ::= designation = initializer + // Rule 285: end_initializer_list ::= $Empty // - case 289: { action. consumeInitializerDesignated(); break; + case 285: { action. initializerListEnd(); break; } // - // Rule 293: designator_base ::= [ constant_expression ] + // Rule 290: designated_initializer ::= designation = initializer // - case 293: { action. consumeDesignatorArray(); break; + case 290: { action. consumeInitializerDesignated(); break; } // - // Rule 294: designator_base ::= . identifier_token + // Rule 294: designator_base ::= [ constant_expression ] // - case 294: { action. consumeDesignatorField(); break; + case 294: { action. consumeDesignatorArray(); break; } // - // Rule 295: designator ::= [ constant_expression ] + // Rule 295: designator_base ::= . identifier_token // - case 295: { action. consumeDesignatorArray(); break; + case 295: { action. consumeDesignatorField(); break; } // - // Rule 296: designator ::= . identifier_token + // Rule 296: designator ::= [ constant_expression ] // - case 296: { action. consumeDesignatorField(); break; + case 296: { action. consumeDesignatorArray(); break; } // - // Rule 297: translation_unit ::= external_declaration_list + // Rule 297: designator ::= . identifier_token // - case 297: { action. consumeTranslationUnit(); break; + case 297: { action. consumeDesignatorField(); break; + } + + // + // Rule 298: translation_unit ::= external_declaration_list + // + case 298: { action. consumeTranslationUnit(); break; } // - // Rule 298: translation_unit ::= $Empty + // Rule 299: translation_unit ::= $Empty // - case 298: { action. consumeTranslationUnit(); break; + case 299: { action. consumeTranslationUnit(); break; } // - // Rule 303: external_declaration ::= ; + // Rule 304: external_declaration ::= ; // - case 303: { action. consumeDeclarationEmpty(); break; + case 304: { action. consumeDeclarationEmpty(); break; } // - // Rule 304: external_declaration ::= ERROR_TOKEN + // Rule 305: external_declaration ::= ERROR_TOKEN // - case 304: { action. consumeDeclarationProblem(); break; + case 305: { action. consumeDeclarationProblem(); break; } // - // Rule 307: function_definition ::= declaration_specifiers function_declarator function_body + // Rule 308: function_definition ::= declaration_specifiers function_declarator function_body // - case 307: { action. consumeFunctionDefinition(true); break; + case 308: { action. consumeFunctionDefinition(true); break; } // - // Rule 308: function_definition ::= function_declarator function_body + // Rule 309: function_definition ::= function_declarator function_body // - case 308: { action. consumeFunctionDefinition(false); break; + case 309: { action. consumeFunctionDefinition(false); break; } // - // Rule 309: function_definition ::= declaration_specifiers knr_function_declarator declaration_list compound_statement + // Rule 310: function_definition ::= declaration_specifiers knr_function_declarator declaration_list compound_statement // - case 309: { action. consumeFunctionDefinitionKnR(); break; + case 310: { action. consumeFunctionDefinitionKnR(); break; } // - // Rule 310: function_body ::= { } + // Rule 311: function_body ::= { } // - case 310: { action. consumeStatementCompoundStatement(false); break; + case 311: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 311: function_body ::= { block_item_list } + // Rule 312: function_body ::= { block_item_list } // - case 311: { action. consumeStatementCompoundStatement(true); break; + case 312: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 312: literal ::= MYTHREAD + // Rule 313: literal ::= MYTHREAD // - case 312: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break; + case 313: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break; } // - // Rule 313: literal ::= THREADS + // Rule 314: literal ::= THREADS // - case 313: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break; + case 314: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break; } // - // Rule 314: literal ::= UPC_MAX_BLOCKSIZE + // Rule 315: literal ::= UPC_MAX_BLOCKSIZE // - case 314: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break; + case 315: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break; } // - // Rule 315: unary_expression ::= upc_localsizeof unary_expression + // Rule 316: unary_expression ::= upc_localsizeof unary_expression // - case 315: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); break; + case 316: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); break; } // - // Rule 316: unary_expression ::= upc_localsizeof ( type_id ) + // Rule 317: unary_expression ::= upc_localsizeof ( type_id ) // - case 316: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof); break; + case 317: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof); break; } // - // Rule 317: unary_expression ::= upc_blocksizeof unary_expression + // Rule 318: unary_expression ::= upc_blocksizeof unary_expression // - case 317: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; + case 318: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; } // - // Rule 318: unary_expression ::= upc_blocksizeof ( type_id ) + // Rule 319: unary_expression ::= upc_blocksizeof ( type_id ) // - case 318: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; + case 319: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; } // - // Rule 319: unary_expression ::= upc_elemsizeof unary_expression + // Rule 320: unary_expression ::= upc_elemsizeof unary_expression // - case 319: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; + case 320: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; } // - // Rule 320: unary_expression ::= upc_elemsizeof ( type_id ) + // Rule 321: unary_expression ::= upc_elemsizeof ( type_id ) // - case 320: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; + case 321: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; } // - // Rule 324: shared_type_qualifier ::= shared - // - case 324: { action. consumeToken(); break; - } - - // - // Rule 325: reference_type_qualifier ::= relaxed + // Rule 325: shared_type_qualifier ::= shared // case 325: { action. consumeToken(); break; } // - // Rule 326: reference_type_qualifier ::= strict + // Rule 326: reference_type_qualifier ::= relaxed // case 326: { action. consumeToken(); break; } // - // Rule 327: layout_qualifier ::= [ constant_expression ] + // Rule 327: reference_type_qualifier ::= strict // - case 327: { action. consumeLayoutQualifier(true, false); break; + case 327: { action. consumeToken(); break; } // - // Rule 328: layout_qualifier ::= [ * ] + // Rule 328: layout_qualifier ::= [ constant_expression ] // - case 328: { action. consumeLayoutQualifier(false, true); break; + case 328: { action. consumeLayoutQualifier(true, false); break; } // - // Rule 329: layout_qualifier ::= [ ] + // Rule 329: layout_qualifier ::= [ * ] // - case 329: { action. consumeLayoutQualifier(false, false); break; + case 329: { action. consumeLayoutQualifier(false, true); break; } // - // Rule 331: synchronization_statement ::= upc_notify expression ; + // Rule 330: layout_qualifier ::= [ ] // - case 331: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break; + case 330: { action. consumeLayoutQualifier(false, false); break; } // - // Rule 332: synchronization_statement ::= upc_notify ; + // Rule 332: synchronization_statement ::= upc_notify expression ; // - case 332: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break; + case 332: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break; } // - // Rule 333: synchronization_statement ::= upc_wait expression ; + // Rule 333: synchronization_statement ::= upc_notify ; // - case 333: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break; + case 333: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break; } // - // Rule 334: synchronization_statement ::= upc_wait ; + // Rule 334: synchronization_statement ::= upc_wait expression ; // - case 334: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break; + case 334: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break; } // - // Rule 335: synchronization_statement ::= upc_barrier expression ; + // Rule 335: synchronization_statement ::= upc_wait ; // - case 335: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break; + case 335: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break; } // - // Rule 336: synchronization_statement ::= upc_barrier ; + // Rule 336: synchronization_statement ::= upc_barrier expression ; // - case 336: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break; + case 336: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break; } // - // Rule 337: synchronization_statement ::= upc_fence ; + // Rule 337: synchronization_statement ::= upc_barrier ; // - case 337: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break; + case 337: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break; } // - // Rule 338: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement + // Rule 338: synchronization_statement ::= upc_fence ; // - case 338: { action. consumeStatementUPCForallLoop(true, true, true, true); break; + case 338: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break; } // - // Rule 339: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement + // Rule 339: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement // - case 339: { action. consumeStatementUPCForallLoop(true, true, true, false); break; + case 339: { action. consumeStatementUPCForallLoop(true, true, true, true); break; } // - // Rule 340: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement + // Rule 340: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement // - case 340: { action. consumeStatementUPCForallLoop(true, true, false, true); break; + case 340: { action. consumeStatementUPCForallLoop(true, true, true, false); break; } // - // Rule 341: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement + // Rule 341: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement // - case 341: { action. consumeStatementUPCForallLoop(true, true, false, false); break; + case 341: { action. consumeStatementUPCForallLoop(true, true, false, true); break; } // - // Rule 342: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement + // Rule 342: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement // - case 342: { action. consumeStatementUPCForallLoop(true, false, true, true); break; + case 342: { action. consumeStatementUPCForallLoop(true, true, false, false); break; } // - // Rule 343: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement + // Rule 343: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement // - case 343: { action. consumeStatementUPCForallLoop(true, false, true, false); break; + case 343: { action. consumeStatementUPCForallLoop(true, false, true, true); break; } // - // Rule 344: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement + // Rule 344: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement // - case 344: { action. consumeStatementUPCForallLoop(true, false, false, true); break; + case 344: { action. consumeStatementUPCForallLoop(true, false, true, false); break; } // - // Rule 345: iteration_statement ::= upc_forall ( expression ; ; ; ) statement + // Rule 345: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement // - case 345: { action. consumeStatementUPCForallLoop(true, false, false, false); break; + case 345: { action. consumeStatementUPCForallLoop(true, false, false, true); break; } // - // Rule 346: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement + // Rule 346: iteration_statement ::= upc_forall ( expression ; ; ; ) statement // - case 346: { action. consumeStatementUPCForallLoop(false, true, true, true); break; + case 346: { action. consumeStatementUPCForallLoop(true, false, false, false); break; } // - // Rule 347: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement + // Rule 347: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement // - case 347: { action. consumeStatementUPCForallLoop(false, true, true, false); break; + case 347: { action. consumeStatementUPCForallLoop(false, true, true, true); break; } // - // Rule 348: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement + // Rule 348: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement // - case 348: { action. consumeStatementUPCForallLoop(false, true, false, true); break; + case 348: { action. consumeStatementUPCForallLoop(false, true, true, false); break; } // - // Rule 349: iteration_statement ::= upc_forall ( ; expression ; ; ) statement + // Rule 349: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement // - case 349: { action. consumeStatementUPCForallLoop(false, true, false, false); break; + case 349: { action. consumeStatementUPCForallLoop(false, true, false, true); break; } // - // Rule 350: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement + // Rule 350: iteration_statement ::= upc_forall ( ; expression ; ; ) statement // - case 350: { action. consumeStatementUPCForallLoop(false, false, true, true); break; + case 350: { action. consumeStatementUPCForallLoop(false, true, false, false); break; } // - // Rule 351: iteration_statement ::= upc_forall ( ; ; expression ; ) statement + // Rule 351: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement // - case 351: { action. consumeStatementUPCForallLoop(false, false, true, false); break; + case 351: { action. consumeStatementUPCForallLoop(false, false, true, true); break; } // - // Rule 352: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement + // Rule 352: iteration_statement ::= upc_forall ( ; ; expression ; ) statement // - case 352: { action. consumeStatementUPCForallLoop(false, false, false, true); break; + case 352: { action. consumeStatementUPCForallLoop(false, false, true, false); break; } // - // Rule 353: iteration_statement ::= upc_forall ( ; ; ; ) statement + // Rule 353: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement // - case 353: { action. consumeStatementUPCForallLoop(false, false, false, false); break; + case 353: { action. consumeStatementUPCForallLoop(false, false, false, true); break; } // - // Rule 354: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement + // Rule 354: iteration_statement ::= upc_forall ( ; ; ; ) statement // - case 354: { action. consumeStatementUPCForallLoop(true, true, true, true); break; + case 354: { action. consumeStatementUPCForallLoop(false, false, false, false); break; } // - // Rule 355: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement + // Rule 355: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement // - case 355: { action. consumeStatementUPCForallLoop(true, true, true, false); break; + case 355: { action. consumeStatementUPCForallLoop(true, true, true, true); break; } // - // Rule 356: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement + // Rule 356: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement // - case 356: { action. consumeStatementUPCForallLoop(true, true, false, true); break; + case 356: { action. consumeStatementUPCForallLoop(true, true, true, false); break; } // - // Rule 357: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement + // Rule 357: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement // - case 357: { action. consumeStatementUPCForallLoop(true, true, false, false); break; + case 357: { action. consumeStatementUPCForallLoop(true, true, false, true); break; } // - // Rule 358: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement + // Rule 358: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement // - case 358: { action. consumeStatementUPCForallLoop(true, false, true, true); break; + case 358: { action. consumeStatementUPCForallLoop(true, true, false, false); break; } // - // Rule 359: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement + // Rule 359: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement // - case 359: { action. consumeStatementUPCForallLoop(true, false, true, false); break; + case 359: { action. consumeStatementUPCForallLoop(true, false, true, true); break; } // - // Rule 360: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement + // Rule 360: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement // - case 360: { action. consumeStatementUPCForallLoop(true, false, false, true); break; + case 360: { action. consumeStatementUPCForallLoop(true, false, true, false); break; } // - // Rule 361: iteration_statement ::= upc_forall ( declaration ; ; ) statement + // Rule 361: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement // - case 361: { action. consumeStatementUPCForallLoop(true, false, false, false); break; + case 361: { action. consumeStatementUPCForallLoop(true, false, false, true); break; } // - // Rule 363: affinity ::= continue + // Rule 362: iteration_statement ::= upc_forall ( declaration ; ; ) statement // - case 363: { action. consumeToken(); break; + case 362: { action. consumeStatementUPCForallLoop(true, false, false, false); break; + } + + // + // Rule 364: affinity ::= continue + // + case 364: { action. consumeToken(); break; } diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParserprs.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParserprs.java index 154894148f8..06cf14bfe8f 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParserprs.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParserprs.java @@ -35,339 +35,341 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface BaseCheck { public final static short baseCheck[] = {0, - 0,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3,1,1, - 4,4,3,3,2,2,8,1,0,1, - 1,2,2,2,2,2,2,2,2,2, - 4,1,4,1,3,3,3,1,3,3, - 1,3,3,1,3,3,3,3,1,3, - 3,1,3,1,3,1,3,1,3,1, - 3,1,5,1,3,3,3,3,3,3, - 3,3,3,3,3,1,1,2,1,0, - 1,3,1,1,1,1,1,1,1,1, - 3,4,3,2,4,1,2,1,1,1, - 2,5,7,5,1,0,7,5,9,8, - 3,2,2,2,3,2,4,2,2,2, - 2,2,1,1,1,1,2,1,2,2, - 2,1,2,2,1,2,2,1,2,2, - 1,2,2,1,3,1,3,1,1,1, + 0,0,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,3,1, + 1,4,4,3,3,2,2,8,1,0, + 1,1,2,2,2,2,2,2,2,2, + 2,4,1,4,1,3,3,3,1,3, + 3,1,3,3,1,3,3,3,3,1, + 3,3,1,3,1,3,1,3,1,3, + 1,3,1,5,1,3,3,3,3,3, + 3,3,3,3,3,3,1,1,2,1, + 0,1,3,1,1,1,1,1,1,1, + 1,3,4,3,2,4,1,2,1,1, + 1,2,5,7,5,1,0,7,5,9, + 8,3,2,2,2,3,2,4,2,2, + 2,2,2,1,1,1,1,2,1,2, + 2,2,1,2,2,1,2,2,1,2, + 2,1,2,2,1,3,1,3,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,6,8, - 0,0,1,1,3,3,3,0,1,0, - 1,2,4,2,1,1,1,3,1,1, - 2,3,7,8,0,1,0,1,3,1, - 3,1,1,1,1,1,1,3,1,1, - 1,1,1,3,1,2,2,1,5,3, - 1,3,5,1,3,1,3,2,4,3, - 5,4,6,6,3,5,1,2,3,4, - 5,0,1,2,1,3,1,1,3,2, - 1,1,1,1,2,1,2,3,1,1, - 1,3,1,2,2,2,3,4,5,1, - 7,3,0,0,1,1,3,3,4,1, - 1,2,3,2,3,2,1,0,1,2, - 1,1,1,1,1,2,4,3,6,2, - 4,1,1,1,2,4,2,4,2,4, - 1,1,2,1,1,1,3,3,2,1, - 3,2,3,2,3,2,2,11,10,10, - 9,10,9,9,8,10,9,9,8,9, - 8,8,7,10,9,9,8,9,8,8, - 7,1,1,-105,-2,0,-36,0,0,0, - 0,0,0,0,-208,0,0,0,0,0, - -117,0,-10,-30,0,-77,0,-19,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-4,0,-55,0,0,-23,0,0, - 0,0,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,1,6, + 8,0,0,1,1,3,3,3,0,1, + 0,1,2,4,2,1,1,1,3,1, + 1,2,3,7,8,0,1,0,1,3, + 1,3,1,1,1,1,1,1,3,1, + 1,1,1,1,3,1,2,2,1,5, + 3,1,3,5,1,3,1,3,2,4, + 3,5,4,6,6,3,5,1,3,4, + 5,6,0,1,2,1,3,1,1,3, + 2,1,1,1,1,2,1,2,3,1, + 1,1,3,1,2,2,2,3,4,5, + 1,7,3,0,0,1,1,3,3,4, + 1,1,2,3,2,3,2,1,0,1, + 2,1,1,1,1,1,2,4,3,6, + 2,4,1,1,1,2,4,2,4,2, + 4,1,1,2,1,1,1,3,3,2, + 1,3,2,3,2,3,2,2,11,10, + 10,9,10,9,9,8,10,9,9,8, + 9,8,8,7,10,9,9,8,9,8, + 8,7,1,1,-105,-2,0,-36,0,0, + 0,0,0,0,0,-9,0,0,0,0, + 0,-20,-117,0,-37,0,0,-141,-147,0, + 0,0,0,0,0,0,0,0,-45,0, + 0,0,0,-21,-5,0,-8,0,-23,0, + 0,0,0,0,-100,0,0,0,0,0, -3,0,0,0,0,0,0,0,0,0, - 0,-9,0,0,0,0,0,-6,0,0, + 0,0,-25,0,0,-19,0,0,0,0, + 0,0,0,0,-6,-75,0,0,0,0, + 0,0,-31,0,0,0,0,0,0,0, + 0,0,0,0,-40,-10,-46,0,0,-115, 0,0,0,0,0,0,0,0,0,0, - 0,-12,0,-254,0,0,0,0,0,0, - 0,0,0,-115,0,0,0,0,0,0, - -13,-8,0,0,0,0,-118,0,-1,0, - 0,0,-32,0,0,0,0,0,-20,0, - 0,0,-21,0,0,0,0,0,0,0, - -235,0,0,0,0,0,0,0,-275,0, - 0,0,-31,0,0,0,0,0,0,-39, - 0,0,0,0,0,0,-38,-34,0,-17, - -25,0,0,0,0,0,0,0,0,0, - 0,0,0,-287,0,0,0,-40,0,0, - 0,0,0,0,-143,0,0,0,0,0, - 0,0,-80,0,0,0,0,0,-35,0, - 0,0,0,0,0,0,0,0,0,-41, - 0,0,0,0,0,0,0,-43,0,0, - 0,0,0,-37,0,0,0,0,0,-71, - 0,0,0,0,0,0,0,0,0,-106, - -45,0,0,-73,0,0,-316,0,0,0, - 0,0,0,0,0,0,0,-85,0,0, - 0,0,0,-216,0,0,0,-152,0,0, - -75,0,0,0,0,0,0,0,0,0, - 0,-145,0,0,-81,0,0,0,0,0, - 0,0,-298,0,0,-107,0,0,0,0, + 0,0,0,0,0,0,-211,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-41,0,0,0,0,0,0,-276,0, + 0,0,0,0,0,0,0,0,0,-30, + 0,0,0,0,0,0,0,-4,0,-17, + 0,0,0,-43,0,0,0,0,0,0, + 0,0,-288,0,0,-81,0,0,0,0, 0,0,0,0,0,0,-59,0,0,0, - 0,0,0,-60,0,0,0,-26,-70,0, - 0,0,0,0,0,-146,0,-104,0,0, - 0,0,0,0,0,0,0,-140,0,0, - 0,0,0,0,0,-78,0,0,-154,0, - 0,0,0,0,0,0,-15,0,0,-339, - 0,0,0,0,0,0,-144,0,-27,-61, - 0,0,0,0,0,0,0,0,-190,0, - -82,0,0,-62,0,0,0,0,0,0, - 0,-90,0,0,0,0,0,-215,0,0, - -142,0,0,0,0,-150,0,0,0,0, - 0,0,0,-340,0,0,0,0,0,0, - 0,0,0,0,-63,0,0,0,0,0, - -64,0,0,0,0,0,0,0,-65,0, - 0,0,0,0,0,0,0,0,0,-124, - -66,0,0,-18,0,0,0,0,0,0, - -24,0,0,-155,0,0,0,0,0,0, - 0,0,0,0,-67,0,0,0,0,-241, - 0,0,0,0,-68,0,0,0,0,0, - 0,0,0,0,-69,-161,0,0,-184,0, - 0,0,0,0,0,0,-33,0,0,0, - 0,0,0,-5,0,-28,0,0,0,-100, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-60, + 0,0,0,0,0,-61,0,0,0,0, + 0,0,0,0,0,-15,0,-26,0,0, + -38,0,0,0,0,0,0,0,0,-27, + 0,0,-34,-142,0,-318,0,0,-77,0, + 0,0,0,0,0,0,-12,0,0,0, + 0,0,-221,0,0,0,-152,0,0,-71, + 0,0,0,0,0,0,0,0,0,-145, + 0,0,-76,0,0,0,0,0,0,0, + -62,0,0,0,0,0,-35,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-28,0,0,0,0,0, + 0,0,0,0,0,0,-254,0,0,0, + 0,0,-116,0,0,0,-268,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-78,0,0,-341,-13,0, + 0,0,0,0,0,-63,0,0,-18,0, + 0,0,0,0,0,-64,-144,0,-139,0, + 0,0,0,0,0,0,0,0,-29,-82, + 0,0,-32,0,0,0,0,0,0,0, + -33,0,0,0,0,0,-296,-92,0,0, + 0,-39,0,-106,0,0,0,0,0,0, + 0,0,0,-342,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-65,0,0,0,0, + 0,0,0,0,0,0,0,0,-24,0, + 0,0,-322,0,0,0,0,0,0,0, + 0,0,-42,0,0,-70,0,0,0,-1, + 0,-320,0,0,0,0,0,0,0,0, + 0,0,0,-146,-161,0,0,0,-300,0, + 0,0,0,0,0,-180,0,0,-66,0, + 0,-218,0,0,-104,0,0,0,-73,0, 0,0,0,0,0,0,0,0,-220,0, - 0,-72,-182,0,0,0,0,0,0,-91, - 0,0,0,0,0,0,0,-86,0,0, - 0,0,-79,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-102,0,0,-207, - 0,0,0,0,0,0,0,-99,0,0, - 0,0,0,0,-183,0,-166,0,-74,0, + 0,0,0,0,0,0,0,0,0,-85, + 0,0,0,0,0,0,0,0,0,0, + -209,0,-107,0,0,0,0,0,0,0, + 0,0,-234,0,0,-182,-102,0,0,-140, + 0,0,0,0,0,0,0,-90,0,0, + 0,0,0,-143,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,-222, - 0,0,-237,0,0,0,0,0,0,0, - -93,0,0,0,0,0,-250,0,-221,0, + -67,0,0,0,0,0,0,0,0,0, + -91,0,0,0,0,0,0,0,0,0, + 0,0,-68,-150,0,0,0,0,0,0, + 0,0,0,-223,0,0,-154,0,0,0, + 0,0,0,0,-99,0,0,0,0,0, + -69,-235,0,0,-166,0,-72,0,0,0, + 0,0,0,0,0,0,0,-224,0,0, + 0,-74,0,0,0,0,0,0,-160,0, + 0,0,0,0,-162,0,0,0,0,-155, + 0,-207,0,0,0,0,0,0,0,0, + 0,-225,-163,0,0,0,0,0,0,0, + 0,0,0,0,0,-164,0,0,0,-79, + 0,-165,-167,0,0,-93,0,0,0,0, + 0,0,0,0,0,-226,0,0,-184,-94, + 0,0,0,0,0,0,-185,0,0,0, + 0,0,-240,0,-190,0,0,0,-344,-186, + 0,0,0,0,0,0,0,0,0,-227, + 0,0,0,-183,0,0,0,0,0,0, + 0,0,0,-187,0,0,-95,-212,0,0, + 0,-80,0,0,0,0,0,0,0,0, + 0,0,0,-228,-266,0,0,-97,0,0, + 0,0,0,0,-98,0,0,-188,0,0, + -242,-290,0,0,0,0,-101,-189,0,0, + 0,0,0,0,0,0,0,-229,0,0, + -208,0,0,0,0,0,0,0,-236,0, + 0,-219,0,0,-103,0,-215,0,-86,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-223,0,0,0,0,0,0,0, - 0,0,0,-42,0,0,-160,0,0,0, - -94,-289,0,0,0,0,0,-185,0,0, - 0,0,0,0,0,-224,0,0,0,-95, - 0,0,0,0,0,0,-180,0,0,-162, - 0,0,0,-141,0,0,0,-116,-29,0, - 0,0,0,0,0,0,0,0,-225,0, - 0,-97,0,0,0,0,0,0,0,-98, - 0,0,0,0,0,-267,-211,-163,0,0, - 0,0,0,-186,0,0,0,0,0,0, - 0,-226,0,0,0,0,0,0,0,0, - 0,0,-164,0,0,0,0,0,-212,-219, - 0,0,0,0,-92,-101,0,0,0,0, - 0,0,0,0,-227,0,0,-187,-103,0, + 0,-230,0,0,-237,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-250,0, + 0,0,0,0,-138,-217,0,0,0,0, + 0,0,0,0,0,-231,0,0,-243,-148, 0,0,0,0,0,0,0,0,0,0, - 0,0,-209,0,-138,0,0,0,0,-188, - 0,0,0,0,0,0,0,-228,0,0, - 0,-148,0,0,0,0,0,0,0,0, - 0,-165,0,0,0,-266,-318,0,0,0, - 0,0,-189,0,0,0,0,0,0,0, - -229,0,0,0,-153,0,0,0,0,0, - 0,-234,0,0,-217,0,0,-240,-242,-277, - 0,0,0,-156,-236,0,0,0,0,0, - 0,0,0,-230,0,0,-243,-263,0,0, - 0,0,0,0,-245,0,0,0,0,0, - -271,-295,-157,-279,0,0,0,-158,-264,0, - 0,0,0,0,0,0,-231,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -246,0,0,-281,-291,-300,0,0,0,0, + 0,0,-278,-263,-153,0,-87,0,-156,0, 0,0,0,0,0,0,0,0,0,-232, - 0,0,-252,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-296,-297,-303,-306, - -159,0,0,-290,-288,0,0,0,0,0, - 0,0,-249,0,0,0,-311,0,0,0, - 0,0,0,-294,0,0,-308,0,0,0, - -325,-330,-320,0,0,0,-169,-315,0,0, - 0,0,0,0,0,-265,0,0,0,-174, - 0,0,0,0,0,0,-309,0,0,-332, - 0,0,0,-341,-177,-167,0,0,0,0, - 0,0,0,0,0,0,0,0,-269,0, - 0,-312,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-342,-336,0,0,0, - -178,-191,0,0,0,0,0,0,0,0, - 0,-270,0,0,-322,0,0,0,0,0, - 0,0,-327,0,0,0,0,0,-192,-360, - -193,0,0,0,-194,-338,-334,0,0,0, - 0,0,0,0,-292,0,0,0,-195,0, - 0,0,0,0,0,0,0,0,-346,0, - 0,-196,-197,-198,-87,0,-199,0,0,0, - 0,0,0,0,0,0,0,-314,0,0, - 0,-200,0,0,0,0,0,0,-348,0, - 0,-201,0,0,-202,-203,-204,-88,0,0, + 0,0,-245,-157,0,0,0,0,0,0, + -158,0,0,0,0,0,-280,-159,-169,0, + -88,0,-174,0,0,0,0,0,0,0, + 0,0,0,-249,0,0,-246,-177,0,0, + 0,0,0,0,-178,0,0,0,0,0, + -282,-272,-191,0,-89,0,0,0,0,0, + 0,0,0,0,0,0,0,-260,0,0, + -252,-192,0,0,0,0,0,0,-264,0, + 0,0,0,0,-292,-193,-194,0,-238,0, 0,0,0,0,0,0,0,0,0,0, - -319,0,0,-352,-205,0,0,0,0,0, - 0,-354,0,0,0,0,0,-206,-213,-147, - -89,0,0,0,0,0,0,0,0,0, - 0,0,0,-343,0,0,-357,-214,0,0, - 0,0,0,0,-244,0,0,0,0,0, - -363,-255,-256,-257,0,0,0,0,0,0, - 0,0,0,0,0,0,-260,-258,0,-362, - -259,0,0,0,0,0,0,-7,0,0, - 0,0,0,-44,0,0,0,0,-268,0, - -293,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-310, - -317,-367,0,0,0,0,0,-84,0,0, + 0,-265,0,0,-289,-195,0,0,0,0, + 0,0,-291,0,0,0,0,0,-299,-297, + -313,-239,0,0,0,0,-295,0,0,0, + 0,0,0,0,-270,0,0,-317,-196,0, + 0,0,0,0,0,-197,0,0,-298,0, + 0,-302,-305,-308,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-271,-310, + 0,0,0,0,0,0,0,0,0,-311, + 0,0,0,0,0,-327,-198,0,0,-216, + 0,0,-314,0,0,0,0,0,0,0, + 0,0,-293,0,0,-324,-199,0,0,0, + 0,0,0,-340,0,0,0,0,0,-332, + -334,-200,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-316,-338,0,-329,0, + 0,0,0,0,0,0,-336,0,0,0, + 0,0,-362,-201,-267,0,-202,0,0,-203, + 0,0,0,0,0,0,0,0,-321,0, + 0,-348,-204,0,0,0,0,0,0,-205, + 0,0,0,0,0,-343,-365,-206,-213,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-345,-214,0,-350,-244,0,0,0,0, + 0,0,-354,0,0,0,0,0,-44,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-371,0,-374,0,0, - 0,-172,0,0,0,0,0,0,0,-11, - -210,0,0,0,0,0,-376,0,0,0, - 0,0,0,0,0,0,0,0,-238,0, - 0,0,0,0,0,-247,0,0,0,0, + 0,0,0,0,-255,-256,-257,-258,-275,-259, + -356,-359,0,-84,0,0,0,0,-47,0, + 0,0,0,0,0,0,0,0,0,-11, + 0,0,0,0,0,0,0,0,0,-269, + -294,-312,-319,0,0,0,0,0,0,0, + 0,0,0,-7,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-364,0,-172,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-369,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-247,0,0,0,0,0,0,0,0, + 0,0,0,-110,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-373,0, + -301,0,0,0,0,0,0,-376,-378,0, + 0,0,-151,0,0,-386,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,0, + 0,0,0,0,0,0,-233,0,0,0, + 0,0,0,0,-118,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, + 0,0,0,0,0,0,0,0,0,0, + 0,-210,0,0,0,-22,0,0,0,0, + 0,0,0,0,0,0,-134,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-277,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-136,0,0,-135,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, + -261,0,0,0,0,-96,0,0,0,0, + -48,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-132,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-173,0, + 0,0,0,0,0,0,0,0,0,-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,-248,0,0,0,0, + 0,0,0,0,-284,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -286,0,0,0,0,0,0,0,0,-287, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-323,0,0,0,0, + 0,0,0,0,-328,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -339,0,0,0,0,0,0,0,0,-346, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-347,0,0,0,0, + 0,0,0,0,-349,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -352,0,0,0,0,0,0,0,0,-353, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-355,0,0,0,0, + 0,0,0,0,-358,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -363,0,0,0,0,0,0,0,0,-366, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-367,0,0,0,0, + 0,0,0,0,-368,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -370,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,-372,0,0,0,0, + 0,0,0,0,-374,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -375,0,0,0,0,0,0,0,0,-377, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-380,0,0,0,0, + 0,0,0,0,-381,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -382,0,0,0,0,0,0,0,0,-383, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-47,0,0,0,0, - 0,0,0,0,0,0,-151,0,0,0, - 0,0,0,0,-137,0,0,0,-76,0, 0,0,0,0,0,-384,0,0,0,0, - 0,0,0,0,-233,0,0,0,0,0, + 0,0,0,0,-385,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -387,0,0,0,0,0,0,-176,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-133,0,0,-262, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-22,0,0,0,0,0,0,0, - 0,-134,0,0,0,-251,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-239,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-135,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-276,0,0,0,0,0,0,0, - 0,0,0,0,-278,0,0,0,0,0, - 0,0,-96,0,0,0,0,-48,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-132,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-173,0,0,0,0, - 0,0,0,0,0,0,-175,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,-248,0,0,0,0,-51,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-283,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-285, - 0,0,0,0,-218,0,0,0,-286,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-321,0,0,0,0,0, - 0,0,0,-326,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-337, - 0,0,0,0,0,0,0,0,-344,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-345,0,0,0,0,0, - 0,0,0,-347,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-350, - 0,0,0,0,0,0,0,0,-351,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-353,0,0,0,0,0, - 0,0,0,-356,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-361, - 0,0,0,0,0,0,0,0,-364,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-365,0,0,0,0,0, - 0,0,0,-366,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-368, - 0,0,0,0,0,0,0,0,-369,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-370,0,0,0,0,0, - 0,0,0,-372,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-373, - 0,0,0,0,0,0,0,0,-375,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-378,0,0,0,0,0, - 0,0,0,-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,-380, - 0,0,0,0,0,0,0,0,-381,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-382,0,0,0,0,0, - 0,0,0,-383,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-385, - 0,0,0,0,0,0,-176,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-133,0,0,-262,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -83,0,0,0,0,0,0,-280,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,0,0,0,0,0,0,0,0, - -126,0,0,0,0,0,0,0,0,0, + 0,0,0,-281,0,0,0,0,0,0, + 0,-83,0,0,0,0,0,0,0,0, + -49,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-315, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,-127,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-128,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,-130,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -131,0,0,0,0,0,0,0,0,0, - 0,-14,0,0,-122,0,0,-16,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, - -181,0,0,0,0,0,0,0,0,0, + 0,0,-128,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,-125,0,0,0,0,0,0, - 0,0,0,0,-149,0,0,0,0,0, - 0,0,0,0,0,0,0,-272,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-108,0,0,-52, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-53,0,0,0,0,0,0,0, - 0,0,0,-54,0,0,0,0,0,0, - 0,0,0,0,-56,0,0,0,0,0, - 0,0,0,0,0,0,-109,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-119,0,0,-253,0,0,0,0, - 0,0,0,-120,0,0,0,0,0,0, - 0,0,0,0,-121,0,0,-273,0,0, - 0,0,0,0,0,-179,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-46, - 0,-299,0,0,0,0,0,-302,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-49,0,0,0,0,0,0,0, - 0,0,0,0,0,-50,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-110,0,0,-57,0,0,0, - 0,0,0,0,0,0,-58,0,0,0, - 0,0,0,0,0,0,0,-111,0,-112, - 0,0,0,0,-113,0,0,0,0,-139, - 0,0,0,0,-261,0,0,0,0,0, - 0,-114,0,0,0,0,0,-323,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-282,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-324,0,0,0,0,0,-328,0, - 0,0,0,0,-329,0,0,0,0,0, - 0,0,0,-331,0,0,0,0,0,-301, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-349,0,0,0,0, - -355,0,0,0,0,0,0,0,0,0, - 0,0,-358,0,0,0,0,-359,0,0, - 0,0,0,0,0,0,0,0,0,-377, - 0,0,0,0,-304,0,0,0,0,0, - 0,-307,0,0,0,0,-305,0,0,0, - 0,0,0,-335,0,0,0,0,0,0, - 0,0,-333,0,0,0,0,0,-136,0, - -168,0,0,0,0,0,0,-170,0,-171, - 0,0,0,0,0,-284,0,0,0,0, + -130,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-131,0,0, + 0,0,0,0,0,0,0,0,-14,0, + 0,-122,0,0,-16,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,0,0,0,0,0,0, - 0 + 0,0,0,0,0,0,0,0,0,0, + -55,0,0,-181,0,0,0,0,0,0, + 0,-124,0,0,0,0,0,0,0,0, + 0,0,-125,0,0,0,0,0,0,0, + 0,0,0,0,0,-149,0,0,0,0, + 0,0,0,0,0,0,0,-168,0,0, + -273,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -51,0,0,0,0,0,0,0,0,0, + 0,-108,0,0,0,-52,0,0,0,0, + 0,0,0,0,0,0,-53,0,0,0, + 0,0,0,0,0,0,0,-54,0,0, + 0,0,0,0,0,0,0,0,-56,0, + 0,0,0,0,0,0,0,0,0,-109, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-119,0,0, + 0,0,0,0,0,0,0,0,-120,0, + 0,0,0,0,0,0,0,0,0,-121, + 0,0,-253,0,0,0,0,0,0,0, + -179,0,0,0,0,0,0,0,0,0, + 0,0,-274,0,-50,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-57,0, + 0,0,0,0,0,0,0,0,0,0, + -111,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-251,-112,0,0,-58, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-113,0,-114,0,0, + 0,0,0,0,-241,0,0,0,0,0, + 0,0,0,-170,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,-304,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -325,0,-326,0,0,0,0,0,-330,0, + 0,0,0,0,0,0,0,-331,0,0, + 0,0,0,-333,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, + 0,0,0,0,-357,0,0,0,0,-360, + 0,0,0,0,0,0,0,0,0,0, + 0,-361,0,0,0,0,-379,0,0,0, + 0,0,0,0,0,0,0,0,-283,0, + 0,0,0,-306,0,0,0,0,0,0, + -309,0,0,0,0,-307,0,0,0,0, + 0,0,-337,0,0,0,0,0,0,0, + 0,-335,0,0,0,0,0,-171,0,-285, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,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; @@ -377,341 +379,344 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface BaseAction { public final static char baseAction[] = { - 110,1,39,39,11,11,45,45,3,3, - 2,2,5,5,5,5,6,6,6,7, - 8,8,8,8,8,8,8,8,73,73, - 94,9,9,9,9,9,9,9,9,9, - 9,9,10,10,12,12,12,12,13,13, - 13,15,15,15,16,16,16,16,16,26, - 26,26,27,27,28,28,29,29,30,30, - 31,31,32,32,34,34,34,34,34,34, - 34,34,34,34,34,34,18,14,4,111, - 111,96,96,58,19,19,19,19,19,19, - 19,20,20,20,17,17,97,97,74,74, - 21,21,22,22,22,66,66,23,23,23, - 23,24,24,24,24,24,50,50,33,33, - 33,33,33,52,52,52,87,87,82,82, - 82,82,83,83,83,84,84,84,85,85, - 85,86,86,86,98,98,88,88,89,53, - 55,55,55,55,55,67,69,69,69,69, - 69,69,69,69,69,69,69,69,78,75, - 75,112,113,79,79,76,76,76,90,99, - 99,100,100,91,91,91,56,114,114,101, - 102,102,102,77,77,115,103,103,104,104, - 92,92,35,36,36,36,54,57,57,46, - 46,46,46,40,40,41,47,47,48,42, - 42,105,105,49,117,117,116,116,51,51, - 51,51,51,51,51,51,51,106,59,59, - 59,59,43,80,80,70,70,70,71,71, - 61,61,118,118,60,60,81,81,81,62, - 62,62,63,64,64,64,65,65,65,65, - 68,68,68,72,119,95,95,95,95,93, - 120,121,121,122,122,123,123,110,110,124, - 124,107,107,107,107,125,125,108,108,108, - 109,109,5,5,5,9,9,9,9,9, - 9,35,35,37,37,38,38,126,126,126, - 19,25,25,25,25,25,25,25,23,23, + 110,1,128,39,39,11,11,45,45,3, + 3,2,2,5,5,5,5,6,6,6, + 7,8,8,8,8,8,8,8,8,73, + 73,94,9,9,9,9,9,9,9,9, + 9,9,9,10,10,12,12,12,12,13, + 13,13,15,15,15,16,16,16,16,16, + 26,26,26,27,27,28,28,29,29,30, + 30,31,31,32,32,33,33,33,33,33, + 33,33,33,33,33,33,33,18,14,4, + 111,111,96,96,58,19,19,19,19,19, + 19,19,20,20,20,17,17,97,97,74, + 74,21,21,22,22,22,66,66,23,23, + 23,23,24,24,24,24,24,50,50,34, + 34,34,34,34,52,52,52,87,87,82, + 82,82,82,83,83,83,84,84,84,85, + 85,85,86,86,86,98,98,88,88,89, + 53,55,55,55,55,55,67,69,69,69, + 69,69,69,69,69,69,69,69,69,78, + 75,75,112,113,79,79,76,76,76,90, + 99,99,100,100,91,91,91,56,114,114, + 101,102,102,102,77,77,115,103,103,104, + 104,92,92,35,36,36,36,54,57,57, + 46,46,46,46,41,41,42,47,47,48, + 43,43,105,105,49,117,117,116,116,51, + 51,51,51,51,51,51,51,51,106,59, + 59,59,59,40,80,80,70,70,70,71, + 71,61,61,118,118,60,60,81,81,81, + 62,62,62,63,64,64,64,65,65,65, + 65,68,68,68,72,119,95,95,95,95, + 93,120,121,121,122,122,123,123,110,110, + 124,124,107,107,107,107,125,125,108,108, + 108,109,109,5,5,5,9,9,9,9, + 9,9,35,35,37,37,38,38,126,126, + 126,19,25,25,25,25,25,25,25,23, 23,23,23,23,23,23,23,23,23,23, 23,23,23,23,23,23,23,23,23,23, - 23,23,44,44,362,2151,1431,2558,933,16, - 20,17,687,1182,44,2956,694,764,230,750, - 811,2875,876,56,2077,89,2558,747,1912,887, - 805,831,819,865,855,875,74,230,91,134, - 212,321,322,2864,1853,2503,126,19,2318,1624, - 16,20,17,687,42,35,136,133,135,159, - 179,2213,834,178,493,223,232,969,528,223, - 228,138,346,165,217,569,220,222,1922,142, - 145,148,151,383,328,483,1618,432,1700,2782, - 2788,530,401,310,2558,1032,134,212,321,322, - 1395,493,223,231,2059,277,30,134,212,321, - 322,2043,2509,136,133,135,159,129,876,1895, - 421,87,303,2320,144,133,135,159,138,2045, - 165,759,1203,2135,224,531,142,145,148,151, - 383,2984,638,1618,432,1700,2782,2788,530,2601, - 663,19,403,2051,16,20,17,687,1182,44, - 2886,694,764,127,750,811,438,1922,2150,302, - 2284,1901,178,699,1767,805,831,819,865,855, - 875,74,698,280,2626,663,19,308,2606,16, - 20,17,687,1182,44,2356,694,764,24,750, - 811,749,259,129,638,134,212,321,322,2806, - 805,831,819,865,855,875,74,285,280,226, - 2181,1234,137,133,135,159,299,301,1910,365, - 253,212,321,322,129,563,708,139,323,165, - 129,3090,286,894,1328,143,146,149,152,383, - 2320,2218,285,305,129,1064,1234,2412,663,19, - 227,2986,16,20,17,687,1182,44,2942,694, - 764,337,750,811,2870,634,307,286,2284,1347, - 178,1929,555,805,831,819,865,855,875,74, - 327,280,2826,2095,19,1912,887,16,20,17, - 687,1182,44,2908,694,764,2320,750,811,254, - 212,321,322,134,212,321,322,18,805,831, - 819,865,855,875,74,287,1130,2857,729,1234, - 136,133,135,159,2108,528,223,228,2059,145, - 186,217,569,220,222,138,2218,165,2864,2587, - 288,126,158,142,145,148,151,383,129,1097, - 1618,432,1700,2782,2788,530,2290,1560,19,2952, - 638,16,20,17,687,1182,44,2049,694,764, - 202,750,811,155,548,240,309,2360,638,2059, - 1903,185,805,831,819,865,855,875,74,2218, - 706,2528,708,19,2212,238,16,20,17,687, - 1182,44,2942,694,764,123,750,811,2356,306, - 1767,2148,778,1651,1363,291,2320,805,831,819, - 865,855,875,74,2651,280,19,229,21,16, - 20,17,687,1182,44,2317,694,764,258,750, - 811,2048,1165,253,212,321,322,786,1215,2268, - 805,831,819,865,855,875,74,1069,280,157, - 2776,2208,19,1234,72,16,20,17,687,42, - 44,2478,1461,19,129,1235,16,20,17,687, - 42,44,896,694,764,275,750,811,1096,281, - 2939,876,289,1225,87,2468,1234,805,831,819, - 865,855,875,93,115,2466,2776,513,19,2320, - 329,16,20,17,687,1182,44,72,694,764, - 1592,750,811,384,1966,421,1905,303,912,611, - 2318,1692,805,831,819,865,855,875,74,2362, - 91,19,2560,2922,16,20,17,687,1182,44, - 2942,694,764,122,750,811,1294,403,2864,876, - 513,336,87,2781,638,805,831,819,865,855, - 875,74,1027,1261,302,104,1779,2776,239,19, - 129,3095,16,20,17,687,42,44,2942,694, - 764,111,750,811,274,2907,1767,2864,364,2206, - 1883,87,1395,805,831,819,865,855,875,93, - 2776,1228,19,129,509,16,20,17,687,1182, - 44,2322,694,764,258,750,811,129,544,2882, - 708,300,301,786,1215,1380,805,831,819,865, - 855,875,74,2776,85,19,275,1719,16,20, - 17,687,1182,44,72,694,764,2942,750,811, - 335,2407,2781,638,254,212,321,322,2320,805, - 831,819,865,855,875,74,2776,84,19,1593, - 2565,16,20,17,687,1182,44,72,694,764, - 2942,750,811,333,2221,1767,1559,513,2059,2059, - 30,187,805,831,819,865,855,875,74,2776, - 83,19,2568,2631,16,20,17,687,1182,44, - 2569,694,764,258,750,811,2888,2221,2942,1559, - 513,331,1412,1215,2320,805,831,819,865,855, - 875,74,2776,82,19,1594,1866,16,20,17, - 687,1182,44,2942,694,764,125,750,811,2980, - 2218,254,212,321,322,2059,2682,1192,805,831, - 819,865,855,875,74,2776,81,19,2320,2757, - 16,20,17,687,1182,44,208,694,764,1608, - 750,811,23,2864,2609,2866,194,1129,1578,242, - 2320,805,831,819,865,855,875,74,2776,80, - 19,1611,2041,16,20,17,687,1182,44,208, - 694,764,2942,750,811,121,2059,2059,1559,294, - 1248,1578,1269,2320,805,831,819,865,855,875, - 74,2776,79,19,22,2807,16,20,17,687, - 1182,44,72,694,764,2316,750,811,2942,2942, - 2942,2638,3125,3170,2972,2956,233,805,831,819, - 865,855,875,74,2776,78,19,2320,2980,16, - 20,17,687,1182,44,2320,694,764,2064,750, - 811,2218,2218,1983,2942,513,2090,3235,2973,2956, - 805,831,819,865,855,875,74,2776,77,19, - 282,2012,16,20,17,687,1182,44,209,694, - 764,2320,750,811,2942,2940,2942,3242,193,3108, - 241,243,2099,805,831,819,865,855,875,74, - 2776,76,19,2320,203,16,20,17,687,1182, - 44,1354,694,764,272,750,811,2218,2998,2942, - 2942,74,3149,3263,2956,2320,805,831,819,865, - 855,875,74,2776,75,19,278,2998,16,20, - 17,687,1182,44,2956,694,764,2942,750,811, - 3254,2942,2942,2920,3196,3201,244,2862,2956,805, - 831,819,865,855,875,74,2776,92,19,180, - 2881,16,20,17,687,42,44,2320,694,764, - 2942,750,811,3213,2218,2910,2939,364,1427,204, - 87,1368,805,831,819,865,855,875,93,2776, - 115,19,2320,740,16,20,17,687,1182,44, - 1466,694,764,279,750,811,2059,2942,296,708, - 117,2851,2467,293,211,805,831,819,865,855, - 875,74,2776,1262,19,2320,860,16,20,17, - 687,1182,44,2320,694,764,2169,750,811,2469, - 2942,2207,1229,3230,2230,2315,2956,2320,805,831, - 819,865,855,875,74,2776,1327,19,2300,2114, - 16,20,17,687,42,44,292,694,764,2320, - 750,811,2118,1930,2394,2864,876,2873,334,87, - 2309,805,831,819,865,855,875,93,2776,1060, - 19,27,2877,16,20,17,687,42,44,2320, - 694,764,2854,750,811,2871,2892,2879,2864,876, - 2335,332,87,201,805,831,819,865,855,875, - 93,2776,1098,19,2320,2943,16,20,17,687, - 42,44,2320,694,764,2370,750,811,2782,2656, - 2356,2864,876,2379,124,87,202,805,831,819, - 865,855,875,93,2776,1123,19,2320,2982,16, - 20,17,687,42,44,2572,694,764,2414,750, - 811,2218,2985,2986,2987,253,212,321,322,1394, - 805,831,819,865,855,875,93,2776,2989,19, - 2320,2990,16,20,17,687,42,44,2398,694, - 764,2475,750,811,220,364,1149,110,86,387, - 295,2994,1591,805,831,819,865,855,875,73, - 999,95,958,108,94,96,97,98,99,330, - 2056,2997,2320,134,212,321,322,708,1,364, - 1149,110,86,2484,3347,3347,909,3347,3347,3347, - 141,133,135,159,109,95,958,108,94,96, - 97,98,99,330,3347,140,2320,165,2320,3347, - 3347,708,291,364,1149,110,86,2510,106,2519, - 1950,2110,638,311,3347,3347,3347,2320,109,95, - 958,108,94,96,97,98,99,330,2545,2864, - 876,1658,1923,87,3347,708,147,364,1149,110, - 86,3347,107,1230,196,134,212,321,322,3347, - 3347,3347,109,95,958,108,94,96,97,98, - 99,330,147,133,135,159,2676,1163,19,708, - 3347,16,20,17,687,319,106,1923,1222,3347, - 3347,105,3347,3347,3347,2776,109,19,3347,2077, - 16,20,17,687,42,44,2320,694,764,1726, - 750,811,192,3347,3347,1932,2978,2580,3347,3347, - 107,805,831,819,865,1558,276,528,223,228, - 3347,3347,3347,217,569,220,222,3347,273,528, - 223,228,969,3347,262,218,569,220,222,266, - 965,913,271,3347,3347,528,223,228,3347,3347, - 3347,217,569,220,222,3347,273,3347,263,3347, - 3347,3347,483,1912,1024,3347,3347,266,965,913, - 271,3347,2776,3347,19,3347,2919,16,20,17, - 687,42,44,3347,694,764,1313,750,811,3347, - 3347,3347,3347,2864,876,260,1935,87,805,831, - 819,1526,3347,528,223,580,3347,1264,3347,217, - 569,220,588,3347,3347,3347,2776,3347,19,969, - 158,16,20,17,687,42,44,273,694,764, - 3347,750,811,2864,876,3347,3002,87,268,965, - 913,271,805,831,1527,2864,876,1296,3008,87, - 3347,154,548,433,876,1149,110,86,2701,1329, - 19,520,3347,16,20,17,687,317,527,3347, - 95,958,1367,94,96,97,98,99,330,2776, - 594,19,3347,3347,16,20,17,687,42,44, - 3347,694,764,3347,750,811,476,876,1149,110, - 86,3347,3347,3347,3347,805,1522,519,876,1149, - 110,86,3347,95,958,103,94,96,97,98, - 99,330,2883,3347,95,958,101,94,96,97, - 98,99,330,562,876,1149,110,86,2776,3347, - 19,3347,3347,16,20,17,687,42,39,3347, - 95,958,102,94,96,97,98,99,330,3347, - 3347,3347,528,223,228,969,3347,3347,218,569, - 220,222,3347,273,605,876,1149,110,86,3347, - 3347,3347,3347,3347,268,965,913,271,3347,3347, - 3347,95,958,118,94,96,97,98,99,330, - 648,876,1149,110,86,2356,3347,3347,3347,691, - 876,1149,110,86,3347,3347,3347,95,958,114, - 94,96,97,98,99,330,95,958,1650,94, - 96,97,98,99,330,734,876,1149,110,86, - 253,212,321,322,777,876,1149,110,86,3347, - 3347,3347,95,958,361,94,96,97,98,99, - 330,95,958,353,94,96,97,98,99,330, - 820,876,1149,110,86,3347,3347,3347,3347,863, - 876,1149,110,86,3347,999,3347,95,958,113, - 94,96,97,98,99,330,95,958,360,94, - 96,97,98,99,330,906,876,1149,110,86, - 3347,1409,3347,3347,949,876,1149,110,86,3347, - 3347,3347,95,958,359,94,96,97,98,99, - 330,95,958,357,94,96,97,98,99,330, - 992,876,1149,110,86,3347,3347,3347,3347,1035, - 876,1149,110,86,3347,3347,3347,95,958,352, - 94,96,97,98,99,330,95,958,351,94, - 96,97,98,99,330,1078,876,1149,110,86, - 3347,3347,3347,3347,1121,876,1149,110,86,3347, - 3347,3347,95,958,349,94,96,97,98,99, - 330,95,958,345,94,96,97,98,99,330, - 1164,876,1149,110,86,3347,3347,3347,3347,1207, - 876,1149,110,86,3347,3347,3347,95,958,120, - 94,96,97,98,99,330,95,958,358,94, - 96,97,98,99,330,1250,876,1149,110,86, - 3347,3347,3347,3347,1293,876,1149,110,86,3347, - 3347,3347,95,958,356,94,96,97,98,99, - 330,95,958,355,94,96,97,98,99,330, - 1336,876,1149,110,86,3347,3347,3347,3347,1379, - 876,1149,110,86,3347,3347,3347,95,958,350, - 94,96,97,98,99,330,95,958,348,94, - 96,97,98,99,330,1422,876,1149,110,86, - 3347,3347,3347,3347,1465,876,1149,110,86,3347, - 3347,3347,95,958,347,94,96,97,98,99, - 330,95,958,344,94,96,97,98,99,330, - 1508,876,1149,110,86,3347,3347,3347,3347,1551, - 876,1149,110,86,3347,3347,3347,95,958,343, - 94,96,97,98,99,330,95,958,341,94, - 96,97,98,99,330,1594,876,1149,110,86, - 3347,3347,3347,3347,1637,876,1149,110,86,3347, - 3347,3347,95,958,119,94,96,97,98,99, - 330,95,958,354,94,96,97,98,99,330, - 1680,876,1149,110,86,3347,3347,3347,3347,1723, - 876,1149,110,86,3347,3347,3347,95,958,346, - 94,96,97,98,99,330,95,958,342,94, - 96,97,98,99,330,1766,876,1149,110,86, - 3347,3347,3347,3347,1809,876,1149,110,86,3347, - 3347,3347,95,958,340,94,96,97,98,99, - 330,95,958,339,94,96,97,98,99,330, - 1852,876,1149,110,86,3347,3347,1912,887,3347, - 3347,3347,3347,3347,3347,3347,3347,95,958,338, - 94,96,97,98,99,330,2776,3347,19,1916, - 887,16,20,17,687,42,44,3347,694,764, - 3347,750,811,3347,3347,3347,3347,528,223,228, - 3347,2077,1525,217,569,220,222,3347,2864,876, - 3347,3247,87,3347,158,3347,3347,3347,3347,528, - 223,228,1330,3347,3347,217,569,220,222,1916, - 887,3347,3347,3347,3347,3347,1631,3347,3347,3347, - 3347,528,223,1268,969,154,548,218,569,220, - 1263,2776,3347,19,3347,520,16,20,17,687, - 42,44,3347,694,764,3347,750,1479,3347,528, - 223,228,3347,3347,3347,217,569,220,222,3347, - 197,199,2776,3347,19,3347,1631,16,20,17, - 687,42,44,1295,694,764,3347,750,1492,2776, - 3347,19,3347,3347,16,20,17,687,42,44, - 3347,694,764,2776,1493,19,3347,3347,16,20, - 17,687,42,44,3347,694,764,2776,1494,19, - 198,199,16,20,17,687,42,44,3347,694, - 764,2776,1497,19,3347,3347,16,20,17,687, - 42,44,2021,694,764,2776,1512,19,2076,3347, - 16,20,17,687,42,44,3347,694,1432,2776, - 3347,19,3347,3347,16,20,17,687,42,44, - 3347,694,1459,3347,3347,3347,3347,134,212,321, - 322,1984,2956,134,212,321,322,3347,3347,3347, - 3347,3347,276,3347,150,133,135,159,3347,3347, - 153,133,135,159,2776,3347,19,3347,3347,16, - 20,17,687,42,44,2503,1465,19,3347,3347, - 16,20,17,687,42,35,3347,3347,2503,3347, - 19,3347,273,16,20,17,687,42,35,3347, - 3347,3347,3347,266,965,913,271,2355,1057,3347, - 2776,3347,19,3347,245,16,20,17,687,42, - 38,3347,1313,2776,3347,19,3347,246,16,20, - 17,687,42,37,2776,3347,19,3347,3347,16, - 20,17,687,42,36,2776,3347,19,3347,3347, - 16,20,17,687,42,34,3347,2776,273,19, - 3347,3347,16,20,17,687,42,35,3347,266, - 965,913,271,2776,3347,19,2966,638,16,20, - 17,687,42,47,2776,3347,19,3347,265,16, - 20,17,687,42,46,2776,3347,19,2966,638, - 16,20,17,687,42,45,2576,3347,19,1767, - 3347,16,20,17,687,42,43,3347,3347,513, - 129,364,2941,876,87,3347,87,3347,2941,876, - 3347,1767,87,2125,666,1866,362,258,3347,2134, - 3347,513,362,2726,3347,19,1335,1215,16,20, - 17,687,315,196,3347,3347,2751,2012,19,258, - 3347,16,20,17,687,40,1445,3347,1335,1215, - 3347,3347,1453,3347,129,364,2887,2801,87,19, - 610,3347,16,20,17,687,33,2801,666,19, - 3347,3347,16,20,17,687,32,3347,129,364, - 129,364,87,3347,87,129,364,196,3347,87, - 2037,638,666,3347,666,2183,638,3347,3347,666, - 3347,3347,129,364,3347,3347,87,3347,2941,876, - 2887,196,87,196,879,3347,666,3347,196,2195, - 3347,3347,362,196,3347,2939,876,3347,196,87, - 3347,3347,3347,3347,2887,196,2887,3347,1038,115, - 1104,2887,3347,2941,876,1148,1163,87,3347,2941, - 876,1163,1489,87,2204,2941,876,362,2887,87, - 2239,3347,1170,362,2941,876,2265,3347,87,362, - 2864,876,3347,3143,87,2274,3347,3347,362,3347, - 3347,191,3347,3347,1361,3347,191,1519,3347,375, - 1701,1357,3347,1544,1334,1701,2941,876,3347,1552, - 87,2941,876,3347,3347,87,3347,2344,1577,3347, - 362,3347,2405,2941,876,362,3347,87,2941,876, - 3347,3347,87,3347,2440,3347,3347,362,3347,2449, - 2941,876,362,3347,87,2864,876,3347,3155,87, - 1652,2554,2939,876,362,1686,87,2864,876,1362, - 3164,87,3347,3347,2939,876,115,1688,87,3347, - 3347,1390,1707,2864,876,3347,3218,87,115,129, - 876,129,876,87,1786,87,3347,1460,129,876, - 129,876,87,1545,87,1247,129,876,3347,3347, - 87,3347,1255,3347,1291,3347,3347,3347,3347,3347, - 1387,3347,3347,3347,3347,3347,3347,3347,1467,3347, - 3347,3347,3347,3347,3347,3347,3347,3347,3347,3347, - 1610,3347,0,324,841,0,10,225,0,3354, - 1,0,1,3583,0,7,9,0,178,19, - 0,1,3572,0,112,2160,0 + 23,23,23,44,44,362,2151,1355,2558,1090, + 17,21,18,557,1280,45,346,580,661,231, + 586,746,2045,2875,865,129,1162,90,2221,2148, + 1599,736,879,816,993,971,1021,75,92,2218, + 135,213,322,323,2135,1966,421,2509,304,2318, + 1629,135,213,322,323,2318,1727,137,134,136, + 160,2213,739,179,254,213,322,323,145,134, + 136,160,139,1901,166,846,1912,771,328,528, + 143,146,149,152,466,1922,72,1704,376,1680, + 2789,2795,530,2051,311,303,135,213,322,323, + 105,1348,404,224,232,2606,56,129,365,633, + 2059,88,31,137,134,136,160,613,224,229, + 209,923,218,667,221,223,954,2221,139,1599, + 166,1158,1613,763,1198,899,143,146,149,152, + 466,197,2181,1704,376,1680,2789,2795,530,2601, + 869,20,301,302,17,21,18,557,1280,45, + 2077,580,661,2932,586,746,445,784,2864,1906, + 2284,127,179,324,1910,736,879,816,993,971, + 1021,75,281,2626,869,20,1912,771,17,21, + 18,557,1280,45,309,580,661,2857,586,746, + 1042,404,224,233,25,135,213,322,323,736, + 879,816,993,971,1021,75,281,286,433,209, + 2108,1299,138,134,136,160,1903,613,224,229, + 1294,1613,218,667,221,223,2049,140,2059,166, + 187,1922,287,159,1429,144,147,150,153,466, + 2059,286,186,2150,72,1299,2412,869,20,2558, + 747,17,21,18,557,1280,45,401,580,661, + 231,586,746,2870,156,465,287,2284,1431,179, + 129,749,736,879,816,993,971,1021,75,281, + 2826,882,20,2077,1227,17,21,18,557,1280, + 45,2212,580,661,227,586,746,2806,255,213, + 322,323,135,213,322,323,736,879,816,993, + 971,1021,75,1222,288,1905,759,1027,1299,137, + 134,136,160,1042,613,224,229,2558,1192,219, + 667,221,223,2059,139,31,166,2882,278,289, + 308,685,143,146,149,152,466,598,228,1704, + 376,1680,2789,2795,530,2290,389,20,202,2043, + 17,21,18,557,1280,45,2317,580,661,72, + 586,746,255,213,322,323,2048,2360,637,2037, + 637,736,879,816,993,971,1021,75,864,2059, + 2528,188,20,2320,239,17,21,18,557,1280, + 45,72,580,661,225,586,746,2888,2059,453, + 1092,1803,2886,197,2320,128,736,879,816,993, + 971,1021,75,281,2651,3031,20,24,520,17, + 21,18,557,1280,45,921,580,661,259,586, + 746,453,255,213,322,323,2268,994,1295,610, + 736,879,816,993,971,1021,75,281,158,2478, + 653,20,1299,2920,17,21,18,557,43,45, + 192,580,661,72,586,746,145,282,1211,1902, + 1895,421,2059,304,295,736,879,816,993,971, + 1021,94,290,1266,2218,2776,1299,20,330,2908, + 17,21,18,557,1280,45,72,580,661,2208, + 586,746,2148,453,528,2864,2608,399,127,129, + 388,736,879,816,993,971,1021,75,92,2362, + 303,20,2652,241,17,21,18,557,1280,45, + 2942,580,661,338,586,746,453,254,213,322, + 323,2864,2630,2320,195,736,879,816,993,971, + 1021,75,1362,72,19,3086,2922,2776,240,20, + 129,487,17,21,18,557,43,45,2942,580, + 661,124,586,746,1929,1500,293,300,302,1265, + 366,1348,633,736,879,816,993,971,1021,94, + 2776,275,20,453,405,17,21,18,557,1280, + 45,2942,580,661,123,586,746,275,1445,1693, + 833,292,1659,2468,2320,1333,736,879,816,993, + 971,1021,75,86,2776,230,20,2952,637,17, + 21,18,557,1280,45,2942,580,661,112,586, + 746,2466,2984,637,310,2864,365,2560,1432,88, + 736,879,816,993,971,1021,75,85,2776,1123, + 20,885,2206,17,21,18,557,1280,45,2942, + 580,661,336,586,746,2942,1803,307,334,885, + 129,1219,129,1991,736,879,816,993,971,1021, + 75,84,2776,2942,20,1399,332,17,21,18, + 557,1280,45,260,580,661,2942,586,746,126, + 2781,637,2942,2939,365,122,2322,88,736,879, + 816,993,971,1021,75,83,2776,116,20,2320, + 2407,17,21,18,557,1280,45,2320,580,661, + 1655,586,746,2942,1803,2218,2644,885,1656,2059, + 2320,297,736,879,816,993,971,1021,75,82, + 2776,1657,20,3115,2907,17,21,18,557,1280, + 45,259,580,661,2320,586,746,2565,2980,1191, + 994,1295,129,637,22,1658,736,879,816,993, + 971,1021,75,81,2776,2059,20,1599,2568,17, + 21,18,557,1280,45,2569,580,661,2320,586, + 746,2942,2781,637,3259,276,885,2682,2320,1660, + 736,879,816,993,971,1021,75,80,2776,23, + 20,2956,306,17,21,18,557,1280,45,2956, + 580,661,2218,586,746,2757,1803,2356,1565,2864, + 865,1389,337,88,736,879,816,993,971,1021, + 75,79,2776,1049,20,129,509,17,21,18, + 557,1280,45,259,580,661,180,586,746,129, + 543,243,1503,1295,283,2866,2316,210,736,879, + 816,993,971,1021,75,78,2776,234,20,2320, + 2041,17,21,18,557,1280,45,1007,580,661, + 2085,586,746,2942,2980,2807,3132,2864,865,2972, + 335,88,736,879,816,993,971,1021,75,77, + 2776,1055,20,2320,1983,17,21,18,557,1280, + 45,2973,580,661,2111,586,746,2942,74,2862, + 3264,2864,865,2881,333,88,736,879,816,993, + 971,1021,75,76,2776,1073,20,2320,2910,17, + 21,18,557,1280,45,2851,580,661,2120,586, + 746,2942,2218,2467,3271,2864,865,1437,125,88, + 736,879,816,993,971,1021,75,93,2776,1086, + 20,2320,2469,17,21,18,557,1280,45,2956, + 580,661,273,586,746,2940,2207,2315,194,2864, + 865,242,1937,88,736,879,816,993,971,1021, + 75,74,2776,1293,20,2320,2114,17,21,18, + 557,43,45,2956,580,661,279,586,746,2998, + 2218,2998,2864,865,204,1976,88,2956,736,879, + 816,993,971,1021,94,2776,1327,20,2956,2118, + 17,21,18,557,1280,45,1930,580,661,2218, + 586,746,2942,2942,2942,3171,3179,3292,181,244, + 212,736,879,816,993,971,1021,75,1430,2776, + 2942,20,205,3283,17,21,18,557,1280,45, + 2320,580,661,728,586,746,2942,2394,245,3210, + 2148,1547,1448,2320,1524,736,879,816,993,971, + 1021,75,1459,2776,280,20,2320,2873,17,21, + 18,557,43,45,2956,580,661,2190,586,746, + 2942,2942,2877,3225,3230,254,213,322,323,736, + 879,816,993,971,1021,94,2776,2942,20,2320, + 118,17,21,18,557,43,45,2320,580,661, + 2251,586,746,2942,2854,2148,3247,2871,2321,28, + 2892,202,736,879,816,993,971,1021,94,2776, + 707,20,2320,2879,17,21,18,557,43,45, + 2943,580,661,2330,586,746,2218,2218,2782,2656, + 254,213,322,323,203,736,879,816,993,971, + 1021,94,2776,2982,20,2320,2572,17,21,18, + 557,43,45,2320,580,661,2356,586,746,220, + 365,1225,111,87,2391,294,296,1596,736,879, + 816,993,971,1021,94,777,96,1015,109,95, + 97,98,99,100,331,2985,2986,2987,2989,2883, + 2990,2320,2320,885,1,365,1225,111,87,2676, + 1597,20,2400,2435,17,21,18,557,320,110, + 1950,96,1015,109,95,97,98,99,100,331, + 387,2994,2056,2997,3376,3376,3376,3376,885,1042, + 613,224,229,107,2398,219,667,221,223,312, + 274,3376,3376,3376,110,135,213,322,323,3376, + 3376,269,1144,936,272,2320,1664,291,365,1225, + 111,87,148,134,136,160,2496,3376,108,135, + 213,322,323,2320,96,1015,109,95,97,98, + 99,100,331,3376,2505,3376,142,134,136,160, + 3376,885,147,365,1225,111,87,3376,3376,3376, + 3376,141,3376,166,129,365,3376,110,88,96, + 1015,109,95,97,98,99,100,331,923,2320, + 3376,2941,865,3376,3376,88,885,3376,2320,2320, + 2531,107,2146,1923,933,363,2320,106,197,2540, + 2566,3376,110,2776,3376,20,3376,2601,17,21, + 18,557,43,45,1762,580,661,3376,586,746, + 2932,3376,3376,3376,1109,1516,108,3376,3376,736, + 879,816,993,1598,613,224,229,1932,3043,218, + 667,221,223,3376,274,129,865,3376,277,88, + 263,3376,3376,3376,3376,267,1144,936,272,1125, + 2776,3376,20,3376,3376,17,21,18,557,43, + 45,3376,580,661,264,586,1416,3376,613,224, + 229,3376,3376,218,667,221,223,3376,274,3376, + 3376,3376,2110,637,763,3376,1912,843,3376,267, + 1144,936,272,3376,3376,3376,3376,2776,3376,20, + 3376,261,17,21,18,557,43,45,1381,580, + 661,3376,586,746,3376,3376,197,2864,865,3376, + 1791,88,3376,736,879,816,1570,613,224,502, + 3376,1462,218,667,221,534,129,865,921,2776, + 88,20,3376,159,17,21,18,557,43,45, + 1590,580,661,3376,586,746,2864,865,3376,3156, + 88,3376,3376,3376,3376,736,879,1583,3376,3376, + 1463,2183,637,193,155,465,433,865,1225,111, + 87,2701,3376,20,782,3376,17,21,18,557, + 318,601,3376,96,1015,1329,95,97,98,99, + 100,331,2776,385,20,197,3376,17,21,18, + 557,43,45,3376,580,661,3376,586,746,476, + 865,1225,111,87,3376,3376,3376,921,736,1564, + 519,865,1225,111,87,3376,96,1015,104,95, + 97,98,99,100,331,3376,3376,96,1015,102, + 95,97,98,99,100,331,562,865,1225,111, + 87,3376,192,3376,3376,605,865,1225,111,87, + 1423,1902,3376,96,1015,103,95,97,98,99, + 100,331,96,1015,119,95,97,98,99,100, + 331,648,865,1225,111,87,3376,3376,3376,3376, + 691,865,1225,111,87,3376,3376,3376,96,1015, + 115,95,97,98,99,100,331,96,1015,1692, + 95,97,98,99,100,331,734,865,1225,111, + 87,3376,3376,3376,3376,777,865,1225,111,87, + 3376,3376,3376,96,1015,362,95,97,98,99, + 100,331,96,1015,354,95,97,98,99,100, + 331,820,865,1225,111,87,3376,3376,3376,3376, + 863,865,1225,111,87,3376,3376,3376,96,1015, + 114,95,97,98,99,100,331,96,1015,361, + 95,97,98,99,100,331,906,865,1225,111, + 87,3376,3376,3376,3376,949,865,1225,111,87, + 3376,3376,3376,96,1015,360,95,97,98,99, + 100,331,96,1015,358,95,97,98,99,100, + 331,992,865,1225,111,87,3376,3376,3376,3376, + 1035,865,1225,111,87,3376,3376,3376,96,1015, + 353,95,97,98,99,100,331,96,1015,352, + 95,97,98,99,100,331,1078,865,1225,111, + 87,3376,3376,3376,3376,1121,865,1225,111,87, + 3376,3376,3376,96,1015,350,95,97,98,99, + 100,331,96,1015,346,95,97,98,99,100, + 331,1164,865,1225,111,87,3376,3376,3376,3376, + 1207,865,1225,111,87,3376,3376,3376,96,1015, + 121,95,97,98,99,100,331,96,1015,359, + 95,97,98,99,100,331,1250,865,1225,111, + 87,3376,3376,3376,3376,1293,865,1225,111,87, + 3376,3376,3376,96,1015,357,95,97,98,99, + 100,331,96,1015,356,95,97,98,99,100, + 331,1336,865,1225,111,87,3376,3376,3376,3376, + 1379,865,1225,111,87,3376,3376,3376,96,1015, + 351,95,97,98,99,100,331,96,1015,349, + 95,97,98,99,100,331,1422,865,1225,111, + 87,3376,3376,3376,3376,1465,865,1225,111,87, + 3376,3376,3376,96,1015,348,95,97,98,99, + 100,331,96,1015,345,95,97,98,99,100, + 331,1508,865,1225,111,87,3376,3376,3376,3376, + 1551,865,1225,111,87,3376,3376,3376,96,1015, + 344,95,97,98,99,100,331,96,1015,342, + 95,97,98,99,100,331,1594,865,1225,111, + 87,3376,3376,3376,3376,1637,865,1225,111,87, + 3376,3376,3376,96,1015,120,95,97,98,99, + 100,331,96,1015,355,95,97,98,99,100, + 331,1680,865,1225,111,87,3376,3376,3376,3376, + 1723,865,1225,111,87,3376,3376,3376,96,1015, + 347,95,97,98,99,100,331,96,1015,343, + 95,97,98,99,100,331,1766,865,1225,111, + 87,3376,3376,3376,3376,1809,865,1225,111,87, + 3376,3376,3376,96,1015,341,95,97,98,99, + 100,331,96,1015,340,95,97,98,99,100, + 331,1852,865,1225,111,87,3376,3376,1912,771, + 3376,3376,3376,3376,3376,3376,3376,3376,96,1015, + 339,95,97,98,99,100,331,2776,3376,20, + 1916,771,17,21,18,557,43,45,3376,580, + 661,3376,586,746,2864,865,3376,3276,88,613, + 224,229,2077,1567,218,667,221,223,1464,3376, + 3376,2726,3376,20,3376,159,17,21,18,557, + 316,613,224,229,3376,3376,218,667,221,223, + 1916,771,3376,3376,3376,3376,3376,1691,3376,3376, + 3376,3376,1042,613,224,1321,155,465,219,667, + 221,1314,2776,3376,20,3376,782,17,21,18, + 557,43,45,3376,580,661,3376,586,1449,3376, + 3376,613,224,229,3376,3376,218,667,221,223, + 3376,198,200,2776,3376,20,3376,1691,17,21, + 18,557,43,45,1395,580,661,2776,1456,20, + 3376,3376,17,21,18,557,43,45,3376,580, + 661,2776,1497,20,3376,3376,17,21,18,557, + 43,45,3376,580,661,3376,1517,3376,2776,3376, + 20,199,200,17,21,18,557,43,45,2021, + 580,661,2776,1532,20,2076,3376,17,21,18, + 557,43,45,3376,580,1363,2776,3376,20,3376, + 3376,17,21,18,557,43,45,3376,580,1382, + 3376,3376,3376,3376,135,213,322,323,3376,3376, + 135,213,322,323,3376,3376,3376,3376,3376,3376, + 3376,151,134,136,160,3376,3376,154,134,136, + 160,2503,3376,20,1984,3023,17,21,18,557, + 43,36,2776,3376,20,277,3376,17,21,18, + 557,43,45,2776,1396,20,3376,3376,17,21, + 18,557,43,45,3376,1397,2503,3376,20,3376, + 329,17,21,18,557,43,36,3376,129,865, + 3376,2503,88,20,3376,274,17,21,18,557, + 43,36,1279,3376,3376,3376,267,1144,936,272, + 3376,2776,3376,20,3376,246,17,21,18,557, + 43,40,2355,876,3376,1381,2776,3376,20,3376, + 247,17,21,18,557,43,39,2776,3376,20, + 3376,3376,17,21,18,557,43,38,2776,3376, + 20,3376,3376,17,21,18,557,43,37,2776, + 3376,20,3376,3376,17,21,18,557,43,35, + 2776,3376,20,274,3376,17,21,18,557,43, + 36,3376,3376,3376,267,1144,936,272,2776,3376, + 20,3376,3376,17,21,18,557,43,48,2776, + 3376,20,3376,266,17,21,18,557,43,47, + 2776,3376,20,2966,637,17,21,18,557,43, + 46,2576,3376,20,3376,3376,17,21,18,557, + 43,44,3376,2966,637,2751,3376,20,3376,3376, + 17,21,18,557,41,3376,3376,1803,3376,2801, + 3376,20,3376,453,17,21,18,557,34,3376, + 3376,129,365,3376,3376,88,3376,1803,3376,3376, + 3376,3376,3086,453,259,923,2919,129,365,3376, + 2801,88,20,1415,1295,17,21,18,557,33, + 3376,923,1659,3376,259,197,129,365,129,365, + 88,3376,88,1415,1295,2939,865,3376,3376,88, + 923,197,923,3376,129,865,1042,2932,88,116, + 3376,1117,2864,865,3376,3173,88,274,1313,3376, + 197,3376,197,2932,3376,3376,1496,1130,269,1144, + 936,272,3376,3376,3376,3376,2941,865,3376,3376, + 88,3376,2932,3376,2932,3376,1154,2155,1188,3376, + 363,2941,865,2941,865,88,3376,88,3376,2941, + 865,1361,2216,88,2225,363,3376,363,2941,865, + 2260,3376,88,363,2941,865,3376,3376,88,2286, + 1549,3376,363,3376,3376,2295,3376,3376,363,3376, + 2941,865,3376,3376,88,1582,3376,1615,3376,3376, + 3376,2365,3376,1623,363,2941,865,3376,3376,88, + 2941,865,1661,3376,88,3376,2426,3376,1662,363, + 3376,2461,2941,865,363,3376,88,2941,865,3376, + 3376,88,3376,2470,1743,3376,363,3376,2575,2939, + 865,363,3376,88,2864,865,3376,3188,88,1789, + 3376,2939,865,116,1798,88,2864,865,1530,3194, + 88,3376,3376,2939,865,116,1799,88,3376,3376, + 1531,1806,2864,865,3376,3242,88,116,129,865, + 129,865,88,3376,88,3376,1563,3376,3376,3376, + 3376,3376,1347,3376,1490,3376,3376,3376,3376,3376, + 3376,3376,3376,3376,3376,1480,3376,3376,3376,3376, + 3376,3376,3376,3376,3376,3376,3376,1557,3376,3376, + 3376,3376,3376,3376,3376,3376,3376,3376,3376,1725, + 3376,0,325,829,0,11,226,0,3384,1, + 0,1,3613,0,8,10,0,179,20,0, + 1,3602,0,113,2181,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1040,314 +1045,314 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface TermAction { public final static char termAction[] = {0, - 3347,6714,1,6713,1,1331,900,1,1,1, + 3376,6744,1,6743,1,1328,415,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,3355,3447,920,1050,772, - 947,1136,1943,1031,1135,1090,1561,1082,928,1528, - 628,1495,991,1,1,1,1,1,1,1, - 1,1,1,1,1,181,1,1,1,1, + 1,1,1,1,1,3385,3477,981,1157,948, + 937,1197,1996,1110,778,1185,1365,1178,1229,1331, + 910,1297,1096,1,1,1,1,1,1,1, + 1,1,1,1,1,182,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,252,3353,7,3335,3335,3335,3335,3335,3335, - 3335,3335,3335,3335,3335,3335,3335,3335,3335,3335, - 3335,3335,3335,3335,3335,3335,3335,3335,3335,3335, - 3335,3335,3335,3335,3335,3335,3335,3335,3335,3335, - 3335,3335,3335,3335,3335,3335,3335,3335,3335,3335, - 3335,3335,3335,3335,3335,3335,3335,3335,1,3335, - 3335,3335,3335,3335,3335,3335,3335,3335,3335,3335, - 3335,3335,3335,3335,182,3335,3347,6714,1,6713, - 1,1331,900,1,1,1,1,1,1,1, + 1,253,3383,8,3364,3364,3364,3364,3364,3364, + 3364,3364,3364,3364,3364,3364,3364,3364,3364,3364, + 3364,3364,3364,3364,3364,3364,3364,3364,3364,3364, + 3364,3364,3364,3364,3364,3364,3364,3364,3364,3364, + 3364,3364,3364,3364,3364,3364,3364,3364,3364,3364, + 3364,3364,3364,3364,3364,3364,3364,3364,1,3364, + 3364,3364,3364,3364,3364,3364,3364,3364,3364,3364, + 3364,3364,3364,3364,183,3364,3376,6744,1,6743, + 1,1328,415,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,3355,3447,920,1050,772,947,1136,1943,1031, - 1135,1090,1561,1082,928,1528,628,1495,991,1, + 1,3385,3477,981,1157,948,937,1197,1996,1110, + 778,1185,1365,1178,1229,1331,910,1297,1096,1, 1,1,1,1,1,1,1,1,1,1, - 1,284,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3347,3353,3347, - 6714,1,6713,1,3356,900,1,1,1,1, + 1,285,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,3376,3383,3376, + 6744,1,6743,1,3386,415,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,3355,3447,920,1050,772,947, - 1136,1943,1031,1135,1090,1561,1082,928,1528,628, - 1495,991,1,1,1,1,1,1,1,1, - 1,1,1,1,70,1,1,1,1,1, + 1,1,1,1,3385,3477,981,1157,948,937, + 1197,1996,1110,778,1185,1365,1178,1229,1331,910, + 1297,1096,1,1,1,1,1,1,1,1, + 1,1,1,1,71,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 3347,6714,1,6713,1,3356,900,1,1,1, + 3376,6744,1,6743,1,3386,415,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,3355,3447,920,1050,772, - 947,1136,1943,1031,1135,1090,1561,1082,928,1528, - 628,1495,991,1,1,1,1,1,1,1, - 1,1,1,1,1,129,1,1,1,1, + 1,1,1,1,1,3385,3477,981,1157,948, + 937,1197,1996,1110,778,1185,1365,1178,1229,1331, + 910,1297,1096,1,1,1,1,1,1,1, + 1,1,1,1,1,130,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,3347,3357,3000,3358,2937,1862,3347,2914,2903, - 2925,3067,3057,3036,3359,3360,3361,3362,2890,2028, - 3659,3660,3661,3023,1948,1756,3347,3584,3560,3561, - 3562,3672,472,3673,3509,3510,3508,3563,3511,3507, - 184,6709,3347,6709,3560,3561,3562,3672,472,3673, - 3509,3510,3508,3563,3511,3507,3347,3514,3519,3518, - 3516,3517,3515,3520,3521,3513,3522,3523,3524,737, - 471,452,3347,6714,1,6713,1,3356,900,1, + 1,3376,3387,467,3388,2980,1917,3376,2958,2947, + 2969,3090,3059,3045,3389,3390,3391,3392,2936,2921, + 3689,3690,3691,2661,2001,1669,3376,3614,3590,3591, + 3592,3702,407,3703,3539,3540,3538,3593,3541,3537, + 185,6739,3376,6739,3590,3591,3592,3702,407,3703, + 3539,3540,3538,3593,3541,3537,3376,3544,3549,3548, + 3546,3547,3545,3550,3551,3543,3552,3553,3554,596, + 729,627,3376,6744,1,6743,1,3386,415,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3355,3447,920, - 1050,772,947,1136,1943,1031,1135,1090,1561,1082, - 928,1528,628,1495,991,3347,6714,1,6713,1, - 3356,900,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,3385,3477,981, + 1157,948,937,1197,1996,1110,778,1185,1365,1178, + 1229,1331,910,1297,1096,3376,6744,1,6743,1, + 3386,415,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 3355,3447,920,1050,772,947,1136,1943,1031,1135, - 1090,1561,1082,928,1528,628,1495,991,3347,6714, - 1,6713,1,3356,900,1,1,1,1,1, + 3385,3477,981,1157,948,937,1197,1996,1110,778, + 1185,1365,1178,1229,1331,910,1297,1096,3376,6744, + 1,6743,1,3386,415,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,3355,3447,920,1050,772,947,1136, - 1943,1031,1135,1090,1561,1082,928,1528,628,1495, - 991,3347,6714,1,6713,1,3356,900,1,1, + 1,1,1,3385,3477,981,1157,948,937,1197, + 1996,1110,778,1185,1365,1178,1229,1331,910,1297, + 1096,3376,6744,1,6743,1,3386,415,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,3355,3447,920,1050, - 772,947,1136,1943,1031,1135,1090,1561,1082,928, - 1528,628,1495,991,3347,6714,1,6713,1,3356, - 900,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,3355, - 3447,920,1050,772,947,1136,1943,1031,1135,1090, - 1561,1082,928,1528,628,1495,991,3347,6714,1, - 6713,1,3356,900,1,1,1,1,1,1, + 1,1,1,1,1,1,3385,3477,981,1157, + 948,937,1197,1996,1110,778,1185,1365,1178,1229, + 1331,910,1297,1096,3376,6744,1,6743,1,3386, + 415,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,3385, + 3477,981,1157,948,937,1197,1996,1110,778,1185, + 1365,1178,1229,1331,910,1297,1096,3376,6744,1, + 6743,1,3386,415,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,3355,3447,920,1050,772,947,1136,1943, - 1031,1135,1090,1561,1082,928,1528,628,1495,991, - 3347,6714,1,6713,1,3356,900,1,1,1, + 1,1,3385,3477,981,1157,948,937,1197,1996, + 1110,778,1185,1365,1178,1229,1331,910,1297,1096, + 3376,6744,1,6743,1,3386,415,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,3355,3447,920,1050,772, - 947,1136,1943,1031,1135,1090,1561,1082,928,1528, - 628,1495,991,3347,6714,1,6713,1,3356,900, + 1,1,1,1,1,3385,3477,981,1157,948, + 937,1197,1996,1110,778,1185,1365,1178,1229,1331, + 910,1297,1096,3376,6744,1,6743,1,3386,415, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,3355,3447, - 920,1050,772,947,1136,1943,1031,1135,1090,1561, - 1082,928,1528,628,1495,991,3347,6714,1,6713, - 1,3356,900,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,3385,3477, + 981,1157,948,937,1197,1996,1110,778,1185,1365, + 1178,1229,1331,910,1297,1096,3376,6744,1,6743, + 1,3386,415,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,3355,3447,920,1050,772,947,1136,1943,1031, - 1135,1090,1561,1082,928,1528,628,1495,991,3347, - 6714,1,6713,1,3356,900,1,1,1,1, + 1,3385,3477,981,1157,948,937,1197,1996,1110, + 778,1185,1365,1178,1229,1331,910,1297,1096,3376, + 6744,1,6743,1,3386,415,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,3355,3447,920,1050,772,947, - 1136,1943,1031,1135,1090,1561,1082,928,1528,628, - 1495,991,3347,6714,1,6713,1,3356,900,1, + 1,1,1,1,3385,3477,981,1157,948,937, + 1197,1996,1110,778,1185,1365,1178,1229,1331,910, + 1297,1096,3376,6744,1,6743,1,3386,415,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3355,3447,920, - 1050,772,947,1136,1943,1031,1135,1090,1561,1082, - 928,1528,628,1495,991,3347,6714,1,6713,1, - 3356,900,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,3385,3477,981, + 1157,948,937,1197,1996,1110,778,1185,1365,1178, + 1229,1331,910,1297,1096,3376,6744,1,6743,1, + 3386,415,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 3355,3447,920,1050,772,947,1136,1943,1031,1135, - 1090,1561,1082,928,1528,628,1495,991,3347,6714, - 1,6713,1,3356,900,1,1,1,1,1, + 3385,3477,981,1157,948,937,1197,1996,1110,778, + 1185,1365,1178,1229,1331,910,1297,1096,3376,6744, + 1,6743,1,3386,415,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,3355,3447,920,1050,772,947,1136, - 1943,1031,1135,1090,1561,1082,928,1528,628,1495, - 991,3347,6714,1,6713,1,3356,900,1,1, + 1,1,1,3385,3477,981,1157,948,937,1197, + 1996,1110,778,1185,1365,1178,1229,1331,910,1297, + 1096,3376,6744,1,6743,1,3386,415,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,3355,3447,920,1050, - 772,947,1136,1943,1031,1135,1090,1561,1082,928, - 1528,628,1495,991,3347,6714,1,6713,1,3356, - 900,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,3355, - 3447,920,1050,772,947,1136,1943,1031,1135,1090, - 1561,1082,928,1528,628,1495,991,3347,6714,1, - 6713,1,3356,900,1,1,1,1,1,1, + 1,1,1,1,1,1,3385,3477,981,1157, + 948,937,1197,1996,1110,778,1185,1365,1178,1229, + 1331,910,1297,1096,3376,6744,1,6743,1,3386, + 415,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,3385, + 3477,981,1157,948,937,1197,1996,1110,778,1185, + 1365,1178,1229,1331,910,1297,1096,3376,6744,1, + 6743,1,3386,415,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,3355,3447,920,1050,772,947,1136,1943, - 1031,1135,1090,1561,1082,928,1528,628,1495,991, - 3347,6714,1,6713,1,3356,900,1,1,1, + 1,1,3385,3477,981,1157,948,937,1197,1996, + 1110,778,1185,1365,1178,1229,1331,910,1297,1096, + 3376,6744,1,6743,1,3386,415,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,3355,3447,920,1050,772, - 947,1136,1943,1031,1135,1090,1561,1082,928,1528, - 628,1495,991,3347,6714,1,6713,1,3356,900, + 1,1,1,1,1,3385,3477,981,1157,948, + 937,1197,1996,1110,778,1185,1365,1178,1229,1331, + 910,1297,1096,3376,6744,1,6743,1,3386,415, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,3355,3447, - 920,1050,772,947,1136,1943,1031,1135,1090,1561, - 1082,928,1528,628,1495,991,3347,6714,1,6713, - 1,3356,900,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,3385,3477, + 981,1157,948,937,1197,1996,1110,778,1185,1365, + 1178,1229,1331,910,1297,1096,3376,6744,1,6743, + 1,3386,415,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,3355,3447,920,1050,772,947,1136,1943,1031, - 1135,1090,1561,1082,928,1528,628,1495,991,3347, - 6714,1,6713,1,3356,900,1,1,1,1, + 1,3385,3477,981,1157,948,937,1197,1996,1110, + 778,1185,1365,1178,1229,1331,910,1297,1096,3376, + 6744,1,6743,1,3386,415,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,3355,3447,920,1050,772,947, - 1136,1943,1031,1135,1090,1561,1082,928,1528,628, - 1495,991,3347,6714,1,6713,1,3356,900,1, + 1,1,1,1,3385,3477,981,1157,948,937, + 1197,1996,1110,778,1185,1365,1178,1229,1331,910, + 1297,1096,3376,6744,1,6743,1,3386,415,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3355,3447,920, - 1050,772,947,1136,1943,1031,1135,1090,1561,1082, - 928,1528,628,1495,991,3347,6714,1,6713,1, - 3356,900,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,3385,3477,981, + 1157,948,937,1197,1996,1110,778,1185,1365,1178, + 1229,1331,910,1297,1096,3376,6744,1,6743,1, + 3386,415,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 3355,3447,920,1050,772,947,1136,1943,1031,1135, - 1090,1561,1082,928,1528,628,1495,991,3347,6714, - 1,6713,1,3356,900,1,1,1,1,1, + 3385,3477,981,1157,948,937,1197,1996,1110,778, + 1185,1365,1178,1229,1331,910,1297,1096,3376,6744, + 1,6743,1,3386,415,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,3355,3447,920,1050,772,947,1136, - 1943,1031,1135,1090,1561,1082,928,1528,628,1495, - 991,3347,6714,1,6713,1,3356,900,1,1, + 1,1,1,3385,3477,981,1157,948,937,1197, + 1996,1110,778,1185,1365,1178,1229,1331,910,1297, + 1096,3376,6744,1,6743,1,3386,415,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,3355,3447,920,1050, - 772,947,1136,1943,1031,1135,1090,1561,1082,928, - 1528,628,1495,991,3347,6714,1,6713,1,3356, - 900,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,3355, - 3447,920,1050,772,947,1136,1943,1031,1135,1090, - 1561,1082,928,1528,628,1495,991,3347,6714,1, - 6713,1,3356,900,1,1,1,1,1,1, + 1,1,1,1,1,1,3385,3477,981,1157, + 948,937,1197,1996,1110,778,1185,1365,1178,1229, + 1331,910,1297,1096,3376,6744,1,6743,1,3386, + 415,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,3385, + 3477,981,1157,948,937,1197,1996,1110,778,1185, + 1365,1178,1229,1331,910,1297,1096,3376,6744,1, + 6743,1,3386,415,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,3355,3447,920,1050,772,947,1136,1943, - 1031,1135,1090,1561,1082,928,1528,628,1495,991, - 3347,6714,1,6713,1,3356,900,1,1,1, + 1,1,3385,3477,981,1157,948,937,1197,1996, + 1110,778,1185,1365,1178,1229,1331,910,1297,1096, + 3376,6744,1,6743,1,3386,415,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,3355,3447,920,1050,772, - 947,1136,1943,1031,1135,1090,1561,1082,928,1528, - 628,1495,991,3347,6714,1,6713,1,3356,900, + 1,1,1,1,1,3385,3477,981,1157,948, + 937,1197,1996,1110,778,1185,1365,1178,1229,1331, + 910,1297,1096,3376,6744,1,6743,1,3386,415, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,3355,3447, - 920,1050,772,947,1136,1943,1031,1135,1090,1561, - 1082,928,1528,628,1495,991,3347,6714,1,6713, - 1,3356,900,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,3385,3477, + 981,1157,948,937,1197,1996,1110,778,1185,1365, + 1178,1229,1331,910,1297,1096,3376,6744,1,6743, + 1,3386,415,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,3355,3447,920,1050,772,947,1136,1943,1031, - 1135,1090,1561,1082,928,1528,628,1495,991,3347, - 6714,1,6713,1,3356,900,1,1,1,1, + 1,3385,3477,981,1157,948,937,1197,1996,1110, + 778,1185,1365,1178,1229,1331,910,1297,1096,3376, + 6744,1,6743,1,3386,415,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,3355,3447,920,1050,772,947, - 1136,1943,1031,1135,1090,1561,1082,928,1528,628, - 1495,991,3347,6714,1,6713,1,3356,900,1, + 1,1,1,1,3385,3477,981,1157,948,937, + 1197,1996,1110,778,1185,1365,1178,1229,1331,910, + 1297,1096,3376,6744,1,6743,1,3386,415,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3355,3447,920, - 1050,772,947,1136,1943,1031,1135,1090,1561,1082, - 928,1528,628,1495,991,3347,6714,1,6713,1, - 3356,900,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,3385,3477,981, + 1157,948,937,1197,1996,1110,778,1185,1365,1178, + 1229,1331,910,1297,1096,3376,6744,1,6743,1, + 3386,415,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 3355,3447,920,1050,772,947,1136,1943,1031,1135, - 1090,1561,1082,928,1528,628,1495,991,3347,6714, - 1,6713,1,3356,900,1,1,1,1,1, + 3385,3477,981,1157,948,937,1197,1996,1110,778, + 1185,1365,1178,1229,1331,910,1297,1096,3376,6744, + 1,6743,1,3386,415,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,3355,3447,920,1050,772,947,1136, - 1943,1031,1135,1090,1561,1082,928,1528,628,1495, - 991,3347,6714,1,6713,1,3356,900,1,1, + 1,1,1,3385,3477,981,1157,948,937,1197, + 1996,1110,778,1185,1365,1178,1229,1331,910,1297, + 1096,3376,6744,1,6743,1,3386,415,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,3355,3447,920,1050, - 772,947,1136,1943,1031,1135,1090,1561,1082,928, - 1528,628,1495,991,3347,1,1,1,1,3356, - 3347,3357,54,3358,3347,3357,600,3358,3347,234, - 614,1,3572,388,222,1,3572,388,3347,3355, - 3651,3347,261,3572,1795,3347,1,408,248,58, - 3347,1,3341,1795,222,3347,3352,1,1,1, - 1,1,1,1,1,1,1,1,1,130, + 1,1,1,1,1,1,3385,3477,981,1157, + 948,937,1197,1996,1110,778,1185,1365,1178,1229, + 1331,910,1297,1096,3376,1,1,1,1,3386, + 3376,3387,55,3388,3376,3387,640,3388,3376,235, + 889,1,3602,436,223,1,3602,436,3376,3385, + 3681,3376,262,3602,1847,3376,1,409,249,59, + 3376,1,3370,1847,223,3376,3382,1,1,1, + 1,1,1,1,1,1,1,1,1,131, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,3347,1,1,1,1, - 3356,1,1,1,1,1,1,726,2785,2799, - 222,298,235,1,222,2821,726,222,3352,1475, - 3355,3651,3560,3561,3562,3672,472,3673,3509,3510, - 3508,3563,3511,3507,3351,2785,2799,222,1,1, + 1,1,1,1,1,3376,1,1,1,1, + 3386,1,1,1,1,1,1,725,2792,2806, + 223,299,236,1,223,2854,725,223,3382,1513, + 3385,3681,3590,3591,3592,3702,407,3703,3539,3540, + 3538,3593,3541,3537,3381,2792,2806,223,1,1, 1,1,1,1,1,1,1,1,1,1, - 131,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,3347,1,726,1, - 42,190,183,6711,10,6711,3326,59,205,6712, - 3347,6712,297,222,641,112,3351,222,3347,3357, - 3347,3358,3542,3560,3561,3562,3672,472,3673,3509, - 3510,3508,3563,3511,3507,132,252,3572,388,1, + 132,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,3376,1,725,1, + 43,191,184,6741,11,6741,3355,60,206,6742, + 3376,6742,298,223,446,113,3381,223,3376,3387, + 3376,3388,3572,3590,3591,3592,3702,407,3703,3539, + 3540,3538,3593,3541,3537,133,253,3602,436,1, 1,1,1,1,1,1,1,1,1,1, - 1,3347,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,48,190,3347, - 1,2975,1,61,189,1310,3347,60,3560,3561, - 3562,3672,472,3673,3509,3510,3508,3563,3511,3507, - 2771,2757,2743,2729,3347,3542,367,1277,1244,1211, - 1178,1145,1079,1112,1046,1013,980,249,3344,221, - 3347,386,1,1,1,1,1,1,1,1, - 1,1,1,1,3347,1,1,1,1,1, + 1,3376,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,49,191,3376, + 1,3020,1,62,190,1310,3376,61,3590,3591, + 3592,3702,407,3703,3539,3540,3538,3593,3541,3537, + 2778,2761,2747,2733,3376,3572,368,1276,1242,1208, + 1174,1140,1072,1106,1038,1004,970,3376,3373,222, + 3376,619,1,1,1,1,1,1,1,1, + 1,1,1,1,3376,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 228,189,3347,1,3347,1,231,190,2964,2953, - 1,1,1,1,1,1,2771,2757,2743,2729, - 2771,2757,2743,2729,726,3347,50,64,3542,781, - 2975,51,1,489,388,3358,2606,3347,2844,830, - 207,3357,3350,3358,3347,1,1,1,1,1, - 1,1,1,1,1,1,1,3322,1,1, + 229,190,3376,1,3376,1,232,191,3009,2998, + 3590,3591,3592,3702,407,3703,2778,2761,2747,2733, + 2778,2761,2747,2733,725,3376,51,65,3572,614, + 3020,52,1,382,436,3388,2627,3376,2873,2862, + 208,3387,3380,3388,3376,1,1,1,1,1, + 1,1,1,1,1,1,1,3351,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,3347,190,3560,3561,3562,3672,472, - 3673,3509,3510,3508,3563,3511,3507,66,3514,3519, - 3518,3516,3517,3515,3520,3521,3513,3522,3523,3524, - 737,471,452,3347,3357,3347,3358,2964,2953,1, - 3357,3000,3358,2855,3350,3349,2914,2903,2925,3067, - 3057,3036,3359,3360,3361,3362,2890,2028,3659,3660, - 3661,3023,1948,1756,49,3347,62,1,2975,3347, - 3352,3347,3329,967,3352,3347,3560,3561,3562,3672, - 472,3673,3509,3510,3508,3563,3511,3507,652,3514, - 3519,3518,3516,3517,3515,3520,3521,3513,3522,3523, - 3524,737,471,452,264,3347,2821,1969,1,1, - 3332,3347,3357,3000,3358,2868,3350,3349,2914,2903, - 2925,3067,3057,3036,3359,3360,3361,3362,2890,2028, - 3659,3660,3661,3023,1948,1756,1629,3347,3351,3353, - 3347,3347,3351,57,3347,2964,2953,128,3560,3561, - 3562,3672,472,3673,2712,2681,3347,3347,1396,726, - 1442,1,3357,3000,3358,2937,28,6681,2914,2903, - 2925,3067,3057,3036,3359,3360,3361,3362,2890,2028, - 3659,3660,3661,3023,1948,1756,3347,3347,3604,3349, - 3560,3561,3562,3672,472,3673,3509,3510,3508,3563, - 3511,3507,3347,3514,3519,3518,3516,3517,3515,3520, - 3521,3513,3522,3523,3524,72,53,68,52,2785, - 2799,3347,3347,2844,830,2844,830,3347,3357,3000, - 3358,405,3350,28,2914,2903,2925,3067,3057,3036, - 3359,3360,3361,3362,2890,2028,3659,3660,3661,3023, - 1948,1756,3347,3357,3000,3358,2937,3350,324,2914, - 2903,2925,3067,3057,3036,3359,3360,3361,3362,2890, - 2028,3659,3660,3661,3023,1948,1756,3347,3357,3000, - 3358,2937,3347,6681,2914,2903,2925,3067,3057,3036, - 3359,3360,3361,3362,2890,2028,3659,3660,3661,3023, - 1948,1756,3347,206,1196,3349,1196,1,1906,3347, - 1775,3269,3352,3323,3347,718,3271,3347,3347,3278, - 3280,3347,3347,3286,3347,3347,3357,3000,3358,2937, - 3349,997,2914,2903,2925,3067,3057,3036,3359,3360, - 3361,3362,2890,2028,3659,3660,3661,3023,1948,1756, - 1,3357,3000,3358,2937,156,6681,2914,2903,2925, - 3067,3057,3036,3359,3360,3361,3362,2890,2028,3659, - 3660,3661,3023,1948,1756,1,3357,3000,3358,2937, - 3351,6681,2914,2903,2925,3067,3057,3036,3359,3360, - 3361,3362,2890,2028,3659,3660,3661,3023,1948,1756, - 3347,3357,3000,3358,2937,210,6681,2914,2903,2925, - 3067,3057,3036,3359,3360,3361,3362,2890,2028,3659, - 3660,3661,3023,1948,1756,3347,3357,3054,3358,2937, - 761,3347,2914,2903,2925,3067,3057,3036,3359,3360, - 3361,3362,2890,2028,3659,3660,3661,3023,1948,1756, - 3347,3357,3078,3358,2937,3347,3347,2914,2903,2925, - 3067,3057,3036,3359,3360,3361,3362,2890,2028,3659, - 3660,3661,3023,1948,1756,3347,3357,3080,3358,2937, - 1376,3347,2914,2903,2925,3067,3057,3036,3359,3360, - 3361,3362,2890,2028,3659,3660,3661,3023,1948,1756, - 3347,3357,3085,3358,2937,1986,3347,2914,2903,2925, - 3067,3057,3036,3359,3360,3361,3362,2890,2028,3659, - 3660,3661,3023,1948,1756,3347,3357,3000,3358,2937, - 1,71,2914,2903,2925,3067,3057,3036,3359,3360, - 3361,3362,2890,2028,3659,3660,3661,3023,1948,1756, - 3347,3357,3102,3358,2937,219,255,2914,2903,2925, - 3067,3057,3036,3359,3360,3361,3362,2890,2028,3659, - 3660,3661,3023,1948,1756,1,3357,3000,3358,2937, - 1997,3347,2914,2903,2925,3067,3057,3036,3359,3360, - 3361,3362,2890,2028,3659,3660,3661,3023,1948,1756, - 19,178,3338,65,3338,3338,31,3347,381,3604, - 726,3347,2606,1,3347,3347,3372,3373,3356,250, - 63,950,56,1862,1,3338,55,501,67,90, - 3347,247,267,3572,1795,3347,252,251,3355,1585, - 3356,69,3347,178,178,178,178,178,178,178, - 178,178,178,178,178,3338,269,3347,454,88, - 3355,477,3560,3561,3562,3672,472,3673,267,290, - 2821,270,252,3338,3560,3561,3562,3672,472,3673, - 3560,3561,3562,3672,472,3673,1068,726,1,3347, - 1,3347,3347,116,3356,3352,3356,90,2785,2799, - 464,1,2785,2799,2023,3347,655,900,2712,2681, - 3354,726,1541,116,3355,1,3355,3710,1969,252, - 283,3347,228,726,1574,844,726,983,232,29, - 1343,206,1906,1,320,318,316,1197,41,3347, - 997,997,997,200,997,997,3347,29,188,1426, - 188,188,1,1,184,3347,183,205,3347,3347, - 2659,116,3347,3351,3347,3347,1607,3347,3347,3347, - 3347,3347,3347,3347,3347,3347,3347,3353,3347,3347, - 3347,3347,3347,3347,3347,3347,3347,3347,3347,3347, - 3347,3347,844,3347,3604,3347,3347,3347,3347,3347, - 3375,3347,6264,3347,3347,3347,3347,3347,3347,3347, - 3347,3347,3603,3347,3347,3347,3347,1508,617,3347, - 3347,794,3347,3347,3347,3347,3358,3357 + 1,1,1,3376,191,3590,3591,3592,3702,407, + 3703,3539,3540,3538,3593,3541,3537,67,3544,3549, + 3548,3546,3547,3545,3550,3551,3543,3552,3553,3554, + 596,729,627,3376,3387,3376,3388,3009,2998,1, + 3387,467,3388,2886,3380,3379,2958,2947,2969,3090, + 3059,3045,3389,3390,3391,3392,2936,2921,3689,3690, + 3691,2661,2001,1669,50,3376,63,1,3020,3376, + 3382,3376,3358,1025,3382,3376,3590,3591,3592,3702, + 407,3703,3539,3540,3538,3593,3541,3537,650,3544, + 3549,3548,3546,3547,3545,3550,3551,3543,3552,3553, + 3554,596,729,627,265,250,2854,2022,1,1, + 3361,3376,3387,467,3388,2901,3380,3379,2958,2947, + 2969,3090,3059,3045,3389,3390,3391,3392,2936,2921, + 3689,3690,3691,2661,2001,1669,1690,3376,3381,3383, + 3376,3376,3381,58,3376,3009,2998,129,1,1, + 1,1,1,1,2702,1870,3376,3376,1093,725, + 1479,1,3387,467,3388,2980,29,6711,2958,2947, + 2969,3090,3059,3045,3389,3390,3391,3392,2936,2921, + 3689,3690,3691,2661,2001,1669,3376,3376,3634,3379, + 3590,3591,3592,3702,407,3703,3539,3540,3538,3593, + 3541,3537,3376,3544,3549,3548,3546,3547,3545,3550, + 3551,3543,3552,3553,3554,73,54,69,53,2792, + 2806,3376,3376,2873,2862,2873,2862,3376,3387,467, + 3388,2851,3380,29,2958,2947,2969,3090,3059,3045, + 3389,3390,3391,3392,2936,2921,3689,3690,3691,2661, + 2001,1669,3376,3387,467,3388,2980,3380,325,2958, + 2947,2969,3090,3059,3045,3389,3390,3391,3392,2936, + 2921,3689,3690,3691,2661,2001,1669,3376,3387,467, + 3388,2980,3376,6711,2958,2947,2969,3090,3059,3045, + 3389,3390,3391,3392,2936,2921,3689,3690,3691,2661, + 2001,1669,3376,207,1175,3379,1175,1,1959,3376, + 1813,1956,3382,3352,3376,940,2898,3376,3376,3124, + 3298,3376,3376,3300,3376,3376,3387,467,3388,2980, + 3379,1259,2958,2947,2969,3090,3059,3045,3389,3390, + 3391,3392,2936,2921,3689,3690,3691,2661,2001,1669, + 1,3387,467,3388,2980,157,6711,2958,2947,2969, + 3090,3059,3045,3389,3390,3391,3392,2936,2921,3689, + 3690,3691,2661,2001,1669,1,3387,467,3388,2980, + 3381,6711,2958,2947,2969,3090,3059,3045,3389,3390, + 3391,3392,2936,2921,3689,3690,3691,2661,2001,1669, + 3376,3387,467,3388,2980,211,6711,2958,2947,2969, + 3090,3059,3045,3389,3390,3391,3392,2936,2921,3689, + 3690,3691,2661,2001,1669,3376,3387,1774,3388,2980, + 760,3376,2958,2947,2969,3090,3059,3045,3389,3390, + 3391,3392,2936,2921,3689,3690,3691,2661,2001,1669, + 3376,3387,3071,3388,2980,3376,3376,2958,2947,2969, + 3090,3059,3045,3389,3390,3391,3392,2936,2921,3689, + 3690,3691,2661,2001,1669,3376,3387,3087,3388,2980, + 1412,3376,2958,2947,2969,3090,3059,3045,3389,3390, + 3391,3392,2936,2921,3689,3690,3691,2661,2001,1669, + 3376,3387,3106,3388,2980,2039,3376,2958,2947,2969, + 3090,3059,3045,3389,3390,3391,3392,2936,2921,3689, + 3690,3691,2661,2001,1669,3376,3387,467,3388,2980, + 1,72,2958,2947,2969,3090,3059,3045,3389,3390, + 3391,3392,2936,2921,3689,3690,3691,2661,2001,1669, + 3376,3387,3108,3388,2980,220,256,2958,2947,2969, + 3090,3059,3045,3389,3390,3391,3392,2936,2921,3689, + 3690,3691,2661,2001,1669,1,3387,467,3388,2980, + 2050,3376,2958,2947,2969,3090,3059,3045,3389,3390, + 3391,3392,2936,2921,3689,3690,3691,2661,2001,1669, + 20,179,3367,66,3367,3367,32,3376,383,3634, + 725,3376,2627,1,3376,3376,3402,3403,3386,248, + 64,1062,57,1917,1,3367,56,1022,68,91, + 3376,251,268,3602,1847,3376,253,252,3385,1616, + 3386,70,3376,179,179,179,179,179,179,179, + 179,179,179,179,179,3367,270,3376,697,89, + 3385,1855,3590,3591,3592,3702,407,3703,268,291, + 2854,271,253,3367,3590,3591,3592,3702,407,3703, + 3590,3591,3592,3702,407,3703,703,725,1,3376, + 1,3376,3376,117,3386,3382,3386,91,2792,2806, + 470,1,2792,2806,2076,3376,546,415,2702,1870, + 3384,725,1579,117,3385,1,3385,3740,2022,253, + 284,3376,229,725,1612,1060,725,1245,233,30, + 1344,207,1959,1,321,319,317,852,42,3376, + 1259,1259,1259,201,1259,1259,3376,30,189,1129, + 189,189,1,1,185,3376,184,206,3376,3376, + 2680,117,3376,3381,3376,3376,1378,3376,3376,3376, + 3376,3376,3376,3376,3376,3376,3376,3383,3376,3376, + 3376,3376,3376,3376,3376,3376,3376,3376,3376,3376, + 3376,3376,1060,3376,3634,3376,3376,3376,3376,3376, + 3405,3376,6294,3376,3376,3376,3376,3376,3376,3376, + 3376,3376,3633,3376,3376,3376,3376,1546,616,3376, + 3376,794,3376,3376,3376,3376,3388,3387 }; }; public final static char termAction[] = TermAction.termAction; @@ -1355,45 +1360,45 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface Asb { public final static char asb[] = {0, - 60,1,392,54,60,311,26,3,38,309, - 38,309,309,38,309,38,394,643,56,42, - 94,56,353,319,309,568,568,309,568,56, - 643,481,643,96,97,574,394,311,246,523, - 522,643,105,354,341,374,548,548,548,548, - 548,548,548,548,319,548,548,548,206,223, - 228,226,234,230,237,236,239,238,240,311, - 139,311,172,643,470,56,574,250,576,394, - 56,182,56,353,247,546,546,546,546,247, - 247,568,94,94,94,528,94,94,247,353, - 103,548,103,54,374,481,481,607,548,374, - 374,374,374,374,568,568,646,548,548,548, - 548,548,548,548,548,548,548,548,548,548, - 548,548,548,548,548,548,548,311,139,172, - 172,470,417,576,253,341,417,212,319,481, - 476,394,480,282,169,311,105,522,351,247, - 548,247,247,247,247,372,372,548,428,548, - 548,354,528,103,528,56,243,430,182,643, - 571,479,478,481,481,481,481,481,481,341, - 226,226,223,223,230,230,228,228,228,228, - 236,234,238,237,103,239,139,169,344,139, - 172,174,484,174,417,470,480,417,341,318, - 250,548,548,548,548,548,548,548,548,548, - 548,548,571,643,576,169,180,546,546,247, - 546,247,481,94,481,481,353,528,548,180, - 607,481,613,574,489,489,489,489,311,548, - 139,346,174,169,548,568,470,58,548,548, - 341,319,613,476,180,546,247,546,247,546, - 247,546,528,548,528,528,180,481,576,169, - 246,548,245,169,341,341,174,425,645,247, - 546,645,247,546,546,247,646,247,481,352, - 174,481,346,548,169,178,526,568,548,424, - 528,481,645,645,247,528,481,645,645,247, - 645,247,546,481,646,247,528,169,313,182, - 341,568,548,528,528,481,528,481,645,528, - 528,481,528,481,645,528,481,645,645,247, - 528,481,341,528,528,528,481,528,528,528, - 481,528,528,481,528,481,645,528,528,528, - 528,528,528,481,528 + 249,1,396,54,249,353,26,3,38,351, + 38,351,351,38,351,38,398,669,56,42, + 283,56,357,292,351,594,594,351,594,56, + 669,481,669,138,139,600,398,353,134,523, + 522,669,60,358,314,378,574,574,574,574, + 574,574,574,574,292,574,574,574,94,111, + 116,114,122,118,125,124,127,126,128,353, + 175,353,285,669,470,56,600,208,602,398, + 56,151,56,357,135,572,572,572,572,135, + 135,594,283,283,283,554,283,283,135,357, + 145,574,145,54,378,481,481,633,574,378, + 378,378,378,378,594,594,529,574,574,574, + 574,574,574,574,574,574,574,574,574,574, + 574,574,574,574,574,574,574,353,175,285, + 285,470,470,602,211,314,421,100,292,481, + 476,398,480,324,205,353,60,522,355,135, + 574,135,135,135,135,376,376,574,428,574, + 574,358,554,145,554,56,131,430,151,669, + 597,479,478,481,481,481,481,481,481,314, + 114,114,111,111,118,118,116,116,116,116, + 124,122,126,125,145,127,175,205,317,175, + 285,287,484,287,470,421,480,421,314,291, + 208,574,574,574,574,574,574,574,574,574, + 574,574,597,669,602,205,149,572,572,135, + 572,135,481,283,481,481,357,554,574,149, + 633,481,639,600,489,489,489,489,353,574, + 175,319,287,205,574,594,421,470,58,574, + 574,314,292,639,476,149,572,135,572,135, + 572,135,572,554,574,554,554,149,481,602, + 205,134,574,133,205,470,314,314,287,246, + 528,135,572,528,135,572,572,135,529,135, + 481,356,287,481,319,574,205,147,526,594, + 574,245,554,481,528,528,135,554,481,528, + 528,135,528,135,572,481,529,135,554,205, + 240,151,314,594,574,554,554,481,554,481, + 528,554,554,481,554,481,528,554,481,528, + 528,135,554,481,314,554,554,554,481,554, + 554,554,481,554,554,481,554,481,528,554, + 554,554,554,554,554,481,554 }; }; public final static char asb[] = Asb.asb; @@ -1406,44 +1411,44 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym 20,21,22,23,24,64,56,61,59,60, 58,57,62,63,65,66,67,55,74,71, 73,50,43,51,52,53,44,49,54,45, - 46,47,48,25,5,4,2,1,0,87, - 50,56,43,57,68,51,58,52,59,60, - 53,44,61,62,49,69,54,70,63,64, - 45,65,66,67,1,3,4,46,47,48, - 25,5,26,2,0,2,5,75,71,73, - 25,55,74,0,50,56,43,57,68,51, + 46,47,48,25,5,4,2,1,0,50, + 56,43,57,68,51,58,52,59,60,53, + 44,61,62,49,69,54,70,63,64,45, + 65,66,67,1,3,46,47,48,5,75, + 71,25,0,55,2,80,94,10,11,75, + 97,98,99,100,101,103,102,104,105,106, + 4,81,82,7,8,77,76,83,84,85, + 86,88,89,9,90,91,92,72,95,96, + 78,73,74,71,25,5,0,2,5,75, + 71,73,25,55,74,0,5,72,55,80, + 2,13,14,15,16,19,20,21,1,3, + 10,11,9,4,7,8,17,18,12,22, + 23,24,6,0,50,56,43,57,68,51, 58,52,59,60,53,44,61,62,49,69, 54,70,63,64,45,65,66,67,1,3, - 46,47,48,5,75,71,25,0,50,56, - 43,57,68,51,58,52,59,60,53,44, - 61,62,49,69,54,70,63,64,45,65, - 66,67,1,3,46,47,48,26,5,72, - 0,1,3,5,72,71,0,5,72,55, - 80,2,13,14,15,16,19,20,21,1, - 3,10,11,9,4,7,8,17,18,12, - 22,23,24,6,0,55,2,80,94,10, - 11,75,97,98,99,100,101,103,102,104, - 105,106,4,81,82,7,8,77,76,83, - 84,85,86,88,89,9,90,91,92,72, - 95,96,78,73,74,71,25,5,0,78, - 5,49,43,44,45,46,47,48,10,11, - 9,4,7,8,17,18,12,22,23,24, - 2,1,3,13,14,15,16,19,20,21, - 0,50,56,43,57,68,51,58,52,59, - 60,53,44,61,62,49,69,54,70,63, - 64,45,65,66,67,46,47,48,1,3, - 6,0,5,71,72,25,0,49,10,11, - 9,4,7,8,17,18,12,22,23,24, - 2,1,3,13,14,15,16,19,20,21, - 78,5,0,25,5,4,1,2,74,0, - 87,93,72,30,31,6,35,37,32,28, - 33,42,34,27,29,36,39,41,38,40, - 26,25,5,12,13,14,15,16,10,11, - 9,7,8,17,18,19,20,21,22,23, - 24,4,2,1,3,68,69,70,64,56, - 61,59,60,58,57,62,63,65,66,67, - 54,51,49,50,53,52,46,48,47,43, - 44,45,0,75,55,80,0,28,0,49, + 46,47,48,26,5,72,0,78,5,49, + 43,44,45,46,47,48,10,11,9,4, + 7,8,17,18,12,22,23,24,2,1, + 3,13,14,15,16,19,20,21,0,5, + 71,72,25,0,75,55,80,0,87,50, + 56,43,57,68,51,58,52,59,60,53, + 44,61,62,49,69,54,70,63,64,45, + 65,66,67,1,3,4,46,47,48,25, + 5,26,2,0,1,3,5,72,71,0, + 49,10,11,9,4,7,8,17,18,12, + 22,23,24,2,1,3,13,14,15,16, + 19,20,21,78,5,0,25,5,4,1, + 2,74,0,50,56,43,57,68,51,58, + 52,59,60,53,44,61,62,49,69,54, + 70,63,64,45,65,66,67,46,47,48, + 1,3,6,0,87,93,72,30,31,6, + 35,37,32,28,33,42,34,27,29,36, + 39,41,38,40,26,25,5,12,13,14, + 15,16,10,11,9,7,8,17,18,19, + 20,21,22,23,24,4,2,1,3,68, + 69,70,64,56,61,59,60,58,57,62, + 63,65,66,67,54,51,49,50,53,52, + 43,44,45,47,46,48,0,28,0,49, 54,53,52,51,50,80,94,10,11,9, 7,8,81,82,76,77,83,84,85,86, 88,89,90,91,92,95,96,75,97,98, @@ -1453,21 +1458,21 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym 7,8,81,82,76,77,83,84,85,86, 88,89,90,91,92,95,96,74,97,98, 99,100,101,102,103,104,105,106,78,73, - 72,6,5,71,25,75,0,30,31,6, - 35,37,32,28,33,42,34,27,29,36, - 39,41,38,40,26,25,5,2,13,14, - 15,16,19,20,21,10,11,9,4,7, - 8,17,18,12,22,23,24,1,3,0, - 4,2,55,73,5,50,56,43,57,68, - 51,58,52,59,60,53,44,61,62,49, - 69,54,70,63,64,45,65,66,67,1, - 3,46,47,48,79,0,5,73,4,2, - 55,0,50,56,43,57,68,51,58,52, - 59,60,53,44,61,62,49,69,54,70, - 63,64,45,65,66,67,1,3,46,47, - 48,79,4,0,27,5,73,12,13,14, - 15,16,1,3,2,10,11,9,4,7, - 8,17,18,19,20,21,22,23,24,0 + 72,6,5,71,25,75,0,27,5,73, + 12,13,14,15,16,1,3,2,10,11, + 9,4,7,8,17,18,19,20,21,22, + 23,24,0,30,31,6,35,37,32,28, + 33,42,34,27,29,36,39,41,38,40, + 26,25,5,2,13,14,15,16,19,20, + 21,10,11,9,4,7,8,17,18,12, + 22,23,24,1,3,0,4,2,55,73, + 5,50,56,43,57,68,51,58,52,59, + 60,53,44,61,62,49,69,54,70,63, + 64,45,65,66,67,1,3,46,47,48, + 79,0,5,73,4,2,55,0,50,56, + 43,57,68,51,58,52,59,60,53,44, + 61,62,49,69,54,70,63,64,45,65, + 66,67,1,3,46,47,48,79,4,0 }; }; public final static byte asr[] = Asr.asr; @@ -1475,45 +1480,45 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface Nasb { public final static char nasb[] = {0, - 41,34,24,18,93,35,52,39,53,12, - 53,82,82,53,81,53,47,166,138,34, - 34,136,21,73,7,7,7,7,7,14, - 34,162,166,45,45,161,134,35,19,34, - 34,166,34,112,74,169,64,64,64,64, - 64,64,64,64,73,64,64,64,34,34, - 34,34,34,34,34,34,34,34,34,70, - 134,34,134,34,134,155,161,72,122,57, - 138,90,153,118,19,99,99,99,99,19, - 19,7,34,34,34,142,34,34,19,21, - 34,64,34,18,1,162,162,132,64,169, - 169,169,169,169,37,37,9,100,64,64, - 64,64,64,64,64,64,64,64,64,64, - 64,64,64,64,64,100,64,34,177,134, - 7,134,55,86,63,74,55,34,73,162, - 130,27,34,76,134,34,34,34,34,19, - 64,19,19,19,19,97,107,100,34,100, - 100,112,142,34,142,138,34,34,64,166, - 159,45,45,162,162,162,162,162,162,74, - 34,34,34,34,34,34,34,34,34,34, - 34,34,34,34,34,34,134,22,18,125, - 7,103,34,34,55,66,162,55,74,73, - 66,64,64,64,64,64,64,64,64,64, - 64,64,129,166,122,22,134,99,99,19, - 109,19,162,34,162,162,118,142,64,134, - 149,162,164,161,34,34,34,34,34,64, - 177,138,103,22,64,7,66,34,64,64, - 74,73,164,147,62,99,19,99,19,99, - 19,109,142,100,142,142,62,162,122,22, - 19,64,34,22,74,74,103,68,173,19, - 99,173,19,99,99,19,109,19,162,34, - 103,162,138,64,22,61,34,7,64,105, - 142,162,173,173,19,142,162,173,173,19, - 173,19,99,162,109,19,142,22,84,90, - 74,7,64,142,142,162,142,162,173,142, - 142,162,142,162,173,142,162,173,173,19, - 142,162,74,142,142,142,162,142,142,142, - 162,142,142,162,142,162,173,142,142,142, - 142,142,142,162,142 + 92,33,23,48,14,34,56,18,57,36, + 57,60,60,57,59,57,51,178,156,33, + 33,154,20,72,7,7,7,7,7,44, + 33,174,178,62,62,173,148,34,49,33, + 33,178,33,120,73,38,67,67,67,67, + 67,67,67,67,72,67,67,67,33,33, + 33,33,33,33,33,33,33,33,33,90, + 148,33,148,33,130,167,173,71,136,116, + 156,85,165,132,49,105,105,105,105,49, + 49,7,33,33,33,160,33,33,49,20, + 33,67,33,48,1,174,174,146,67,38, + 38,38,38,38,42,42,9,106,67,67, + 67,67,67,67,67,67,67,67,67,67, + 67,67,67,67,67,106,67,33,81,148, + 7,130,148,77,66,73,12,33,72,174, + 144,26,33,98,148,33,33,33,33,49, + 67,49,49,49,49,103,109,106,33,106, + 106,120,160,33,160,156,33,33,67,178, + 171,62,62,174,174,174,174,174,174,73, + 33,33,33,33,33,33,33,33,33,33, + 33,33,33,33,33,33,148,21,48,150, + 7,114,33,33,148,12,174,12,73,72, + 69,67,67,67,67,67,67,67,67,67, + 67,67,143,178,136,21,148,105,105,49, + 111,49,174,33,174,174,132,160,67,148, + 128,174,176,173,33,33,33,33,33,67, + 81,156,114,21,67,7,12,69,33,67, + 67,73,72,176,126,65,105,49,105,49, + 105,49,111,160,106,160,160,65,174,136, + 21,49,67,33,21,69,73,73,114,96, + 139,49,105,139,49,105,105,49,111,49, + 174,33,114,174,156,67,21,64,33,7, + 67,88,160,174,139,139,49,160,174,139, + 139,49,139,49,105,174,111,49,160,21, + 75,85,73,7,67,160,160,174,160,174, + 139,160,160,174,160,174,139,160,174,139, + 139,49,160,174,73,160,160,160,174,160, + 160,160,174,160,160,174,160,174,139,160, + 160,160,160,160,160,174,160 }; }; public final static char nasb[] = Nasb.nasb; @@ -1522,23 +1527,23 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface Nasr { public final static char nasr[] = {0, 87,85,84,79,83,82,2,0,1,111, - 0,112,0,40,42,43,0,1,3,0, - 1,45,0,40,1,105,87,86,85,84, - 79,83,82,0,109,0,94,0,126,0, - 124,33,1,0,51,0,79,75,76,77, - 78,67,52,0,80,0,33,1,125,0, - 93,72,1,8,0,35,0,121,0,113, - 0,1,8,39,0,1,33,50,17,0, - 115,90,0,119,0,116,1,33,0,8, - 72,0,33,1,107,0,33,50,3,1, - 14,0,73,0,123,0,33,50,1,66, - 0,1,33,2,18,97,0,18,2,74, - 45,1,33,0,1,56,91,0,11,40, - 47,63,64,1,0,49,42,47,40,1, - 0,2,18,1,19,0,40,47,64,63, - 43,0,42,49,40,47,43,0,63,64, - 1,11,0,1,33,43,59,0,1,56, - 14,0,1,44,11,0,100,1,56,0 + 0,80,0,34,1,107,0,126,0,1, + 45,0,41,1,105,87,86,85,84,79, + 83,82,0,109,0,112,0,1,56,14, + 0,94,0,41,43,40,0,1,3,0, + 79,75,76,77,78,67,52,0,115,90, + 0,51,0,93,72,1,8,0,35,0, + 1,8,39,0,119,0,116,1,34,0, + 100,1,56,0,8,72,0,123,0,113, + 0,124,34,1,0,121,0,1,34,50, + 17,0,34,50,3,1,14,0,34,50, + 1,66,0,73,0,34,1,125,0,1, + 34,2,18,97,0,41,47,64,63,40, + 0,18,2,74,45,1,34,0,1,44, + 11,0,11,41,47,63,64,1,0,1, + 56,91,0,49,43,47,41,1,0,2, + 18,1,19,0,43,49,41,47,40,0, + 63,64,1,11,0,1,34,40,59,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -1565,18 +1570,18 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, 0,113,112,0,0,0,0,115,119,120, - 110,121,122,114,123,124,137,133,136,0, + 110,121,122,114,123,124,136,132,135,0, 0,0,0,0,0,125,126,127,128,129, - 130,131,141,132,149,0,0,0,109,171, - 0,174,0,197,111,168,170,0,172,140, - 173,148,0,0,0,163,159,135,169,117, - 182,185,186,187,0,0,151,158,0,175, - 181,0,0,139,152,153,154,155,160,180, - 184,143,144,145,146,147,150,156,157,0, - 162,167,188,116,118,134,138,142,0,161, - 165,0,0,166,176,179,193,0,195,0, - 0,0,0,164,0,177,178,183,0,189, - 190,0,191,192,194,196,0 + 130,0,131,140,148,0,0,0,109,0, + 170,0,173,196,111,167,169,0,171,139, + 172,147,0,0,0,162,158,134,168,117, + 181,184,185,186,0,0,150,157,0,174, + 180,0,0,138,151,152,153,154,159,179, + 183,142,143,144,145,146,149,155,156,0, + 161,166,187,116,118,133,137,141,0,160, + 164,0,0,165,175,178,192,0,194,0, + 0,0,0,163,0,176,177,182,0,188, + 189,0,190,191,193,195,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -1611,11 +1616,11 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface ScopeLhs { public final static char scopeLhs[] = { 77,75,8,77,51,51,75,68,22,65, - 51,42,51,9,9,9,65,51,51,91, + 51,43,51,9,9,9,65,51,51,91, 17,9,8,8,51,51,32,51,126,123, - 122,63,81,51,40,57,6,93,91,10, - 23,8,91,86,85,84,83,82,42,49, - 42 + 122,63,81,51,41,57,6,93,91,10, + 23,8,91,86,85,84,83,82,43,49, + 43 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -1651,24 +1656,24 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public final static char scopeRhs[] = {0, 165,55,0,109,0,167,2,24,0,110, 0,167,2,23,0,167,2,22,0,227, - 108,0,31,158,0,180,202,108,6,179, + 108,0,31,157,0,180,202,108,6,179, 0,111,0,0,177,108,2,170,0,177, - 108,2,0,188,2,0,166,108,0,185, - 0,213,108,55,0,9,109,0,141,49, - 213,108,55,0,69,132,109,0,141,213, - 108,49,55,0,213,108,49,55,0,132, - 109,0,141,49,55,0,141,213,108,55, - 0,141,55,0,147,0,2,0,177,110, - 0,2,110,0,177,108,2,147,0,2, - 0,175,110,0,164,2,0,168,0,180, + 108,2,0,188,2,0,166,108,0,184, + 0,213,108,55,0,9,109,0,140,49, + 213,108,55,0,69,131,109,0,140,213, + 108,49,55,0,213,108,49,55,0,131, + 109,0,140,49,55,0,140,213,108,55, + 0,140,55,0,148,0,2,0,176,110, + 0,2,110,0,177,108,2,148,0,2, + 0,174,110,0,164,2,0,167,0,180, 210,108,6,109,222,68,0,111,0,180, 210,108,6,222,68,0,163,0,112,0, - 221,108,163,0,108,163,0,164,112,0, + 221,108,163,0,108,163,0,163,112,0, 206,108,6,220,109,219,186,0,206,108, - 6,219,186,0,194,0,155,0,154,0, - 153,0,152,0,151,0,126,32,0,77, + 6,219,186,0,194,0,154,0,153,0, + 152,0,151,0,150,0,126,32,0,77, 2,114,110,112,0,126,118,121,2,35, - 0,53,136,0,204,108,6,0,121,96, + 0,53,135,0,204,108,6,0,121,96, 138,0,29,131,0,167,2,0,110,120, 0,167,2,12,0,180,202,108,6,118, 167,2,0,110,3,0,118,0,111,0, @@ -1681,21 +1686,21 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface ScopeState { public final static char scopeState[] = {0, - 1363,0,663,0,3095,1701,3090,0,729,2580, - 2554,2545,2519,2510,2484,2475,2449,2440,2414,2405, - 2379,2370,2344,2335,2309,2300,2274,2265,2239,2230, - 2204,2195,2169,2160,2134,2125,2099,2090,2064,2023, - 1726,1997,1986,1692,1943,1658,1624,0,965,913, - 569,528,2012,1866,1795,2821,1767,2887,0,3067, - 3057,3036,3023,1948,1756,2868,2986,2855,1775,1906, - 1862,2606,1969,2771,2757,2743,2729,2712,2681,2844, - 830,2799,2785,2975,2964,2953,2937,2925,405,2914, - 2903,2890,2028,1574,1541,1508,1475,1442,1409,1376, - 1607,1343,1310,1277,1244,1211,1178,1145,1112,1079, - 1046,1013,980,909,876,652,364,947,726,841, - 794,761,617,544,509,0,472,0,384,421, - 2012,2631,1779,2659,2609,1795,2587,1767,655,1853, - 388,0,530,638,364,421,0 + 833,0,869,0,1991,1902,749,0,1007,2601, + 2575,2566,2540,2531,2505,2496,2470,2461,2435,2426, + 2400,2391,2365,2356,2330,2321,2295,2286,2260,2251, + 2225,2216,2190,2181,2155,2146,2120,2111,2085,2076, + 1762,2050,2039,1727,1996,1664,1629,0,1144,936, + 667,613,1659,3086,1847,2854,1803,2932,0,3090, + 3059,3045,2661,2001,1669,2901,3031,2886,1813,1959, + 1917,2627,2022,2778,2761,2747,2733,2702,1870,2873, + 2862,2806,2792,3020,3009,2998,2980,2969,2851,2958, + 2947,2936,2921,1612,1579,1546,1513,1479,1445,1412, + 1378,1344,1310,1276,1242,1208,1174,1140,1106,1072, + 1038,1004,970,899,865,650,365,937,725,829, + 794,760,616,543,509,0,407,0,520,421, + 1659,2652,653,2680,2630,1847,2608,1803,546,1906, + 436,0,530,637,365,421,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -1703,45 +1708,45 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface InSymb { public final static char inSymb[] = {0, - 0,217,108,140,231,212,189,47,190,186, + 0,217,108,141,231,212,189,47,190,186, 191,70,69,192,68,193,194,108,2,1, - 147,108,6,55,219,197,197,222,197,166, - 150,164,108,147,154,2,224,212,205,196, - 149,108,156,108,165,2,24,23,22,12, + 148,108,6,55,219,197,197,222,197,166, + 147,164,108,148,154,2,224,212,205,196, + 150,108,156,108,165,2,24,23,22,12, 18,17,8,7,4,9,11,10,115,119, 122,120,133,123,135,134,137,136,138,109, - 6,109,6,150,4,166,2,55,108,108, + 6,109,6,147,4,166,2,55,108,108, 71,75,166,204,40,38,41,39,36,29, 27,34,42,33,28,32,37,35,125,6, - 31,30,109,140,108,167,121,163,4,2, + 31,30,109,141,108,167,121,163,4,2, 2,2,2,2,94,80,2,55,82,81, 4,76,77,8,7,89,88,86,85,84, 83,90,9,92,91,96,95,220,108,6, - 108,4,108,108,49,141,108,116,4,177, - 140,108,178,232,6,179,156,149,5,121, + 108,4,147,108,49,140,108,116,4,177, + 141,108,178,232,6,179,156,150,5,121, 108,121,121,121,109,2,2,2,126,2, 2,108,74,165,74,108,203,109,118,108, 2,171,170,167,167,167,167,167,218,121, 120,120,119,119,123,123,122,122,122,122, 134,133,136,135,121,137,6,206,163,207, - 108,210,109,211,108,187,223,108,141,213, + 108,210,109,211,147,108,223,108,140,213, 187,106,105,104,102,103,101,100,99,98, 97,75,2,108,71,108,6,157,110,121, 157,173,121,28,121,121,204,74,71,6, 166,188,108,2,118,118,118,118,118,74, - 108,108,210,180,75,71,187,71,213,49, - 141,4,108,166,108,110,121,110,121,110, - 173,110,118,2,118,118,108,177,108,206, - 221,74,164,180,141,141,202,108,110,121, - 110,110,121,110,110,121,110,173,121,126, - 202,177,71,74,180,71,227,80,55,228, - 118,151,110,110,121,118,151,110,110,121, - 110,121,110,173,110,118,93,180,152,75, - 165,80,55,118,118,151,118,151,110,118, - 118,151,118,151,110,118,151,110,110,121, - 118,173,165,118,118,118,151,118,118,118, - 151,118,118,151,118,151,110,118,118,118, - 118,118,118,151,118 + 108,108,210,180,75,71,108,187,71,213, + 49,140,4,108,166,108,110,121,110,121, + 110,173,110,118,2,118,118,108,177,108, + 206,221,74,164,180,187,140,140,202,108, + 110,121,110,110,121,110,110,121,110,173, + 121,126,202,177,71,74,180,71,227,80, + 55,228,118,151,110,110,121,118,151,110, + 110,121,110,121,110,173,110,118,93,180, + 152,75,165,80,55,118,118,151,118,151, + 110,118,118,151,118,151,110,118,151,110, + 110,121,118,173,165,118,118,118,151,118, + 118,118,151,118,118,151,118,151,110,118, + 118,118,118,118,118,151,118 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -1875,12 +1880,11 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym "shift_expression", "relational_expression", "equality_expression", - "AND_expression", - "exclusive_OR_expression", - "inclusive_OR_expression", - "logical_AND_expression", - "logical_OR_expression", - "conditional_expression", + "and_expression", + "exclusive_or_expression", + "inclusive_or_expression", + "logical_and_expression", + "logical_or_expression", "assignment_expression", "expression_in_statement", "expression_list_actual", @@ -1969,20 +1973,20 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 385, + NUM_STATES = 387, NT_OFFSET = 107, - LA_STATE_OFFSET = 3710, + LA_STATE_OFFSET = 3740, MAX_LA = 2147483647, - NUM_RULES = 363, - NUM_NONTERMINALS = 127, - NUM_SYMBOLS = 234, + NUM_RULES = 364, + NUM_NONTERMINALS = 128, + NUM_SYMBOLS = 235, SEGMENT_SIZE = 8192, - START_STATE = 479, + START_STATE = 850, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 87, EOLT_SYMBOL = 87, - ACCEPT_ACTION = 3322, - ERROR_ACTION = 3347; + ACCEPT_ACTION = 3351, + ERROR_ACTION = 3376; public final static boolean BACKTRACK = true; diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParser.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParser.java index 570dc6feb68..ce1845c68be 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParser.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParser.java @@ -17,13 +17,20 @@ import lpg.lpgjavaruntime.*; import java.util.*; import org.eclipse.cdt.core.dom.ast.*; +import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap; import org.eclipse.cdt.core.dom.lrparser.IParser; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.ITokenCollector; +import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack; +import org.eclipse.cdt.core.parser.IScanner; +import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider; +import org.eclipse.cdt.core.index.IIndex; import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; +import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser; import org.eclipse.cdt.internal.core.dom.parser.c.CNodeFactory; import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction; @@ -37,7 +44,9 @@ import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement; import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnarySizeofExpression; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; -public class UPCSizeofExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser< IASTExpression > +public class UPCSizeofExpressionParser extends PrsStream implements RuleAction, ITokenStream, + ITokenCollector, IParser< IASTExpression > + , ISecondaryParser< IASTExpression > { private static ParseTable prs = new UPCSizeofExpressionParserprs(); private FixedBacktrackingParser btParser; @@ -175,7 +184,11 @@ public class UPCSizeofExpressionParser extends PrsStream implements RuleAction , private UPCParserAction action; private IASTCompletionNode compNode; -public UPCSizeofExpressionParser() { // constructor + +public UPCSizeofExpressionParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Set options) { + initActions(options); + action.initializeTranslationUnit(scanner, builtinBindingsProvider, index); + CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap); } private void initActions(Set options) { @@ -194,10 +207,9 @@ public void addToken(IToken token) { } -public IASTExpression parse(Set options) { +public IASTExpression parse() { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(options); final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse @@ -240,12 +252,12 @@ public void setTokens(List tokens) { addToken(new Token(null, 0, 0, UPCSizeofExpressionParsersym.TK_EOF_TOKEN)); } -public UPCSizeofExpressionParser(IParserActionTokenProvider parser) { // constructor - tokenMap = new TokenMap(UPCSizeofExpressionParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols()); +public UPCSizeofExpressionParser(ITokenStream stream, Set options) { // constructor for creating secondary parser + initActions(options); + tokenMap = new TokenMap(UPCSizeofExpressionParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols()); } - public void ruleAction(int ruleNumber) { switch (ruleNumber) @@ -258,1269 +270,1275 @@ public UPCSizeofExpressionParser(IParserActionTokenProvider parser) { // constr } // - // Rule 12: literal ::= integer + // Rule 2: ::= $Empty // - case 12: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break; + case 2: { action. consumeEmpty(); break; } // - // Rule 13: literal ::= floating + // Rule 13: literal ::= integer // - case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break; + case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break; } // - // Rule 14: literal ::= charconst + // Rule 14: literal ::= floating // - case 14: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break; + case 14: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break; } // - // Rule 15: literal ::= stringlit + // Rule 15: literal ::= charconst // - case 15: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break; + case 15: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break; } // - // Rule 17: primary_expression ::= primary_expression_id + // Rule 16: literal ::= stringlit // - case 17: { action. consumeExpressionID(); break; + case 16: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break; } // - // Rule 18: primary_expression ::= ( expression ) + // Rule 18: primary_expression ::= primary_expression_id // - case 18: { action. consumeExpressionBracketed(); break; + case 18: { action. consumeExpressionID(); break; } // - // Rule 21: postfix_expression ::= postfix_expression [ expression ] + // Rule 19: primary_expression ::= ( expression ) // - case 21: { action. consumeExpressionArraySubscript(); break; + case 19: { action. consumeExpressionBracketed(); break; } // - // Rule 22: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 22: postfix_expression ::= postfix_expression [ expression ] // - case 22: { action. consumeExpressionFunctionCall(); break; + case 22: { action. consumeExpressionArraySubscript(); break; } // - // Rule 23: postfix_expression ::= postfix_expression . member_name + // Rule 23: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 23: { action. consumeExpressionFieldReference(false); break; + case 23: { action. consumeExpressionFunctionCall(); break; } // - // Rule 24: postfix_expression ::= postfix_expression -> member_name + // Rule 24: postfix_expression ::= postfix_expression . member_name // - case 24: { action. consumeExpressionFieldReference(true); break; + case 24: { action. consumeExpressionFieldReference(false); break; } // - // Rule 25: postfix_expression ::= postfix_expression ++ + // Rule 25: postfix_expression ::= postfix_expression -> member_name // - case 25: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; + case 25: { action. consumeExpressionFieldReference(true); break; } // - // Rule 26: postfix_expression ::= postfix_expression -- + // Rule 26: postfix_expression ::= postfix_expression ++ // - case 26: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; + case 26: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 27: postfix_expression ::= ( type_id ) { initializer_list comma_opt } + // Rule 27: postfix_expression ::= postfix_expression -- // - case 27: { action. consumeExpressionTypeIdInitializer(); break; + case 27: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 32: unary_expression ::= ++ unary_expression + // Rule 28: postfix_expression ::= ( type_id ) { initializer_list comma_opt } // - case 32: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; + case 28: { action. consumeExpressionTypeIdInitializer(); break; } // - // Rule 33: unary_expression ::= -- unary_expression + // Rule 33: unary_expression ::= ++ unary_expression // - case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; + case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 34: unary_expression ::= & cast_expression + // Rule 34: unary_expression ::= -- unary_expression // - case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; + case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 35: unary_expression ::= * cast_expression + // Rule 35: unary_expression ::= & cast_expression // - case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; + case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 36: unary_expression ::= + cast_expression + // Rule 36: unary_expression ::= * cast_expression // - case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; + case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 37: unary_expression ::= - cast_expression + // Rule 37: unary_expression ::= + cast_expression // - case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; + case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 38: unary_expression ::= ~ cast_expression + // Rule 38: unary_expression ::= - cast_expression // - case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; + case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 39: unary_expression ::= ! cast_expression + // Rule 39: unary_expression ::= ~ cast_expression // - case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; + case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 40: unary_expression ::= sizeof unary_expression + // Rule 40: unary_expression ::= ! cast_expression // - case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; + case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 42: cast_expression ::= ( type_id ) cast_expression + // Rule 41: unary_expression ::= sizeof unary_expression // - case 42: { action. consumeExpressionCast(IASTCastExpression.op_cast); break; + case 41: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 44: multiplicative_expression ::= multiplicative_expression * cast_expression + // Rule 43: cast_expression ::= ( type_id ) cast_expression // - case 44: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break; + case 43: { action. consumeExpressionCast(IASTCastExpression.op_cast); break; } // - // Rule 45: multiplicative_expression ::= multiplicative_expression / cast_expression + // Rule 45: multiplicative_expression ::= multiplicative_expression * cast_expression // - case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break; + case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break; } // - // Rule 46: multiplicative_expression ::= multiplicative_expression % cast_expression + // Rule 46: multiplicative_expression ::= multiplicative_expression / cast_expression // - case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break; + case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break; } // - // Rule 48: additive_expression ::= additive_expression + multiplicative_expression + // Rule 47: multiplicative_expression ::= multiplicative_expression % cast_expression // - case 48: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break; + case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break; } // - // Rule 49: additive_expression ::= additive_expression - multiplicative_expression + // Rule 49: additive_expression ::= additive_expression + multiplicative_expression // - case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break; + case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break; } // - // Rule 51: shift_expression ::= shift_expression << additive_expression + // Rule 50: additive_expression ::= additive_expression - multiplicative_expression // - case 51: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break; + case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break; } // - // Rule 52: shift_expression ::= shift_expression >> additive_expression + // Rule 52: shift_expression ::= shift_expression << additive_expression // - case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break; + case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break; } // - // Rule 54: relational_expression ::= relational_expression < shift_expression + // Rule 53: shift_expression ::= shift_expression >> additive_expression // - case 54: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break; + case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break; } // - // Rule 55: relational_expression ::= relational_expression > shift_expression + // Rule 55: relational_expression ::= relational_expression < shift_expression // - case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break; + case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break; } // - // Rule 56: relational_expression ::= relational_expression <= shift_expression + // Rule 56: relational_expression ::= relational_expression > shift_expression // - case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break; + case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break; } // - // Rule 57: relational_expression ::= relational_expression >= shift_expression + // Rule 57: relational_expression ::= relational_expression <= shift_expression // - case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break; + case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break; } // - // Rule 59: equality_expression ::= equality_expression == relational_expression + // Rule 58: relational_expression ::= relational_expression >= shift_expression // - case 59: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break; + case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break; } // - // Rule 60: equality_expression ::= equality_expression != relational_expression + // Rule 60: equality_expression ::= equality_expression == relational_expression // - case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break; + case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break; } // - // Rule 62: AND_expression ::= AND_expression & equality_expression + // Rule 61: equality_expression ::= equality_expression != relational_expression // - case 62: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break; + case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break; } // - // Rule 64: exclusive_OR_expression ::= exclusive_OR_expression ^ AND_expression + // Rule 63: and_expression ::= and_expression & equality_expression // - case 64: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break; + case 63: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break; } // - // Rule 66: inclusive_OR_expression ::= inclusive_OR_expression | exclusive_OR_expression + // Rule 65: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 66: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break; + case 65: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break; } // - // Rule 68: logical_AND_expression ::= logical_AND_expression && inclusive_OR_expression + // Rule 67: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 68: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break; + case 67: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break; } // - // Rule 70: logical_OR_expression ::= logical_OR_expression || logical_AND_expression + // Rule 69: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 70: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break; + case 69: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break; } // - // Rule 72: conditional_expression ::= logical_OR_expression ? expression : conditional_expression + // Rule 71: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 72: { action. consumeExpressionConditional(); break; + case 71: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break; } // - // Rule 74: assignment_expression ::= unary_expression = assignment_expression + // Rule 73: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 74: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; + case 73: { action. consumeExpressionConditional(); break; } // - // Rule 75: assignment_expression ::= unary_expression *= assignment_expression + // Rule 75: assignment_expression ::= unary_expression = assignment_expression // - case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break; + case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; } // - // Rule 76: assignment_expression ::= unary_expression /= assignment_expression + // Rule 76: assignment_expression ::= unary_expression *= assignment_expression // - case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break; + case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 77: assignment_expression ::= unary_expression %= assignment_expression + // Rule 77: assignment_expression ::= unary_expression /= assignment_expression // - case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break; + case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break; } // - // Rule 78: assignment_expression ::= unary_expression += assignment_expression + // Rule 78: assignment_expression ::= unary_expression %= assignment_expression // - case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break; + case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break; } // - // Rule 79: assignment_expression ::= unary_expression -= assignment_expression + // Rule 79: assignment_expression ::= unary_expression += assignment_expression // - case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break; + case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break; } // - // Rule 80: assignment_expression ::= unary_expression <<= assignment_expression + // Rule 80: assignment_expression ::= unary_expression -= assignment_expression // - case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break; + case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break; } // - // Rule 81: assignment_expression ::= unary_expression >>= assignment_expression + // Rule 81: assignment_expression ::= unary_expression <<= assignment_expression // - case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break; + case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 82: assignment_expression ::= unary_expression &= assignment_expression + // Rule 82: assignment_expression ::= unary_expression >>= assignment_expression // - case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break; + case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 83: assignment_expression ::= unary_expression ^= assignment_expression + // Rule 83: assignment_expression ::= unary_expression &= assignment_expression // - case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break; + case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 84: assignment_expression ::= unary_expression |= assignment_expression + // Rule 84: assignment_expression ::= unary_expression ^= assignment_expression // - case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break; + case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 87: expression_list ::= expression_list_actual + // Rule 85: assignment_expression ::= unary_expression |= assignment_expression // - case 87: { action. consumeExpressionList(); break; + case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 89: expression_list_opt ::= $Empty + // Rule 88: expression_list ::= expression_list_actual // - case 89: { action. consumeEmpty(); break; + case 88: { action. consumeExpressionList(); break; } // - // Rule 99: statement ::= ERROR_TOKEN + // Rule 90: expression_list_opt ::= $Empty // - case 99: { action. consumeStatementProblem(); break; + case 90: { action. consumeEmpty(); break; } // - // Rule 100: labeled_statement ::= identifier_token : statement + // Rule 100: statement ::= ERROR_TOKEN // - case 100: { action. consumeStatementLabeled(); break; + case 100: { action. consumeStatementProblem(); break; } // - // Rule 101: labeled_statement ::= case constant_expression : statement + // Rule 101: labeled_statement ::= identifier_token : statement // - case 101: { action. consumeStatementCase(); break; + case 101: { action. consumeStatementLabeled(); break; } // - // Rule 102: labeled_statement ::= default : statement + // Rule 102: labeled_statement ::= case constant_expression : statement // - case 102: { action. consumeStatementDefault(); break; + case 102: { action. consumeStatementCase(); break; } // - // Rule 103: compound_statement ::= { } + // Rule 103: labeled_statement ::= default : statement // - case 103: { action. consumeStatementCompoundStatement(false); break; + case 103: { action. consumeStatementDefault(); break; } // - // Rule 104: compound_statement ::= { block_item_list } + // Rule 104: compound_statement ::= { } // - case 104: { action. consumeStatementCompoundStatement(true); break; + case 104: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 108: block_item ::= declaration + // Rule 105: compound_statement ::= { block_item_list } // - case 108: { action. consumeStatementDeclarationWithDisambiguation(); break; + case 105: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 109: expression_statement ::= ; + // Rule 109: block_item ::= declaration // - case 109: { action. consumeStatementNull(); break; + case 109: { action. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 110: expression_statement ::= expression_in_statement ; + // Rule 110: expression_statement ::= ; // - case 110: { action. consumeStatementExpression(); break; + case 110: { action. consumeStatementNull(); break; } // - // Rule 111: selection_statement ::= if ( expression ) statement + // Rule 111: expression_statement ::= expression_in_statement ; // - case 111: { action. consumeStatementIf(false); break; + case 111: { action. consumeStatementExpression(); break; } // - // Rule 112: selection_statement ::= if ( expression ) statement else statement + // Rule 112: selection_statement ::= if ( expression ) statement // - case 112: { action. consumeStatementIf(true); break; + case 112: { action. consumeStatementIf(false); break; } // - // Rule 113: selection_statement ::= switch ( expression ) statement + // Rule 113: selection_statement ::= if ( expression ) statement else statement // - case 113: { action. consumeStatementSwitch(); break; + case 113: { action. consumeStatementIf(true); break; } // - // Rule 115: expression_opt ::= $Empty + // Rule 114: selection_statement ::= switch ( expression ) statement // - case 115: { action. consumeEmpty(); break; + case 114: { action. consumeStatementSwitch(); break; } // - // Rule 116: iteration_statement ::= do statement while ( expression ) ; + // Rule 116: expression_opt ::= $Empty // - case 116: { action. consumeStatementDoLoop(); break; + case 116: { action. consumeEmpty(); break; } // - // Rule 117: iteration_statement ::= while ( expression ) statement + // Rule 117: iteration_statement ::= do statement while ( expression ) ; // - case 117: { action. consumeStatementWhileLoop(); break; + case 117: { action. consumeStatementDoLoop(); break; } // - // Rule 118: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement + // Rule 118: iteration_statement ::= while ( expression ) statement // - case 118: { action. consumeStatementForLoop(); break; + case 118: { action. consumeStatementWhileLoop(); break; } // - // Rule 119: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement + // Rule 119: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement // case 119: { action. consumeStatementForLoop(); break; } // - // Rule 120: jump_statement ::= goto identifier_token ; + // Rule 120: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement // - case 120: { action. consumeStatementGoto(); break; + case 120: { action. consumeStatementForLoop(); break; } // - // Rule 121: jump_statement ::= continue ; + // Rule 121: jump_statement ::= goto identifier_token ; // - case 121: { action. consumeStatementContinue(); break; + case 121: { action. consumeStatementGoto(); break; } // - // Rule 122: jump_statement ::= break ; + // Rule 122: jump_statement ::= continue ; // - case 122: { action. consumeStatementBreak(); break; + case 122: { action. consumeStatementContinue(); break; } // - // Rule 123: jump_statement ::= return ; + // Rule 123: jump_statement ::= break ; // - case 123: { action. consumeStatementReturn(false); break; + case 123: { action. consumeStatementBreak(); break; } // - // Rule 124: jump_statement ::= return expression ; + // Rule 124: jump_statement ::= return ; // - case 124: { action. consumeStatementReturn(true); break; + case 124: { action. consumeStatementReturn(false); break; } // - // Rule 125: declaration ::= declaration_specifiers ; + // Rule 125: jump_statement ::= return expression ; // - case 125: { action. consumeDeclarationSimple(false); break; + case 125: { action. consumeStatementReturn(true); break; } // - // Rule 126: declaration ::= declaration_specifiers init_declarator_list ; + // Rule 126: declaration ::= declaration_specifiers ; // - case 126: { action. consumeDeclarationSimple(true); break; + case 126: { action. consumeDeclarationSimple(false); break; } // - // Rule 127: declaration_specifiers ::= simple_declaration_specifiers + // Rule 127: declaration ::= declaration_specifiers init_declarator_list ; // - case 127: { action. consumeDeclarationSpecifiersSimple(); break; + case 127: { action. consumeDeclarationSimple(true); break; } // - // Rule 128: declaration_specifiers ::= struct_or_union_declaration_specifiers + // Rule 128: declaration_specifiers ::= simple_declaration_specifiers // - case 128: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; + case 128: { action. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 129: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 129: declaration_specifiers ::= struct_or_union_declaration_specifiers // case 129: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; } // - // Rule 130: declaration_specifiers ::= enum_declaration_specifiers + // Rule 130: declaration_specifiers ::= elaborated_declaration_specifiers // case 130: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; } // - // Rule 131: declaration_specifiers ::= typdef_name_declaration_specifiers + // Rule 131: declaration_specifiers ::= enum_declaration_specifiers // - case 131: { action. consumeDeclarationSpecifiersTypedefName(); break; + case 131: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; } // - // Rule 156: init_declarator ::= complete_declarator = initializer + // Rule 132: declaration_specifiers ::= typdef_name_declaration_specifiers // - case 156: { action. consumeDeclaratorWithInitializer(true); break; + case 132: { action. consumeDeclarationSpecifiersTypedefName(); break; } // - // Rule 158: storage_class_specifier ::= storage_class_specifier_token + // Rule 157: init_declarator ::= complete_declarator = initializer // - case 158: { action. consumeToken(); break; + case 157: { action. consumeDeclaratorWithInitializer(true); break; } // - // Rule 164: simple_type_specifier ::= simple_type_specifier_token + // Rule 159: storage_class_specifier ::= storage_class_specifier_token // - case 164: { action. consumeToken(); break; + case 159: { action. consumeToken(); break; } // - // Rule 177: type_name_specifier ::= identifier_token + // Rule 165: simple_type_specifier ::= simple_type_specifier_token // - case 177: { action. consumeToken(); break; + case 165: { action. consumeToken(); break; } // - // Rule 178: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { struct_declaration_list_opt } + // Rule 178: type_name_specifier ::= identifier_token // - case 178: { action. consumeTypeSpecifierComposite(false); break; + case 178: { action. consumeToken(); break; } // - // Rule 179: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { struct_declaration_list_opt } + // Rule 179: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { struct_declaration_list_opt } // - case 179: { action. consumeTypeSpecifierComposite(true); break; + case 179: { action. consumeTypeSpecifierComposite(false); break; } // - // Rule 184: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token + // Rule 180: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { struct_declaration_list_opt } // - case 184: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break; + case 180: { action. consumeTypeSpecifierComposite(true); break; } // - // Rule 185: elaborated_specifier ::= union elaborated_specifier_hook identifier_token + // Rule 185: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token // - case 185: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break; + case 185: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break; } // - // Rule 186: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token + // Rule 186: elaborated_specifier ::= union elaborated_specifier_hook identifier_token // - case 186: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break; + case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break; } // - // Rule 192: struct_declaration ::= specifier_qualifier_list struct_declarator_list ; + // Rule 187: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token // - case 192: { action. consumeStructDeclaration(true); break; + case 187: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break; } // - // Rule 193: struct_declaration ::= specifier_qualifier_list ; + // Rule 193: struct_declaration ::= specifier_qualifier_list struct_declarator_list ; // - case 193: { action. consumeStructDeclaration(false); break; + case 193: { action. consumeStructDeclaration(true); break; } // - // Rule 194: struct_declaration ::= ERROR_TOKEN + // Rule 194: struct_declaration ::= specifier_qualifier_list ; // - case 194: { action. consumeDeclarationProblem(); break; + case 194: { action. consumeStructDeclaration(false); break; } // - // Rule 200: struct_declarator ::= : constant_expression + // Rule 195: struct_declaration ::= ERROR_TOKEN // - case 200: { action. consumeBitField(false); break; + case 195: { action. consumeDeclarationProblem(); break; } // - // Rule 201: struct_declarator ::= declarator : constant_expression + // Rule 201: struct_declarator ::= : constant_expression // - case 201: { action. consumeBitField(true); break; + case 201: { action. consumeBitField(false); break; } // - // Rule 202: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } + // Rule 202: struct_declarator ::= declarator : constant_expression // - case 202: { action. consumeTypeSpecifierEnumeration(false); break; + case 202: { action. consumeBitField(true); break; } // - // Rule 203: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } + // Rule 203: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } // - case 203: { action. consumeTypeSpecifierEnumeration(true); break; + case 203: { action. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 209: enumerator ::= identifier_token + // Rule 204: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } // - case 209: { action. consumeEnumerator(false); break; + case 204: { action. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 210: enumerator ::= identifier_token = constant_expression + // Rule 210: enumerator ::= identifier_token // - case 210: { action. consumeEnumerator(true); break; + case 210: { action. consumeEnumerator(false); break; } // - // Rule 211: type_qualifier ::= type_qualifier_token + // Rule 211: enumerator ::= identifier_token = constant_expression // - case 211: { action. consumeToken(); break; + case 211: { action. consumeEnumerator(true); break; } // - // Rule 215: function_specifier ::= inline + // Rule 212: type_qualifier ::= type_qualifier_token // - case 215: { action. consumeToken(); break; + case 212: { action. consumeToken(); break; } // - // Rule 217: declarator ::= pointer_seq direct_declarator + // Rule 216: function_specifier ::= inline // - case 217: { action. consumeDeclaratorWithPointer(true); break; + case 216: { action. consumeToken(); break; } // - // Rule 222: basic_direct_declarator ::= declarator_id_name + // Rule 218: declarator ::= pointer_seq direct_declarator // - case 222: { action. consumeDirectDeclaratorIdentifier(); break; + case 218: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 223: basic_direct_declarator ::= ( declarator ) + // Rule 223: basic_direct_declarator ::= declarator_id_name // - case 223: { action. consumeDirectDeclaratorBracketed(); break; + case 223: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 224: declarator_id_name ::= identifier + // Rule 224: basic_direct_declarator ::= ( declarator ) // - case 224: { action. consumeIdentifierName(); break; + case 224: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 225: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 225: declarator_id_name ::= identifier // - case 225: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 225: { action. consumeIdentifierName(); break; } // - // Rule 226: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 226: array_direct_declarator ::= basic_direct_declarator array_modifier // case 226: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 228: function_direct_declarator ::= basic_direct_declarator ( parameter_type_list ) + // Rule 227: array_direct_declarator ::= array_direct_declarator array_modifier // - case 228: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; + case 227: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 229: function_direct_declarator ::= basic_direct_declarator ( ) + // Rule 229: function_direct_declarator ::= basic_direct_declarator ( parameter_type_list ) // - case 229: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; + case 229: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; } // - // Rule 231: function_declarator ::= pointer_seq function_direct_declarator + // Rule 230: function_direct_declarator ::= basic_direct_declarator ( ) // - case 231: { action. consumeDeclaratorWithPointer(true); break; + case 230: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; } // - // Rule 232: knr_direct_declarator ::= basic_direct_declarator ( identifier_list ) + // Rule 232: function_declarator ::= pointer_seq function_direct_declarator // - case 232: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break; + case 232: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 234: knr_function_declarator ::= pointer_seq knr_direct_declarator + // Rule 233: knr_direct_declarator ::= basic_direct_declarator ( identifier_list ) // - case 234: { action. consumeDeclaratorWithPointer(true); break; + case 233: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break; } // - // Rule 235: identifier_list ::= identifier + // Rule 235: knr_function_declarator ::= pointer_seq knr_direct_declarator // - case 235: { action. consumeIdentifierKnR(); break; + case 235: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 236: identifier_list ::= identifier_list , identifier + // Rule 236: identifier_list ::= identifier // case 236: { action. consumeIdentifierKnR(); break; } // - // Rule 237: array_modifier ::= [ ] + // Rule 237: identifier_list ::= identifier_list , identifier // - case 237: { action. consumeDirectDeclaratorArrayModifier(false); break; + case 237: { action. consumeIdentifierKnR(); break; } // - // Rule 238: array_modifier ::= [ array_modifier_type_qualifiers ] + // Rule 238: array_modifier ::= [ ] // - case 238: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break; + case 238: { action. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 239: array_modifier ::= [ assignment_expression ] + // Rule 239: array_modifier ::= [ array_modifier_type_qualifiers ] // - case 239: { action. consumeDirectDeclaratorArrayModifier(true); break; + case 239: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break; } // - // Rule 240: array_modifier ::= [ array_modifier_type_qualifiers assignment_expression ] + // Rule 240: array_modifier ::= [ assignment_expression ] // - case 240: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break; + case 240: { action. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 241: array_modifier ::= [ static assignment_expression ] + // Rule 241: array_modifier ::= [ array_modifier_type_qualifiers assignment_expression ] // - case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break; + case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break; } // - // Rule 242: array_modifier ::= [ static array_modifier_type_qualifiers assignment_expression ] + // Rule 242: array_modifier ::= [ static assignment_expression ] // - case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; + case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break; } // - // Rule 243: array_modifier ::= [ array_modifier_type_qualifiers static assignment_expression ] + // Rule 243: array_modifier ::= [ static array_modifier_type_qualifiers assignment_expression ] // case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; } // - // Rule 244: array_modifier ::= [ * ] + // Rule 244: array_modifier ::= [ array_modifier_type_qualifiers static assignment_expression ] // - case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break; + case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; } // - // Rule 245: array_modifier ::= [ array_modifier_type_qualifiers * ] + // Rule 245: array_modifier ::= [ * ] // - case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break; + case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break; } // - // Rule 247: pointer_seq ::= pointer_hook * + // Rule 246: array_modifier ::= [ array_modifier_type_qualifiers * ] // - case 247: { action. consumePointer(); break; + case 246: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break; } // - // Rule 248: pointer_seq ::= pointer_seq pointer_hook * + // Rule 248: pointer_seq ::= pointer_hook * pointer_hook // case 248: { action. consumePointer(); break; } // - // Rule 249: pointer_seq ::= pointer_hook * type_qualifier_list + // Rule 249: pointer_seq ::= pointer_seq pointer_hook * pointer_hook // - case 249: { action. consumePointerTypeQualifierList(); break; + case 249: { action. consumePointer(); break; } // - // Rule 250: pointer_seq ::= pointer_seq pointer_hook * type_qualifier_list + // Rule 250: pointer_seq ::= pointer_hook * pointer_hook type_qualifier_list // case 250: { action. consumePointerTypeQualifierList(); break; } // - // Rule 254: parameter_type_list ::= parameter_list + // Rule 251: pointer_seq ::= pointer_seq pointer_hook * pointer_hook type_qualifier_list // - case 254: { action. consumeEmpty(); break; + case 251: { action. consumePointerTypeQualifierList(); break; } // - // Rule 255: parameter_type_list ::= parameter_list , ... + // Rule 255: parameter_type_list ::= parameter_list // - case 255: { action. consumePlaceHolder(); break; + case 255: { action. consumeEmpty(); break; } // - // Rule 256: parameter_type_list ::= ... + // Rule 256: parameter_type_list ::= parameter_list , ... // case 256: { action. consumePlaceHolder(); break; } // - // Rule 259: parameter_declaration ::= declaration_specifiers complete_parameter_declarator + // Rule 257: parameter_type_list ::= ... // - case 259: { action. consumeParameterDeclaration(); break; + case 257: { action. consumePlaceHolder(); break; } // - // Rule 260: parameter_declaration ::= declaration_specifiers + // Rule 260: parameter_declaration ::= declaration_specifiers complete_parameter_declarator // - case 260: { action. consumeParameterDeclarationWithoutDeclarator(); break; + case 260: { action. consumeParameterDeclaration(); break; } // - // Rule 263: type_id ::= specifier_qualifier_list + // Rule 261: parameter_declaration ::= declaration_specifiers // - case 263: { action. consumeTypeId(false); break; + case 261: { action. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 264: type_id ::= specifier_qualifier_list abstract_declarator + // Rule 264: type_id ::= specifier_qualifier_list // - case 264: { action. consumeTypeId(true); break; + case 264: { action. consumeTypeId(false); break; } // - // Rule 266: abstract_declarator ::= pointer_seq + // Rule 265: type_id ::= specifier_qualifier_list abstract_declarator // - case 266: { action. consumeDeclaratorWithPointer(false); break; + case 265: { action. consumeTypeId(true); break; } // - // Rule 267: abstract_declarator ::= pointer_seq direct_abstract_declarator + // Rule 267: abstract_declarator ::= pointer_seq // case 267: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 271: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 268: abstract_declarator ::= pointer_seq direct_abstract_declarator // - case 271: { action. consumeDirectDeclaratorBracketed(); break; + case 268: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 272: array_direct_abstract_declarator ::= array_modifier + // Rule 272: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 272: { action. consumeDirectDeclaratorArrayDeclarator(false); break; + case 272: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 273: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 273: array_direct_abstract_declarator ::= array_modifier // - case 273: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 273: { action. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 274: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 274: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // case 274: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 275: function_direct_abstract_declarator ::= ( ) + // Rule 275: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 275: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break; + case 275: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 276: function_direct_abstract_declarator ::= ( ) + // + case 276: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break; } // - // Rule 276: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( ) + // Rule 277: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( ) // - case 276: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; + case 277: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; } // - // Rule 277: function_direct_abstract_declarator ::= ( parameter_type_list ) + // Rule 278: function_direct_abstract_declarator ::= ( parameter_type_list ) // - case 277: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break; + case 278: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break; } // - // Rule 278: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_type_list ) + // Rule 279: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_type_list ) // - case 278: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; + case 279: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; } // - // Rule 279: initializer ::= assignment_expression + // Rule 280: initializer ::= assignment_expression // - case 279: { action. consumeInitializer(); break; + case 280: { action. consumeInitializer(); break; } // - // Rule 280: initializer ::= start_initializer_list { initializer_list comma_opt } end_initializer_list - // - case 280: { action. consumeInitializerList(); break; - } - - // - // Rule 281: initializer ::= { } + // Rule 281: initializer ::= start_initializer_list { initializer_list comma_opt } end_initializer_list // case 281: { action. consumeInitializerList(); break; } // - // Rule 282: start_initializer_list ::= $Empty + // Rule 282: initializer ::= { } // - case 282: { action. initializerListStart(); break; + case 282: { action. consumeInitializerList(); break; } // - // Rule 283: end_initializer_list ::= $Empty + // Rule 283: start_initializer_list ::= $Empty // - case 283: { action. initializerListEnd(); break; + case 283: { action. initializerListStart(); break; } // - // Rule 288: designated_initializer ::= designation = initializer + // Rule 284: end_initializer_list ::= $Empty // - case 288: { action. consumeInitializerDesignated(); break; + case 284: { action. initializerListEnd(); break; } // - // Rule 292: designator_base ::= [ constant_expression ] + // Rule 289: designated_initializer ::= designation = initializer // - case 292: { action. consumeDesignatorArray(); break; + case 289: { action. consumeInitializerDesignated(); break; } // - // Rule 293: designator_base ::= . identifier_token + // Rule 293: designator_base ::= [ constant_expression ] // - case 293: { action. consumeDesignatorField(); break; + case 293: { action. consumeDesignatorArray(); break; } // - // Rule 294: designator ::= [ constant_expression ] + // Rule 294: designator_base ::= . identifier_token // - case 294: { action. consumeDesignatorArray(); break; + case 294: { action. consumeDesignatorField(); break; } // - // Rule 295: designator ::= . identifier_token + // Rule 295: designator ::= [ constant_expression ] // - case 295: { action. consumeDesignatorField(); break; + case 295: { action. consumeDesignatorArray(); break; } // - // Rule 296: translation_unit ::= external_declaration_list + // Rule 296: designator ::= . identifier_token // - case 296: { action. consumeTranslationUnit(); break; + case 296: { action. consumeDesignatorField(); break; + } + + // + // Rule 297: translation_unit ::= external_declaration_list + // + case 297: { action. consumeTranslationUnit(); break; } // - // Rule 297: translation_unit ::= $Empty + // Rule 298: translation_unit ::= $Empty // - case 297: { action. consumeTranslationUnit(); break; + case 298: { action. consumeTranslationUnit(); break; } // - // Rule 302: external_declaration ::= ; + // Rule 303: external_declaration ::= ; // - case 302: { action. consumeDeclarationEmpty(); break; + case 303: { action. consumeDeclarationEmpty(); break; } // - // Rule 303: external_declaration ::= ERROR_TOKEN + // Rule 304: external_declaration ::= ERROR_TOKEN // - case 303: { action. consumeDeclarationProblem(); break; + case 304: { action. consumeDeclarationProblem(); break; } // - // Rule 306: function_definition ::= declaration_specifiers function_declarator function_body + // Rule 307: function_definition ::= declaration_specifiers function_declarator function_body // - case 306: { action. consumeFunctionDefinition(true); break; + case 307: { action. consumeFunctionDefinition(true); break; } // - // Rule 307: function_definition ::= function_declarator function_body + // Rule 308: function_definition ::= function_declarator function_body // - case 307: { action. consumeFunctionDefinition(false); break; + case 308: { action. consumeFunctionDefinition(false); break; } // - // Rule 308: function_definition ::= declaration_specifiers knr_function_declarator declaration_list compound_statement + // Rule 309: function_definition ::= declaration_specifiers knr_function_declarator declaration_list compound_statement // - case 308: { action. consumeFunctionDefinitionKnR(); break; + case 309: { action. consumeFunctionDefinitionKnR(); break; } // - // Rule 309: function_body ::= { } + // Rule 310: function_body ::= { } // - case 309: { action. consumeStatementCompoundStatement(false); break; + case 310: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 310: function_body ::= { block_item_list } + // Rule 311: function_body ::= { block_item_list } // - case 310: { action. consumeStatementCompoundStatement(true); break; + case 311: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 312: no_sizeof_type_id_start ::= ERROR_TOKEN + // Rule 313: no_sizeof_type_id_start ::= ERROR_TOKEN // - case 312: { action. consumeEmpty(); break; + case 313: { action. consumeEmpty(); break; } // - // Rule 313: literal ::= MYTHREAD + // Rule 314: literal ::= MYTHREAD // - case 313: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break; + case 314: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break; } // - // Rule 314: literal ::= THREADS + // Rule 315: literal ::= THREADS // - case 314: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break; + case 315: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break; } // - // Rule 315: literal ::= UPC_MAX_BLOCKSIZE + // Rule 316: literal ::= UPC_MAX_BLOCKSIZE // - case 315: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break; + case 316: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break; } // - // Rule 316: unary_expression ::= upc_localsizeof unary_expression + // Rule 317: unary_expression ::= upc_localsizeof unary_expression // - case 316: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); break; + case 317: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); break; } // - // Rule 317: unary_expression ::= upc_blocksizeof unary_expression + // Rule 318: unary_expression ::= upc_blocksizeof unary_expression // - case 317: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; + case 318: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; } // - // Rule 318: unary_expression ::= upc_elemsizeof unary_expression + // Rule 319: unary_expression ::= upc_elemsizeof unary_expression // - case 318: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; + case 319: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; } // - // Rule 322: shared_type_qualifier ::= shared - // - case 322: { action. consumeToken(); break; - } - - // - // Rule 323: reference_type_qualifier ::= relaxed + // Rule 323: shared_type_qualifier ::= shared // case 323: { action. consumeToken(); break; } // - // Rule 324: reference_type_qualifier ::= strict + // Rule 324: reference_type_qualifier ::= relaxed // case 324: { action. consumeToken(); break; } // - // Rule 325: layout_qualifier ::= [ constant_expression ] + // Rule 325: reference_type_qualifier ::= strict // - case 325: { action. consumeLayoutQualifier(true, false); break; + case 325: { action. consumeToken(); break; } // - // Rule 326: layout_qualifier ::= [ * ] + // Rule 326: layout_qualifier ::= [ constant_expression ] // - case 326: { action. consumeLayoutQualifier(false, true); break; + case 326: { action. consumeLayoutQualifier(true, false); break; } // - // Rule 327: layout_qualifier ::= [ ] + // Rule 327: layout_qualifier ::= [ * ] // - case 327: { action. consumeLayoutQualifier(false, false); break; + case 327: { action. consumeLayoutQualifier(false, true); break; } // - // Rule 329: synchronization_statement ::= upc_notify expression ; + // Rule 328: layout_qualifier ::= [ ] // - case 329: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break; + case 328: { action. consumeLayoutQualifier(false, false); break; } // - // Rule 330: synchronization_statement ::= upc_notify ; + // Rule 330: synchronization_statement ::= upc_notify expression ; // - case 330: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break; + case 330: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break; } // - // Rule 331: synchronization_statement ::= upc_wait expression ; + // Rule 331: synchronization_statement ::= upc_notify ; // - case 331: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break; + case 331: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break; } // - // Rule 332: synchronization_statement ::= upc_wait ; + // Rule 332: synchronization_statement ::= upc_wait expression ; // - case 332: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break; + case 332: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break; } // - // Rule 333: synchronization_statement ::= upc_barrier expression ; + // Rule 333: synchronization_statement ::= upc_wait ; // - case 333: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break; + case 333: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break; } // - // Rule 334: synchronization_statement ::= upc_barrier ; + // Rule 334: synchronization_statement ::= upc_barrier expression ; // - case 334: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break; + case 334: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break; } // - // Rule 335: synchronization_statement ::= upc_fence ; + // Rule 335: synchronization_statement ::= upc_barrier ; // - case 335: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break; + case 335: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break; } // - // Rule 336: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement + // Rule 336: synchronization_statement ::= upc_fence ; // - case 336: { action. consumeStatementUPCForallLoop(true, true, true, true); break; + case 336: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break; } // - // Rule 337: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement + // Rule 337: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement // - case 337: { action. consumeStatementUPCForallLoop(true, true, true, false); break; + case 337: { action. consumeStatementUPCForallLoop(true, true, true, true); break; } // - // Rule 338: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement + // Rule 338: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement // - case 338: { action. consumeStatementUPCForallLoop(true, true, false, true); break; + case 338: { action. consumeStatementUPCForallLoop(true, true, true, false); break; } // - // Rule 339: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement + // Rule 339: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement // - case 339: { action. consumeStatementUPCForallLoop(true, true, false, false); break; + case 339: { action. consumeStatementUPCForallLoop(true, true, false, true); break; } // - // Rule 340: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement + // Rule 340: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement // - case 340: { action. consumeStatementUPCForallLoop(true, false, true, true); break; + case 340: { action. consumeStatementUPCForallLoop(true, true, false, false); break; } // - // Rule 341: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement + // Rule 341: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement // - case 341: { action. consumeStatementUPCForallLoop(true, false, true, false); break; + case 341: { action. consumeStatementUPCForallLoop(true, false, true, true); break; } // - // Rule 342: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement + // Rule 342: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement // - case 342: { action. consumeStatementUPCForallLoop(true, false, false, true); break; + case 342: { action. consumeStatementUPCForallLoop(true, false, true, false); break; } // - // Rule 343: iteration_statement ::= upc_forall ( expression ; ; ; ) statement + // Rule 343: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement // - case 343: { action. consumeStatementUPCForallLoop(true, false, false, false); break; + case 343: { action. consumeStatementUPCForallLoop(true, false, false, true); break; } // - // Rule 344: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement + // Rule 344: iteration_statement ::= upc_forall ( expression ; ; ; ) statement // - case 344: { action. consumeStatementUPCForallLoop(false, true, true, true); break; + case 344: { action. consumeStatementUPCForallLoop(true, false, false, false); break; } // - // Rule 345: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement + // Rule 345: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement // - case 345: { action. consumeStatementUPCForallLoop(false, true, true, false); break; + case 345: { action. consumeStatementUPCForallLoop(false, true, true, true); break; } // - // Rule 346: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement + // Rule 346: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement // - case 346: { action. consumeStatementUPCForallLoop(false, true, false, true); break; + case 346: { action. consumeStatementUPCForallLoop(false, true, true, false); break; } // - // Rule 347: iteration_statement ::= upc_forall ( ; expression ; ; ) statement + // Rule 347: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement // - case 347: { action. consumeStatementUPCForallLoop(false, true, false, false); break; + case 347: { action. consumeStatementUPCForallLoop(false, true, false, true); break; } // - // Rule 348: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement + // Rule 348: iteration_statement ::= upc_forall ( ; expression ; ; ) statement // - case 348: { action. consumeStatementUPCForallLoop(false, false, true, true); break; + case 348: { action. consumeStatementUPCForallLoop(false, true, false, false); break; } // - // Rule 349: iteration_statement ::= upc_forall ( ; ; expression ; ) statement + // Rule 349: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement // - case 349: { action. consumeStatementUPCForallLoop(false, false, true, false); break; + case 349: { action. consumeStatementUPCForallLoop(false, false, true, true); break; } // - // Rule 350: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement + // Rule 350: iteration_statement ::= upc_forall ( ; ; expression ; ) statement // - case 350: { action. consumeStatementUPCForallLoop(false, false, false, true); break; + case 350: { action. consumeStatementUPCForallLoop(false, false, true, false); break; } // - // Rule 351: iteration_statement ::= upc_forall ( ; ; ; ) statement + // Rule 351: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement // - case 351: { action. consumeStatementUPCForallLoop(false, false, false, false); break; + case 351: { action. consumeStatementUPCForallLoop(false, false, false, true); break; } // - // Rule 352: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement + // Rule 352: iteration_statement ::= upc_forall ( ; ; ; ) statement // - case 352: { action. consumeStatementUPCForallLoop(true, true, true, true); break; + case 352: { action. consumeStatementUPCForallLoop(false, false, false, false); break; } // - // Rule 353: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement + // Rule 353: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement // - case 353: { action. consumeStatementUPCForallLoop(true, true, true, false); break; + case 353: { action. consumeStatementUPCForallLoop(true, true, true, true); break; } // - // Rule 354: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement + // Rule 354: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement // - case 354: { action. consumeStatementUPCForallLoop(true, true, false, true); break; + case 354: { action. consumeStatementUPCForallLoop(true, true, true, false); break; } // - // Rule 355: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement + // Rule 355: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement // - case 355: { action. consumeStatementUPCForallLoop(true, true, false, false); break; + case 355: { action. consumeStatementUPCForallLoop(true, true, false, true); break; } // - // Rule 356: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement + // Rule 356: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement // - case 356: { action. consumeStatementUPCForallLoop(true, false, true, true); break; + case 356: { action. consumeStatementUPCForallLoop(true, true, false, false); break; } // - // Rule 357: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement + // Rule 357: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement // - case 357: { action. consumeStatementUPCForallLoop(true, false, true, false); break; + case 357: { action. consumeStatementUPCForallLoop(true, false, true, true); break; } // - // Rule 358: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement + // Rule 358: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement // - case 358: { action. consumeStatementUPCForallLoop(true, false, false, true); break; + case 358: { action. consumeStatementUPCForallLoop(true, false, true, false); break; } // - // Rule 359: iteration_statement ::= upc_forall ( declaration ; ; ) statement + // Rule 359: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement // - case 359: { action. consumeStatementUPCForallLoop(true, false, false, false); break; + case 359: { action. consumeStatementUPCForallLoop(true, false, false, true); break; } // - // Rule 361: affinity ::= continue + // Rule 360: iteration_statement ::= upc_forall ( declaration ; ; ) statement // - case 361: { action. consumeToken(); break; + case 360: { action. consumeStatementUPCForallLoop(true, false, false, false); break; + } + + // + // Rule 362: affinity ::= continue + // + case 362: { action. consumeToken(); break; } diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParserprs.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParserprs.java index 85a0e37b134..bc26316607e 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParserprs.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParserprs.java @@ -35,196 +35,196 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseCheck { public final static short baseCheck[] = {0, - 0,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3,1,1, - 4,4,3,3,2,2,8,1,0,1, - 1,2,2,2,2,2,2,2,2,2, - 1,4,1,3,3,3,1,3,3,1, - 3,3,1,3,3,3,3,1,3,3, - 1,3,1,3,1,3,1,3,1,3, - 1,5,1,3,3,3,3,3,3,3, - 3,3,3,3,1,1,2,1,0,1, - 3,1,1,1,1,1,1,1,1,3, - 4,3,2,4,1,2,1,1,1,2, - 5,7,5,1,0,7,5,9,8,3, - 2,2,2,3,2,4,2,2,2,2, - 2,1,1,1,1,2,1,2,2,2, - 1,2,2,1,2,2,1,2,2,1, - 2,2,1,3,1,3,1,1,1,1, + 0,0,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,3,1, + 1,4,4,3,3,2,2,8,1,0, + 1,1,2,2,2,2,2,2,2,2, + 2,1,4,1,3,3,3,1,3,3, + 1,3,3,1,3,3,3,3,1,3, + 3,1,3,1,3,1,3,1,3,1, + 3,1,5,1,3,3,3,3,3,3, + 3,3,3,3,3,1,1,2,1,0, + 1,3,1,1,1,1,1,1,1,1, + 3,4,3,2,4,1,2,1,1,1, + 2,5,7,5,1,0,7,5,9,8, + 3,2,2,2,3,2,4,2,2,2, + 2,2,1,1,1,1,2,1,2,2, + 2,1,2,2,1,2,2,1,2,2, + 1,2,2,1,3,1,3,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,6,8,0, - 0,1,1,3,3,3,0,1,0,1, - 2,4,2,1,1,1,3,1,1,2, - 3,7,8,0,1,0,1,3,1,3, - 1,1,1,1,1,1,3,1,1,1, - 1,1,3,1,2,2,1,5,3,1, - 3,5,1,3,1,3,2,4,3,5, - 4,6,6,3,5,1,2,3,4,5, - 0,1,2,1,3,1,1,3,2,1, - 1,1,1,2,1,2,3,1,1,1, - 3,1,2,2,2,3,4,5,1,7, - 3,0,0,1,1,3,3,4,1,1, - 2,3,2,3,2,1,0,1,2,1, - 1,1,1,1,2,4,3,6,2,4, - 1,1,1,1,1,2,2,2,1,1, - 2,1,1,1,3,3,2,1,3,2, - 3,2,3,2,2,11,10,10,9,10, - 9,9,8,10,9,9,8,9,8,8, - 7,10,9,9,8,9,8,8,7,1, - 1,-39,0,0,0,0,0,0,0,0, - 0,0,-2,0,0,0,0,0,0,0, - 0,0,-4,0,0,0,0,-84,-77,-17, + 1,1,1,1,1,1,1,1,6,8, + 0,0,1,1,3,3,3,0,1,0, + 1,2,4,2,1,1,1,3,1,1, + 2,3,7,8,0,1,0,1,3,1, + 3,1,1,1,1,1,1,3,1,1, + 1,1,1,3,1,2,2,1,5,3, + 1,3,5,1,3,1,3,2,4,3, + 5,4,6,6,3,5,1,3,4,5, + 6,0,1,2,1,3,1,1,3,2, + 1,1,1,1,2,1,2,3,1,1, + 1,3,1,2,2,2,3,4,5,1, + 7,3,0,0,1,1,3,3,4,1, + 1,2,3,2,3,2,1,0,1,2, + 1,1,1,1,1,2,4,3,6,2, + 4,1,1,1,1,1,2,2,2,1, + 1,2,1,1,1,3,3,2,1,3, + 2,3,2,3,2,2,11,10,10,9, + 10,9,9,8,10,9,9,8,9,8, + 8,7,10,9,9,8,9,8,8,7, + 1,1,-39,0,0,0,0,0,0,0, + 0,0,0,-163,0,0,0,0,0,0, + 0,0,0,-2,0,0,0,0,-119,0, + -4,-77,0,0,0,0,-57,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-32,0,0,-144,0,0, + -84,-80,-120,0,0,0,0,0,0,-9, + 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,-125,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-19,-78, - -80,-81,-36,0,0,0,0,0,-9,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-10,0,0,0, - 0,0,0,0,0,-119,0,-20,0,-191, + 0,0,0,0,0,-191,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-58,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-114,0,0,0, + 0,0,0,0,0,0,0,0,0,-17, + 0,-162,0,0,-121,0,0,0,-5,0, + 0,0,0,0,0,0,-85,-33,0,0, -164,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-52,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-134,0,-37,-21,-108, - 0,-114,0,0,0,0,0,0,0,0, - 0,-120,0,0,-22,0,-70,0,0,0, - 0,0,0,0,0,0,0,0,-71,-72, - 0,-57,0,0,0,0,0,0,0,0, + 0,-134,0,-167,0,0,0,0,0,0, + 0,0,0,0,-131,0,0,0,0,0, + 0,0,0,0,0,0,0,-122,0,-81, 0,0,0,0,0,0,0,0,0,0, - 0,0,-121,0,0,-122,0,0,0,0, - 0,0,-40,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-75,0,0, + -19,0,-20,0,-21,-181,0,0,0,0, + 0,0,0,0,0,0,0,0,-22,0, + 0,0,0,0,0,0,0,0,-40,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-187, + 0,0,0,-75,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -112,0,0,0,0,0,0,0,0,0, - -3,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-187,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-123,0,-58,0,0,0,0,0,0, + 0,0,0,0,0,0,-3,0,0,0, + 0,0,0,0,0,0,0,-78,0,0, + 0,0,0,0,0,0,0,-123,0,-54, 0,0,0,0,0,0,0,0,0,0, - 0,-111,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-111,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-85,-129,-118,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-23,-72, + -118,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-49,0,0,0, - 0,0,0,0,0,0,-130,0,0,0, + 0,0,-49,0,0,0,0,0,0,0, + 0,0,-130,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-30,0, + 0,0,0,0,-30,0,0,0,0,0, + 0,0,0,0,0,-112,0,0,0,0, + 0,0,0,0,0,-59,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-59, + 0,0,0,0,0,0,-60,0,0,0, + 0,0,0,0,0,0,0,-129,0,0, + 0,0,0,0,0,0,0,-61,0,0, 0,0,0,0,0,0,0,0,0,0, - -137,0,0,0,0,0,0,0,0,0, - -60,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-62,0, + 0,0,0,0,0,0,0,0,0,-137, + 0,0,0,0,0,0,0,0,0,-63, 0,0,0,0,0,0,0,0,0,0, - 0,-61,0,0,0,0,0,0,0,0, - 0,0,-151,0,0,0,0,0,0,0, - 0,0,-62,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-63,0,0,0,0,0,0, - 0,0,0,0,-173,0,0,0,0,0, - 0,0,0,0,-64,0,0,0,0,0, + -64,0,0,0,0,0,0,0,0,0, + 0,-151,0,0,0,0,0,0,0,0, + 0,-65,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-65,0,0,0,0, - 0,0,0,0,0,0,-174,0,0,0, - 0,0,0,0,0,0,-66,0,0,0, + 0,0,-66,0,0,0,0,0,0,0, + 0,0,0,-173,0,0,0,0,0,0, + 0,0,0,-67,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-67,0,0, - 0,0,0,0,0,0,0,0,-188,0, - 0,0,0,0,0,0,0,0,-68,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-69, - 0,0,0,0,0,0,0,0,0,0, - -139,0,0,0,0,0,0,0,0,0, - -149,0,0,0,0,0,0,0,0,0, - 0,-200,0,0,0,0,0,0,0,0, - 0,-150,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-167,0,0,0,0,0,0,0, - 0,0,0,-23,0,0,0,0,0,0, - 0,0,-190,0,0,0,0,0,0,0, - 0,0,0,-127,0,0,0,0,0,0, - 0,0,0,-24,0,0,-11,0,0,0, - 0,0,0,0,-198,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-206,0,0,0,0,0, - 0,0,0,0,0,-140,0,0,0,0, - 0,0,0,0,-32,0,0,0,-12,0, - 0,0,0,0,0,0,-214,0,0,0, + 0,0,0,0,-68,0,0,0,0,0, + 0,0,0,0,0,-174,0,0,0,0, + 0,0,0,0,0,-69,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,-124,0,0,0, - 0,0,0,0,0,0,0,-87,0,0, - 0,0,0,0,0,0,-89,0,-115,0, - -54,0,0,0,0,0,0,0,0,0, - 0,-34,0,0,0,0,0,-25,0,0, - 0,0,0,-144,0,0,0,0,0,-133, - -50,0,0,0,0,0,0,0,0,0, - 0,-41,0,0,0,0,0,0,0,0, - 0,-74,0,0,0,-199,0,0,0,0, - 0,0,0,-83,0,0,0,0,0,0, - 0,-153,-117,0,0,0,0,-132,0,-33, + 0,0,0,0,0,0,0,-188,0,0, + 0,0,0,0,0,0,0,-149,0,0, 0,0,0,0,0,0,0,0,0,0, - -143,-26,0,0,0,0,-163,0,0,0, - -184,0,0,0,-148,-82,0,0,0,0, - 0,0,0,-166,0,0,0,0,0,-178, + 0,0,0,0,0,0,0,0,-150,0, + 0,0,0,0,0,0,0,0,0,-24, + 0,0,0,0,0,0,0,0,0,-190, 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,-189,0, - -195,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-51,0,0, - 0,0,0,0,0,0,0,0,-156,0, - 0,-213,-209,-35,-56,0,0,0,0,0, - 0,0,0,-27,0,0,0,-28,-29,0, - -53,0,0,0,0,0,0,0,0,0, - 0,0,0,-142,-90,0,0,0,0,0, - 0,0,0,-215,0,0,0,-154,-91,0, - 0,0,0,0,0,0,-5,0,0,0, - 0,0,0,0,-45,0,0,0,0,0, - 0,0,0,0,0,0,0,-92,0,0, - 0,0,0,0,0,0,0,-46,0,0, - 0,0,0,0,0,0,0,0,-47,0, - 0,0,0,0,0,0,0,0,0,-48, + -127,0,0,0,0,0,0,0,0,-199, 0,0,0,0,0,0,0,0,0,0, - -79,-208,-13,0,0,0,0,0,0,0, - -145,-168,0,-205,-169,-147,-93,-76,-155,-216, - -94,0,0,0,0,0,0,-158,0,0, - 0,0,0,-175,-95,-96,0,0,0,0, - 0,0,0,0,-86,0,0,-161,0,-170, - 0,-97,-202,0,0,-196,0,-88,0,0, - 0,0,0,0,0,-98,0,0,0,0, - -99,-100,-179,0,0,0,0,0,0,0, - 0,0,0,0,0,-109,0,0,0,0, - -138,0,0,0,0,0,0,0,-152,0, - 0,0,0,0,0,0,-38,-203,0,-101, - -201,0,0,0,-102,-103,0,0,0,0, - -14,0,0,0,0,0,0,0,-180,0, - 0,0,0,0,0,-42,0,0,0,0, - 0,0,0,-6,0,0,0,0,0,0, - 0,0,0,0,-43,0,0,0,0,0, - 0,0,0,0,-104,-105,0,-44,0,0, - 0,0,0,0,0,-73,0,0,0,0, - 0,0,0,-116,-131,-177,-176,-7,0,0, - 0,0,0,0,0,-106,0,0,-8,0, - 0,0,0,0,0,-107,0,0,0,0, - 0,0,-110,0,-197,-204,0,-126,-135,0, - -15,0,0,0,0,0,0,-16,0,0, - 0,0,0,0,0,0,-18,0,0,-31, - 0,-141,0,0,-146,0,-113,0,0,0, - 0,-181,-128,-160,-159,-165,-193,-185,-210,-162, - 0,-194,0,0,0,-186,0,0,0,0, - 0,0,0,-171,0,0,0,0,0,-207, - 0,0,-1,0,0,-211,0,0,0,0, - -136,-182,0,0,-212,0,0,0,0,-183, + -108,0,0,0,0,0,0,0,0,0, + -25,0,0,-10,0,0,0,0,0,0, + 0,-208,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-216,0,0,0,0,0,0,0,0, + 0,0,-140,0,0,0,0,0,0,0, + 0,-166,0,0,0,-89,0,-55,0,0, + 0,0,0,0,0,0,0,0,-113,0, + 0,0,-169,-26,0,-27,-82,0,0,0, + 0,-36,-154,-200,0,0,0,0,0,-37, + 0,0,0,0,-133,-50,0,0,0,0, + 0,0,0,0,0,0,0,0,-74,0, + 0,0,-142,-145,-28,0,-117,0,0,0, + 0,0,0,0,0,-153,0,0,-139,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-157,0,0,0, - 0,0,-172,0,0,0,0,0,-192,0, + 0,0,0,0,-6,0,0,0,0,0, + 0,0,0,0,0,-147,0,-29,-178,0, + 0,0,0,0,0,0,0,0,-143,0, + 0,0,0,-155,0,-41,0,0,0,0, + 0,0,0,0,0,0,0,0,-180,-196, + 0,-70,-207,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-51,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-90,0,0,0,0,0,0, + 0,-7,0,0,0,0,0,0,0,-52, + 0,0,0,0,0,0,0,0,0,0, + -109,0,-53,0,0,0,0,0,0,0, + 0,0,0,0,0,-215,-8,0,0,0, + 0,0,0,0,0,-168,0,-201,0,0, + -189,0,0,-45,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-184, + 0,0,0,0,0,0,0,-15,0,0, + 0,0,0,0,0,-46,0,0,0,0, + 0,0,0,0,0,0,-47,0,0,0, + 0,0,0,0,0,0,0,-48,0,0, + 0,0,0,0,0,0,0,0,-79,0, + 0,-210,0,-138,0,0,0,0,0,0, + 0,-91,0,-16,0,0,0,0,0,0, + 0,0,0,0,0,-71,0,-197,0,0, + 0,0,-76,-217,-160,-148,0,0,0,0, + 0,0,0,0,-218,0,0,-92,-87,-93, + 0,0,0,-156,0,-177,-161,-115,0,-94, + 0,0,0,-83,-132,-158,0,0,0,0, + 0,0,0,0,0,-86,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-88, + 0,0,0,0,0,0,0,0,0,0, + 0,-95,0,-96,0,0,0,0,0,-198, + -97,0,0,0,0,0,0,0,-98,0, + 0,0,0,-152,0,0,0,0,0,0, + 0,-11,0,0,0,0,0,0,0,-183, + 0,0,0,0,0,-12,0,0,0,0, + 0,0,0,-13,0,0,0,0,0,0, + 0,-14,0,0,0,0,0,0,0,-38, + -42,0,0,0,0,0,0,0,-202,-99, + 0,-43,0,0,0,0,0,0,0,-44, + 0,0,0,0,0,0,0,0,-73,0, + 0,0,0,0,0,0,-116,-170,0,-176, + -34,-171,-100,0,0,0,0,0,0,-179, + 0,0,0,-128,-175,0,0,-204,-18,0, + 0,0,-31,0,-101,0,0,-102,0,0, + -194,-103,-104,0,-105,0,0,0,0,-106, + 0,0,0,0,-107,0,-206,0,0,0, + 0,0,-195,0,-136,0,0,0,0,-110, + 0,-172,-1,0,0,0,0,-205,0,-212, + 0,0,0,0,-192,-213,-126,-135,-211,0, + 0,0,0,0,0,0,0,0,-141,0, + 0,0,-193,0,-182,0,0,0,0,0, + -146,0,0,0,0,0,0,0,-159,0, + 0,0,-35,0,0,0,0,0,-203,0, + 0,0,-56,0,-165,0,-157,-185,-186,0, + -209,-214,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,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; @@ -234,198 +234,198 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseAction { public final static char baseAction[] = { - 89,11,21,21,26,26,34,34,71,71, - 1,1,2,2,2,2,3,3,3,4, - 5,5,5,5,5,5,5,5,53,53, - 72,6,6,6,6,6,6,6,6,6, - 6,7,7,8,8,8,8,9,9,9, - 10,10,10,12,12,12,12,12,13,13, - 13,14,14,15,15,16,16,17,17,18, - 18,19,19,20,20,20,20,20,20,20, - 20,20,20,20,20,104,48,42,90,90, - 75,75,43,105,105,105,105,105,105,105, - 106,106,106,107,107,112,112,113,113,108, - 108,109,109,109,115,115,110,110,110,110, - 111,111,111,111,111,114,114,27,27,27, - 27,27,29,29,29,81,81,76,76,76, - 76,77,77,77,78,78,78,79,79,79, - 80,80,80,116,116,117,117,118,30,32, - 32,32,32,32,54,56,56,56,56,56, - 56,56,56,56,56,56,56,65,62,62, - 91,92,66,66,63,63,63,67,82,82, - 83,83,68,68,68,50,93,93,84,85, - 85,85,64,64,94,86,86,87,87,69, - 69,22,23,23,23,31,49,49,35,35, - 35,35,38,38,40,36,36,37,41,41, - 119,119,39,120,120,95,95,28,28,28, - 28,28,28,28,28,28,88,51,51,51, - 51,33,58,58,57,57,57,59,59,52, - 52,96,96,73,73,60,60,60,44,44, - 44,45,46,46,46,47,47,47,47,55, - 55,55,61,97,74,74,74,74,70,98, - 99,99,100,100,101,101,121,121,122,122, - 123,123,123,123,125,125,124,124,124,126, - 126,89,89,2,2,2,6,6,6,22, - 22,24,24,25,25,102,102,102,105,127, - 127,127,127,127,127,127,110,110,110,110, - 110,110,110,110,110,110,110,110,110,110, - 110,110,110,110,110,110,110,110,110,110, - 128,128,1,1425,16,20,17,390,1409,43, - 468,419,545,324,529,1104,1074,1302,1228,1408, - 1404,73,90,329,133,211,319,320,455,248, - 877,135,132,134,158,590,19,16,20,17, - 390,1409,43,468,419,545,1234,529,1104,1074, - 1302,1228,1408,1404,73,279,137,273,164,356, - 355,791,792,598,141,144,147,150,1316,686, - 19,16,20,17,390,41,39,383,1511,422, - 1274,1555,1568,1207,133,211,319,320,274,1686, - 284,143,132,134,158,542,1755,686,19,16, - 20,17,390,41,38,285,762,1011,414,1301, - 654,19,16,20,17,390,1409,43,468,419, - 545,1234,529,1104,1074,1302,1228,1408,1404,73, - 279,359,19,16,20,17,390,1409,43,468, - 419,545,1234,529,1104,1074,1302,1228,1408,1404, - 73,279,686,19,16,20,17,390,41,43, - 468,419,545,321,1582,284,225,177,598,287, - 6,1755,443,19,16,20,17,390,41,35, - 285,395,293,185,1621,39,286,598,133,211, - 319,320,1755,244,18,135,132,134,158,598, - 230,287,686,19,16,20,17,390,41,43, - 468,419,545,1716,529,1104,1074,1302,1228,1676, - 137,21,164,293,184,22,895,1752,141,144, - 147,150,1316,686,19,16,20,17,390,41, - 43,1439,1511,422,1274,1555,1568,1207,281,19, - 16,20,17,390,1409,43,468,419,545,1757, - 529,1104,1074,1302,1228,1408,1404,73,641,237, - 622,19,16,20,17,390,1409,43,468,419, - 545,230,529,1104,1074,1302,1228,1408,1404,73, - 279,686,19,16,20,17,390,1409,43,468, - 419,545,239,529,1104,1074,1302,1228,1408,1404, - 73,90,293,186,686,19,16,20,17,390, - 41,43,468,419,545,288,529,1104,1074,1302, - 1706,1755,750,19,16,20,17,390,1409,43, - 468,419,545,1763,529,1104,1074,1302,1228,1408, - 1404,73,714,518,230,478,19,16,20,17, - 390,41,43,468,419,545,383,529,1104,1074, - 1302,1228,1408,1404,92,241,327,686,19,16, - 20,17,390,41,43,468,1562,316,19,16, - 20,17,390,1409,43,468,419,545,801,529, - 1104,1074,1302,1228,1408,1404,73,843,238,686, - 19,16,20,17,390,1409,43,468,419,545, - 583,529,1104,1074,1302,1228,1408,1404,73,91, - 686,19,16,20,17,390,1409,43,468,419, - 545,230,529,1104,1074,1302,1228,1408,1404,73, - 84,686,19,16,20,17,390,1409,43,468, - 419,545,325,529,1104,1074,1302,1228,1408,1404, - 73,83,686,19,16,20,17,390,1409,43, - 468,419,545,230,529,1104,1074,1302,1228,1408, - 1404,73,82,686,19,16,20,17,390,1409, - 43,468,419,545,240,529,1104,1074,1302,1228, - 1408,1404,73,81,686,19,16,20,17,390, - 1409,43,468,419,545,230,529,1104,1074,1302, - 1228,1408,1404,73,80,686,19,16,20,17, - 390,1409,43,468,419,545,242,529,1104,1074, - 1302,1228,1408,1404,73,79,686,19,16,20, - 17,390,1409,43,468,419,545,230,529,1104, - 1074,1302,1228,1408,1404,73,78,686,19,16, - 20,17,390,1409,43,468,419,545,243,529, - 1104,1074,1302,1228,1408,1404,73,77,686,19, - 16,20,17,390,1409,43,468,419,545,230, - 529,1104,1074,1302,1228,1408,1404,73,76,686, - 19,16,20,17,390,1409,43,468,419,545, - 292,529,1104,1074,1302,1228,1408,1404,73,75, - 686,19,16,20,17,390,1409,43,468,419, - 545,40,529,1104,1074,1302,1228,1408,1404,73, - 74,686,19,16,20,17,390,1409,43,468, - 419,545,230,529,1104,1074,1302,1228,1408,1404, - 73,885,686,19,16,20,17,390,1409,43, - 468,419,545,294,529,1104,1074,1302,1228,1408, - 1404,73,927,686,19,16,20,17,390,41, - 43,468,419,545,183,529,1104,1074,1302,1228, - 1408,1404,92,686,19,16,20,17,390,41, - 43,468,419,545,75,529,1104,1074,1302,1228, - 1408,1404,92,1765,252,1315,969,686,19,16, - 20,17,390,41,37,686,19,16,20,17, - 390,41,43,468,419,545,1032,529,1104,1074, - 1302,1228,1408,1404,92,686,19,16,20,17, - 390,41,43,468,419,545,6,529,1104,1074, - 1302,1228,1408,1404,92,293,30,1764,210,686, - 19,16,20,17,390,41,36,686,19,16, - 20,17,390,41,43,468,419,545,200,529, - 1104,1074,1302,1228,1408,1404,92,686,19,16, - 20,17,390,41,43,468,419,545,525,529, - 1104,1074,1302,1228,1408,1404,72,225,177,598, - 201,686,19,16,20,17,390,41,43,468, - 419,545,566,529,1104,1074,1625,24,115,133, - 211,319,320,651,289,271,136,132,134,158, - 127,686,19,16,20,17,390,41,43,468, - 1576,1389,686,19,16,20,17,390,41,43, - 1468,138,16,164,88,672,293,1768,272,142, - 145,148,151,1316,830,216,1438,219,1529,221, - 222,227,415,694,265,420,389,270,598,261, - 293,30,586,1697,1801,1723,133,211,319,320, - 262,691,80,146,132,134,158,71,275,276, - 272,802,559,1596,277,66,24,216,1438,219, - 1529,221,222,227,293,293,265,420,389,270, - 406,1544,1766,1522,290,208,259,252,211,319, - 320,27,1209,686,19,16,20,17,390,41, - 43,468,419,545,1307,529,1104,1626,272,293, - 295,489,23,1728,1725,217,1438,219,1529,221, - 222,227,1393,1843,267,420,389,270,686,19, - 16,20,17,390,41,43,468,419,545,16, - 529,1581,489,16,6,6,216,1438,219,1529, - 221,222,227,1393,130,651,651,466,179,53, - 1790,686,19,16,20,17,390,41,43,468, - 419,545,1723,1620,6,782,1723,216,1438,219, - 1529,221,222,227,831,1770,86,86,820,565, - 1330,1790,560,1675,1434,196,198,718,19,16, - 20,17,390,318,1524,686,19,16,20,17, - 390,41,43,468,419,1527,226,1728,597,217, - 1438,219,1529,221,222,227,197,198,686,19, - 16,20,17,390,41,43,468,419,1531,686, - 19,16,20,17,390,41,43,468,419,1545, - 686,19,16,20,17,390,41,43,468,419, - 1546,391,633,686,19,16,20,17,390,41, - 35,6,451,1393,239,71,187,315,886,887, - 59,429,1525,133,211,319,320,1784,598,1694, - 140,132,134,158,598,667,669,216,1438,219, - 1529,221,222,227,275,839,272,225,6,281, - 6,1544,545,598,278,139,802,164,848,1810, - 223,470,265,420,389,270,890,133,211,319, - 320,493,328,6,149,132,134,158,1209,228, - 133,211,319,320,1772,192,808,152,132,134, - 158,443,19,16,20,17,390,41,35,443, - 19,16,20,17,390,41,35,807,692,1769, - 484,691,326,291,272,192,510,280,1262,1728, - 245,686,19,16,20,17,390,41,34,71, - 267,420,389,270,232,272,686,19,16,20, - 17,390,41,46,718,19,16,20,17,390, - 317,265,420,389,270,686,19,16,20,17, - 390,41,45,178,1796,630,327,264,686,19, - 16,20,17,390,41,44,558,19,16,20, - 17,390,41,42,849,178,694,849,718,19, - 16,20,17,390,316,526,349,1767,526,718, - 19,16,20,17,390,40,396,253,211,319, - 320,1240,229,552,1240,71,71,1723,661,412, - 1723,718,19,16,20,17,390,33,718,19, - 16,20,17,390,32,1596,257,6,1330,257, - 6,1288,773,1729,1288,834,1729,66,362,202, - 179,362,400,66,57,897,801,84,858,71, - 755,1768,169,1361,195,526,868,195,526,252, - 211,319,320,526,66,252,211,319,320,86, - 693,195,86,513,1240,528,71,1617,528,195, - 1617,511,113,203,651,546,252,211,319,320, - 755,1768,526,526,1762,1695,1912,1912,1912,257, - 423,1695,1762,547,1563,1912,1729,1912,1240,195, - 1530,1912,190,193,1912,86,1912,844,1912,207, - 190,311,1849,234,1912,747,1639,1802,526,243, - 1912,1021,1762,257,1726,1802,1311,1776,1538,1912, - 1729,1912,1618,1912,1240,253,211,319,320,1912, - 191,253,211,319,320,1912,1912,1912,1912,207, - 1912,1912,373,1912,1912,1912,1912,1912,1912,258, - 1912,1912,1912,1912,1912,1912,1566,1776,1912,0, - 322,715,0,19,177,0,1,2136,0,1, - 2147,0 + 89,11,104,21,21,26,26,34,34,71, + 71,1,1,2,2,2,2,3,3,3, + 4,5,5,5,5,5,5,5,5,53, + 53,72,6,6,6,6,6,6,6,6, + 6,6,7,7,8,8,8,8,9,9, + 9,10,10,10,12,12,12,12,12,13, + 13,13,14,14,15,15,16,16,17,17, + 18,18,19,19,20,20,20,20,20,20, + 20,20,20,20,20,20,105,48,42,90, + 90,75,75,43,106,106,106,106,106,106, + 106,107,107,107,108,108,113,113,114,114, + 109,109,110,110,110,116,116,111,111,111, + 111,112,112,112,112,112,115,115,27,27, + 27,27,27,30,30,30,81,81,76,76, + 76,76,77,77,77,78,78,78,79,79, + 79,80,80,80,117,117,118,118,119,31, + 33,33,33,33,33,54,56,56,56,56, + 56,56,56,56,56,56,56,56,65,62, + 62,91,92,66,66,63,63,63,67,82, + 82,83,83,68,68,68,50,93,93,84, + 85,85,85,64,64,94,86,86,87,87, + 69,69,22,23,23,23,32,49,49,35, + 35,35,35,38,38,40,36,36,37,41, + 41,120,120,39,121,121,95,95,28,28, + 28,28,28,28,28,28,28,88,51,51, + 51,51,29,58,58,57,57,57,59,59, + 52,52,96,96,73,73,60,60,60,44, + 44,44,45,46,46,46,47,47,47,47, + 55,55,55,61,97,74,74,74,74,70, + 98,99,99,100,100,101,101,122,122,123, + 123,124,124,124,124,126,126,125,125,125, + 127,127,89,89,2,2,2,6,6,6, + 22,22,24,24,25,25,102,102,102,106, + 128,128,128,128,128,128,128,111,111,111, + 111,111,111,111,111,111,111,111,111,111, + 111,111,111,111,111,111,111,111,111,111, + 111,129,129,1,1384,17,21,18,520,1318, + 44,603,601,619,71,605,1110,749,1234,1161, + 1275,1236,74,91,324,134,212,320,321,762, + 1289,329,248,136,133,135,159,686,20,17, + 21,18,520,42,44,603,601,619,28,605, + 1110,749,1234,1161,1755,293,31,138,289,165, + 274,455,791,293,186,142,145,148,151,1237, + 686,20,17,21,18,520,42,40,391,1509, + 590,1574,1586,1600,1216,590,20,17,21,18, + 520,1318,44,603,601,619,418,605,1110,749, + 1234,1161,1275,1236,74,280,654,20,17,21, + 18,520,1318,44,603,601,619,418,605,1110, + 749,1234,1161,1275,1236,74,280,25,423,686, + 20,17,21,18,520,42,44,603,601,619, + 285,605,1110,749,1234,1760,1821,443,20,17, + 21,18,520,42,36,286,1845,1436,291,1329, + 877,285,755,1848,322,293,185,1821,245,718, + 20,17,21,18,520,319,286,518,293,31, + 1689,359,20,17,21,18,520,1318,44,603, + 601,619,418,605,1110,749,1234,1161,1275,1236, + 74,280,225,178,686,20,17,21,18,520, + 42,44,603,601,619,75,605,1110,749,1234, + 1161,1275,1236,93,134,212,320,321,895,1809, + 792,208,136,133,135,159,287,254,212,320, + 321,356,1821,414,525,287,400,1068,1460,1849, + 24,288,134,212,320,321,138,1350,165,39, + 144,133,135,159,142,145,148,151,1237,686, + 20,17,21,18,520,42,44,1522,1509,590, + 1574,1586,1600,1216,281,20,17,21,18,520, + 1318,44,603,601,619,1229,605,1110,749,1234, + 1161,1275,1236,74,816,238,622,20,17,21, + 18,520,1318,44,603,601,619,194,605,1110, + 749,1234,1161,1275,1236,74,280,686,20,17, + 21,18,520,1318,44,603,601,619,355,605, + 1110,749,1234,1161,1275,1236,74,91,293,187, + 686,20,17,21,18,520,42,44,603,601, + 619,289,605,1110,749,1748,275,1821,750,20, + 17,21,18,520,1318,44,603,601,619,1734, + 605,1110,749,1234,1161,1275,1236,74,858,183, + 230,478,20,17,21,18,520,42,44,603, + 601,619,391,605,1110,749,1234,1161,1275,1236, + 93,22,328,686,20,17,21,18,520,42, + 44,603,1621,316,20,17,21,18,520,1318, + 44,603,601,619,900,605,1110,749,1234,1161, + 1275,1236,74,942,239,686,20,17,21,18, + 520,1318,44,603,601,619,230,605,1110,749, + 1234,1161,1275,1236,74,92,686,20,17,21, + 18,520,1318,44,603,601,619,240,605,1110, + 749,1234,1161,1275,1236,74,85,686,20,17, + 21,18,520,1318,44,603,601,619,230,605, + 1110,749,1234,1161,1275,1236,74,84,686,20, + 17,21,18,520,1318,44,603,601,619,242, + 605,1110,749,1234,1161,1275,1236,74,83,686, + 20,17,21,18,520,1318,44,603,601,619, + 230,605,1110,749,1234,1161,1275,1236,74,82, + 686,20,17,21,18,520,1318,44,603,601, + 619,326,605,1110,749,1234,1161,1275,1236,74, + 81,686,20,17,21,18,520,1318,44,603, + 601,619,230,605,1110,749,1234,1161,1275,1236, + 74,80,686,20,17,21,18,520,1318,44, + 603,601,619,241,605,1110,749,1234,1161,1275, + 1236,74,79,686,20,17,21,18,520,1318, + 44,603,601,619,230,605,1110,749,1234,1161, + 1275,1236,74,78,686,20,17,21,18,520, + 1318,44,603,601,619,243,605,1110,749,1234, + 1161,1275,1236,74,77,686,20,17,21,18, + 520,1318,44,603,601,619,230,605,1110,749, + 1234,1161,1275,1236,74,76,686,20,17,21, + 18,520,1318,44,603,601,619,244,605,1110, + 749,1234,1161,1275,1236,74,75,686,20,17, + 21,18,520,1318,44,603,601,619,230,605, + 1110,749,1234,1161,1275,1236,74,73,686,20, + 17,21,18,520,1318,44,603,601,619,293, + 605,1110,749,1234,1161,1275,1236,74,984,686, + 20,17,21,18,520,1318,44,603,601,619, + 252,605,1110,749,1234,1161,1275,1236,74,1026, + 686,20,17,21,18,520,42,44,603,601, + 619,16,605,1110,749,1234,1161,1275,1236,93, + 686,20,17,21,18,520,42,44,603,601, + 619,6,605,1110,749,1234,1161,1275,1236,93, + 1546,115,445,1438,686,20,17,21,18,520, + 42,39,686,20,17,21,18,520,42,44, + 603,601,619,211,605,1110,749,1234,1161,1275, + 1236,93,686,20,17,21,18,520,42,44, + 603,601,619,6,605,1110,749,1234,1161,1275, + 1236,93,293,294,1545,201,225,178,686,20, + 17,21,18,520,42,44,603,601,619,66, + 605,1110,1752,71,80,202,130,24,134,212, + 320,321,598,820,293,1848,137,133,135,159, + 598,253,212,320,321,127,686,20,17,21, + 18,520,42,44,603,1629,1564,282,1709,16, + 139,227,165,6,6,179,19,694,143,146, + 149,152,1237,273,522,1233,415,575,1775,40, + 217,1243,220,1334,222,223,228,1720,1780,266, + 698,392,271,277,262,718,20,17,21,18, + 520,318,276,209,273,263,16,783,53,406, + 1411,217,1243,220,1334,222,223,228,389,691, + 266,698,392,271,887,1735,686,20,17,21, + 18,520,42,44,1558,1722,1568,273,1797,71, + 489,260,598,239,218,1243,220,1334,222,223, + 228,1799,226,268,698,392,271,686,20,17, + 21,18,520,42,44,603,601,619,1765,605, + 1690,1829,374,179,782,217,1243,220,1334,222, + 223,228,718,20,17,21,18,520,317,1851, + 686,20,17,21,18,520,42,44,603,601, + 619,808,1723,686,20,17,21,18,520,42, + 44,603,601,619,193,1745,489,718,20,17, + 21,18,520,41,197,199,451,1799,230,273, + 1797,293,296,1353,686,20,17,21,18,520, + 42,44,603,601,1560,268,698,392,271,295, + 802,217,1243,220,1334,222,223,228,718,20, + 17,21,18,520,34,1851,686,20,17,21, + 18,520,42,44,603,601,1570,686,20,17, + 21,18,520,42,44,603,601,1612,686,20, + 17,21,18,520,42,44,603,601,1614,391, + 198,199,633,1620,443,20,17,21,18,520, + 42,36,565,1799,718,20,17,21,18,520, + 33,134,212,320,321,327,598,292,802,141, + 133,135,159,886,831,57,178,217,1243,220, + 1334,222,223,228,1717,59,562,1782,597,525, + 315,1735,23,140,16,165,694,6,598,276, + 429,273,196,1797,830,598,598,1751,1650,218, + 1243,220,1334,222,223,228,839,266,698,392, + 271,1790,230,1780,272,606,134,212,320,321, + 848,278,279,1568,147,133,135,159,134,212, + 320,321,667,191,669,1319,150,133,135,159, + 71,545,134,212,320,321,708,1349,1815,890, + 153,133,135,159,443,20,17,21,18,520, + 42,36,686,20,17,21,18,520,42,38, + 755,1848,281,588,203,246,686,20,17,21, + 18,520,42,37,686,20,17,21,18,520, + 42,36,686,20,17,21,18,520,42,35, + 807,686,20,17,21,18,520,42,47,691, + 493,1269,686,20,17,21,18,520,42,46, + 686,20,17,21,18,520,42,45,273,558, + 20,17,21,18,520,42,43,849,6,208, + 849,566,187,328,266,698,392,271,562,466, + 6,562,687,1795,66,598,1538,1849,598,6, + 265,1773,1796,6,1255,484,1780,1255,192,1780, + 363,84,510,630,363,327,253,212,320,321, + 349,224,562,89,229,396,196,71,1411,258, + 196,1319,258,169,1575,511,1798,1575,1255,1798, + 552,87,66,513,562,87,562,1250,692,1680, + 71,1250,575,1680,687,66,71,661,412,16, + 196,180,1255,258,253,212,320,321,1738,773, + 1798,1536,1242,234,233,113,1352,253,212,320, + 321,834,1078,606,204,87,562,258,1780,897, + 1555,312,1576,6,1798,254,212,320,321,243, + 1813,191,196,6,687,801,1788,844,858,868, + 1544,693,546,1839,687,1767,1815,1914,562,1914, + 1914,254,212,320,321,606,1914,1914,1914,1914, + 1914,1914,384,1914,1255,87,1914,1914,1914,1914, + 1914,750,1914,192,1914,87,1914,1914,1914,1914, + 1914,1753,1914,1914,1914,1914,1914,1914,1914,259, + 1914,0,323,751,0,20,178,0,1,2139, + 0,1,2150,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -544,102 +544,102 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 1912,1922,1747,1923,1513,1,2124,2125,2126,1159, - 1107,2235,421,2236,1631,251,1738,1731,1709,1924, - 1925,1926,1927,180,457,429,2225,2226,2227,1698, - 1654,1447,2073,2074,2072,2127,2075,2071,53,181, - 2078,2083,2082,2080,2081,2079,2084,2085,2077,2086, - 2087,2088,41,1198,713,388,1912,1,283,1, - 1912,189,1,1,1,1912,1912,1,1,1, - 1912,2124,2125,2126,247,1919,2235,421,2236,65, - 1,1,1,1,1909,1,1,1,1,1, - 1,1,1,1,737,1241,1,1,1,1, - 1,1,1,1,1,1,1,1,189,1, - 1,1,1912,1,67,1,2106,188,1,1, - 1,1000,1918,1,1,1,260,2136,1282,71, - 1,979,958,937,916,895,853,874,832,811, - 790,608,2168,1912,1,1,1,1,1,1, - 1912,1343,1,1,1,1,1,1,1,1, - 1,1,1,1,188,1,1,1,1912,1, - 1912,1,2106,189,1,1,1,246,69,1, - 1,1,63,2124,2125,2126,248,1211,2235,421, - 2236,66,1,1,1,1912,1378,1,1,1, - 1,1,1,1,1,1,562,1395,1,1, + 1914,1925,1739,1926,1664,1,2127,2128,2129,1656, + 1642,2238,422,2239,1672,252,1524,1468,1427,1927, + 1928,1929,1930,181,1164,430,2228,2229,2230,1392, + 1305,529,2076,2077,2075,2130,2078,2074,54,182, + 2081,2086,2085,2083,2084,2082,2087,2088,2080,2089, + 2090,2091,42,1559,537,421,1914,1,284,1, + 1914,190,1,1,1,1914,1914,1,1,1, + 1914,2127,2128,2129,247,1922,2238,422,2239,66, + 2127,2128,2129,1,1911,2238,422,2239,1,1, + 1,1,1,1,773,1256,1,1,1,1, + 1,1,1,1,1,1,1,1,190,1, + 1,1,1914,1,68,1,2109,189,1,1, + 1,1036,1921,1,1,1,261,2139,1286,72, + 1,1015,994,973,952,931,889,910,868,847, + 826,644,2171,1914,1,1,1,1,1,1, + 1914,1218,1,1,1,1,1,1,1,1, + 1,1,1,1,189,1,1,1,1914,1, + 1914,1,2109,190,1,1,1,248,70,1, + 1,1,64,1,1,1,249,710,1,1, + 1,67,1,1,1,1914,1367,1,1,1, + 1,1,1,1,1,1,397,1843,1,1, 1,1,1,1,1,1,1,1,1,1, - 189,1,1,1,1912,1922,1912,1923,2106,1912, - 2124,2125,2126,249,1915,2235,421,2236,1912,2124, - 2125,2126,250,1921,2235,421,2236,269,2124,2125, - 2126,61,674,2235,421,2236,2073,2074,2072,2127, - 2075,2071,608,1343,2078,2083,2082,2080,2081,2079, - 2084,2085,2077,2086,2087,2088,1392,1198,713,388, - 1,1922,1747,1923,532,1915,58,1914,1912,1159, - 1107,1912,1912,1922,1631,1923,1738,1731,1709,1924, - 1925,1926,1927,1063,457,429,2225,2226,2227,1698, - 1654,1447,692,1920,57,1912,1922,1747,1923,1609, - 1915,1411,512,1912,1159,1107,70,60,87,1631, - 1912,1738,1731,1709,1924,1925,1926,1927,1914,457, - 429,2225,2226,2227,1698,1654,1447,1042,68,1324, - 1500,1489,1478,1455,268,50,1283,1912,1,1922, - 1747,1923,1513,28,1252,593,769,1159,1107,608, - 737,1241,1631,1914,1738,1731,1709,1924,1925,1926, - 1927,3177,457,429,2225,2226,2227,1698,1654,1447, - 127,1500,1489,1478,1455,1912,2124,2125,2126,1, - 674,2235,421,2236,1921,266,2136,1282,1912,251, - 28,254,1899,47,1,1906,1282,1678,530,1917, - 608,1211,2073,2074,2072,2127,2075,2071,56,608, - 2078,2083,2082,2080,2081,2079,2084,2085,2077,2086, - 2087,2088,1912,1922,1747,1923,1513,1915,1912,1837, - 289,1159,1107,1916,183,3178,1631,3178,1738,1731, - 1709,1924,1925,1926,1927,1083,457,429,2225,2226, - 2227,1698,1654,1447,1920,1665,1646,1912,1922,1747, - 1923,1601,1915,59,737,1241,1159,1107,1,2136, - 1512,1631,62,1738,1731,1709,1924,1925,1926,1927, - 1914,457,429,2225,2226,2227,1698,1654,1447,64, - 1,1359,1912,1,1,1,1,182,3180,1912, - 3180,1,1,1378,204,3185,1,3185,1,1, - 1,1,1,1,1,1914,1,1,1,1, - 1,1,1,1,52,1912,2148,1500,1489,1478, - 1455,1912,1912,1252,593,1094,1135,1912,1922,1747, - 1923,1513,1411,512,49,1,1159,1107,1678,2168, - 89,1631,2224,1738,1731,1709,1924,1925,1926,1927, - 530,457,429,2225,2226,2227,1698,1654,1447,1, - 1922,1747,1923,1513,1912,1912,48,1912,1159,1107, - 1678,1912,1917,1631,89,1738,1731,1709,1924,1925, - 1926,1927,3177,457,429,2225,2226,2227,1698,1654, - 1447,1912,1922,1747,1923,1513,1665,1646,1912,1912, - 1159,1107,1,2136,1512,1631,1916,1738,1731,1709, - 1924,1925,1926,1927,3177,457,429,2225,2226,2227, - 1698,1654,1447,1,1922,1747,1923,1513,1665,1646, - 1912,1912,1159,1107,1526,1912,55,1631,54,1738, - 1731,1709,1924,1925,1926,1927,3177,457,429,2225, - 2226,2227,1698,1654,1447,1912,1922,1747,1923,1513, - 29,1912,199,1,1159,1107,1917,1187,1917,1631, - 1912,1738,1731,1709,1924,1925,1926,1927,1912,457, - 429,2225,2226,2227,1698,1654,1447,1912,1922,1750, - 1923,1513,737,1241,737,1241,1159,1107,491,1805, - 1916,1631,1916,1738,1731,1709,1924,1925,1926,1927, - 1912,457,429,2225,2226,2227,1698,1654,1447,1, - 1922,1747,1923,1513,206,1922,1912,1923,1159,1107, - 1167,1912,1922,1631,1923,1738,1731,1709,1924,1925, - 1926,1927,1912,457,429,2225,2226,2227,1698,1654, - 1447,19,1912,1903,1146,1903,1903,177,177,177, - 322,128,177,177,177,1558,1903,2124,2125,2126, - 1912,29,2235,421,2236,1900,263,266,1528,1528, - 1,251,1912,177,177,177,177,177,177,218, - 1903,608,608,2073,2074,2072,2127,2075,2071,129, - 251,2136,1512,1912,608,2124,2125,2126,130,1940, - 2235,421,2236,1,2124,2125,2126,131,1,2235, - 421,2236,251,2124,2125,2126,1560,209,2235,421, - 2236,2073,2074,2072,2127,2075,2071,205,1912,630, - 2073,2074,2072,2127,2075,2071,31,1912,1222,2073, - 2074,2072,2127,2075,2071,1,220,1528,1696,51, - 1917,1394,1937,1938,1912,1922,1912,1923,1252,593, - 608,608,2167,282,187,3183,187,2168,1521,205, - 1266,187,1266,1912,1912,1912,1912,1424,1912,1583, - 1912,1912,1912,1912,1916,1912,1115,183,1912,182, - 1912,1912,1912,1912,204,1912,1912,1290,1912,1912, - 1912,1912,1912,1912,1912,1912,1912,1912,1912,1912, - 1912,1912,1155,1912,1912,1521 + 190,1,1,1,1914,1925,1914,1926,2109,1914, + 2127,2128,2129,250,1918,2238,422,2239,1914,2127, + 2128,2129,251,1924,2238,422,2239,270,2127,2128, + 2129,62,489,2238,422,2239,2076,2077,2075,2130, + 2078,2074,644,1218,2081,2086,2085,2083,2084,2082, + 2087,2088,2080,2089,2090,2091,1426,1559,537,421, + 1,1925,1739,1926,507,1918,59,1917,1914,1656, + 1642,1914,1914,1925,1672,1926,1524,1468,1427,1927, + 1928,1929,1930,564,1164,430,2228,2229,2230,1392, + 1305,529,728,1923,58,1914,1925,1739,1926,1634, + 1918,1413,1400,1914,1656,1642,71,61,88,1672, + 1914,1524,1468,1427,1927,1928,1929,1930,1917,1164, + 430,2228,2229,2230,1392,1305,529,1099,69,1212, + 1498,1487,1476,1444,269,51,1277,1914,1,1925, + 1739,1926,1664,29,1336,629,805,1656,1642,644, + 773,1256,1672,1917,1524,1468,1427,1927,1928,1929, + 1930,3180,1164,430,2228,2229,2230,1392,1305,529, + 128,1498,1487,1476,1444,1914,2127,2128,2129,1, + 489,2238,422,2239,1924,267,2139,1286,1914,252, + 29,255,1901,48,1,1908,1286,1700,1151,1920, + 644,710,2076,2077,2075,2130,2078,2074,57,644, + 2081,2086,2085,2083,2084,2082,2087,2088,2080,2089, + 2090,2091,1914,1925,1739,1926,1664,1918,1914,1847, + 290,1656,1642,1919,184,3181,1672,3181,1524,1468, + 1427,1927,1928,1929,1930,1120,1164,430,2228,2229, + 2230,1392,1305,529,1923,1692,1681,1914,1925,1739, + 1926,1514,1918,60,773,1256,1656,1642,1,2139, + 1512,1672,63,1524,1468,1427,1927,1928,1929,1930, + 1917,1164,430,2228,2229,2230,1392,1305,529,65, + 1,1441,1914,1,1,1,1,183,3183,1914, + 3183,1,1,1367,205,3188,1,3188,1,1, + 1,1,1,1,1,1917,1,1,1,1, + 1,1,1,1,53,1914,2151,1498,1487,1476, + 1444,1914,1914,1336,629,1131,1172,1914,1925,1739, + 1926,1664,1413,1400,50,1,1656,1642,1700,2171, + 90,1672,2227,1524,1468,1427,1927,1928,1929,1930, + 1151,1164,430,2228,2229,2230,1392,1305,529,1, + 1925,1739,1926,1664,1914,1914,49,1914,1656,1642, + 1700,1914,1920,1672,90,1524,1468,1427,1927,1928, + 1929,1930,3180,1164,430,2228,2229,2230,1392,1305, + 529,1914,1925,1739,1926,1664,1692,1681,1914,1914, + 1656,1642,1,2139,1512,1672,1919,1524,1468,1427, + 1927,1928,1929,1930,3180,1164,430,2228,2229,2230, + 1392,1305,529,1,1925,1739,1926,1664,1692,1681, + 1914,1914,1656,1642,1316,1914,56,1672,55,1524, + 1468,1427,1927,1928,1929,1930,3180,1164,430,2228, + 2229,2230,1392,1305,529,1914,1925,1739,1926,1664, + 30,1914,200,1,1656,1642,1920,1057,1920,1672, + 1914,1524,1468,1427,1927,1928,1929,1930,1914,1164, + 430,2228,2229,2230,1392,1305,529,1914,1925,1743, + 1926,1664,773,1256,773,1256,1656,1642,541,1852, + 1919,1672,1919,1524,1468,1427,1927,1928,1929,1930, + 1914,1164,430,2228,2229,2230,1392,1305,529,1, + 1925,1739,1926,1664,207,1925,1914,1926,1656,1642, + 1192,1914,1925,1672,1926,1524,1468,1427,1927,1928, + 1929,1930,1914,1164,430,2228,2229,2230,1392,1305, + 529,20,1914,1905,1203,1905,1905,178,178,178, + 323,129,178,178,178,1567,1905,2127,2128,2129, + 1914,30,2238,422,2239,1902,264,267,1543,1543, + 1,252,1914,178,178,178,178,178,178,219, + 1905,644,644,2076,2077,2075,2130,2078,2074,130, + 252,2139,1512,1914,644,2127,2128,2129,131,1943, + 2238,422,2239,1,2127,2128,2129,132,1,2238, + 422,2239,252,2127,2128,2129,1718,210,2238,422, + 2239,2076,2077,2075,2130,2078,2074,206,1914,666, + 2076,2077,2075,2130,2078,2074,32,1914,1721,2076, + 2077,2075,2130,2078,2074,1,221,1543,1566,52, + 1920,1833,1940,1941,1914,1925,1914,1926,1336,629, + 644,644,2170,283,188,3186,188,2171,1274,206, + 1244,188,1244,1914,1914,1914,1914,1273,1914,1730, + 1914,1914,1914,1914,1919,1914,1140,184,1914,183, + 1914,1914,1914,1914,205,1914,1914,538,1914,1914, + 1914,1914,1914,1914,1914,1914,1914,1914,1914,1914, + 1914,1914,415,1914,1914,1274 }; }; public final static char termAction[] = TermAction.termAction; @@ -647,28 +647,28 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 461,1,170,41,170,170,170,170,170,170, - 170,170,170,170,170,170,3,55,108,105, - 112,110,118,116,120,119,122,121,10,170, - 55,406,406,252,170,332,332,363,55,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,332, - 332,45,137,367,161,373,330,329,335,48, - 347,157,347,157,157,347,157,347,75,283, - 105,105,110,110,110,110,108,108,116,112, - 112,119,118,415,121,120,159,135,363,367, - 164,45,98,194,332,417,376,194,157,406, - 406,157,406,170,135,367,355,98,45,193, - 161,332,361,75,331,378,45,194,159,219, - 159,277,279,370,249,159,355,98,170,170, - 45,194,373,410,409,367,378,332,159,219, - 277,277,249,133,459,406,170,369,249,135, - 98,355,45,45,332,417,376,361,219,249, - 449,219,277,279,456,279,137,45,406,170, - 135,355,378,219,451,279,249,170,406,45, - 279,332,331,249,129,170,128,189,367,249, - 249,407,451,170,189,279 + 428,1,149,98,149,149,149,149,149,149, + 149,149,149,149,149,149,60,10,80,77, + 84,82,90,88,92,91,94,93,66,149, + 10,368,368,403,149,294,294,329,10,149, + 149,149,149,149,149,149,149,149,149,149, + 149,149,149,149,149,149,149,149,149,149, + 149,149,149,149,149,149,149,149,149,294, + 294,102,109,333,140,335,292,291,301,3, + 313,129,313,129,129,313,129,313,30,245, + 77,77,82,82,82,82,80,80,88,84, + 84,91,90,138,93,92,131,107,329,333, + 143,102,53,173,294,371,338,173,129,368, + 368,129,368,149,107,333,321,53,102,172, + 140,294,327,30,293,340,102,173,131,198, + 131,231,233,298,228,131,321,321,149,149, + 102,173,335,238,237,333,340,294,131,198, + 231,231,228,105,455,368,149,297,228,107, + 321,53,102,102,294,371,338,327,198,228, + 133,198,231,233,452,233,109,102,368,149, + 107,53,321,340,198,135,233,228,149,368, + 102,233,321,294,293,228,241,149,240,168, + 333,228,228,369,135,149,168,233 }; }; public final static char asb[] = Asb.asb; @@ -676,55 +676,52 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static byte asr[] = {0, - 89,0,75,15,2,61,76,16,17,14, - 4,9,10,62,63,56,57,64,65,66, - 67,70,71,72,73,74,77,78,52,69, - 79,80,81,82,83,85,84,86,87,88, - 68,39,89,38,58,5,0,5,68,38, - 58,39,75,15,18,19,20,21,22,2, - 16,17,14,4,9,10,24,25,26,27, - 28,29,30,31,1,3,53,54,55,48, - 40,45,43,44,42,41,46,47,49,50, - 51,37,34,32,33,36,35,6,7,8, - 12,11,13,0,4,62,63,9,10,57, - 56,64,65,66,67,70,71,14,72,73, - 74,58,39,52,89,77,78,68,75,5, - 38,0,5,52,15,61,16,17,14,4, - 9,10,24,25,18,29,30,31,2,19, - 20,21,22,26,27,28,1,3,23,0, - 58,5,32,6,7,8,11,12,13,19, - 20,21,22,26,27,28,3,16,17,14, - 9,10,24,25,18,29,30,31,4,2, - 1,0,32,58,5,16,17,14,4,9, - 10,24,25,18,29,30,31,2,1,3, - 19,20,21,22,26,27,28,0,33,40, - 6,41,53,34,42,35,43,44,36,7, - 45,46,32,54,37,55,47,48,8,49, - 50,51,1,3,11,12,13,60,5,52, - 0,5,39,18,19,20,21,22,1,3, - 2,16,17,14,4,9,10,24,25,26, - 27,28,29,30,31,0,1,3,5,52, - 38,0,7,32,37,8,36,35,34,6, - 33,11,12,13,61,76,16,17,14,9, - 10,62,63,56,57,64,65,66,67,70, - 71,72,73,74,77,78,69,79,80,81, - 82,83,84,85,86,87,88,4,2,15, - 38,39,5,0,48,40,45,43,44,42, - 41,46,47,49,50,51,68,75,37,34, - 32,33,36,35,6,7,8,11,12,13, - 38,1,5,39,2,15,4,0,69,15, - 61,0,4,2,15,39,5,33,40,6, + 89,0,5,68,38,58,39,75,15,18, + 19,20,21,22,2,16,17,14,4,9, + 10,24,25,26,27,28,29,30,31,1, + 3,53,54,55,48,40,45,43,44,42, + 41,46,47,49,50,51,37,34,32,33, + 36,35,6,7,8,12,11,13,0,15, + 2,61,76,16,17,69,79,80,81,82, + 83,85,84,86,87,88,4,62,63,9, + 10,57,56,64,65,66,67,70,71,14, + 72,73,74,52,75,77,78,68,39,89, + 38,58,5,0,5,52,15,61,16,17, + 14,4,9,10,24,25,18,29,30,31, + 2,19,20,21,22,26,27,28,1,3, + 23,0,75,5,4,1,2,68,0,58, + 5,32,6,7,8,11,12,13,19,20, + 21,22,26,27,28,3,16,17,14,9, + 10,24,25,18,29,30,31,4,2,1, + 0,32,58,5,16,17,14,4,9,10, + 24,25,18,29,30,31,2,1,3,19, + 20,21,22,26,27,28,0,33,40,6, 41,53,34,42,35,43,44,36,7,45, 46,32,54,37,55,47,48,8,49,50, - 51,11,12,13,59,3,1,0,2,5, - 38,39,75,15,68,0,4,33,40,6, - 41,53,34,42,35,43,44,36,7,45, - 46,32,54,37,55,47,48,8,49,50, - 51,1,3,11,12,13,59,0,75,5, - 4,1,2,68,0,5,38,52,69,0, - 18,19,20,21,22,1,3,2,16,17, - 14,4,9,10,24,25,26,27,28,29, - 30,31,60,0 + 51,1,3,11,12,13,60,5,52,0, + 1,3,5,52,38,0,2,39,15,68, + 75,5,38,0,7,32,37,8,36,35, + 34,6,33,11,12,13,61,76,16,17, + 14,9,10,62,63,56,57,64,65,66, + 67,70,71,72,73,74,77,78,69,79, + 80,81,82,83,84,85,86,87,88,4, + 2,15,38,39,5,0,69,15,61,0, + 48,40,45,43,44,42,41,46,47,49, + 50,51,68,75,37,34,32,33,36,35, + 6,7,8,11,12,13,38,1,5,39, + 2,15,4,0,4,2,15,39,5,33, + 40,6,41,53,34,42,35,43,44,36, + 7,45,46,32,54,37,55,47,48,8, + 49,50,51,11,12,13,59,3,1,0, + 4,33,40,6,41,53,34,42,35,43, + 44,36,7,45,46,32,54,37,55,47, + 48,8,49,50,51,1,3,11,12,13, + 59,0,5,39,18,19,20,21,22,1, + 3,2,16,17,14,4,9,10,24,25, + 26,27,28,29,30,31,0,18,19,20, + 21,22,1,3,2,16,17,14,4,9, + 10,24,25,26,27,28,29,30,31,60, + 0,5,38,52,69,0 }; }; public final static byte asr[] = Asr.asr; @@ -732,28 +729,28 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasb { public final static byte nasb[] = {0, - 115,25,16,25,16,16,16,16,16,16, - 16,16,16,16,16,16,25,98,25,25, - 25,25,25,25,25,25,25,25,25,16, - 98,35,35,48,99,64,64,81,1,16, - 16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,99,16,16,16,16, - 16,16,16,16,16,16,16,16,16,64, - 64,28,16,53,26,80,9,9,45,11, - 46,70,46,38,38,46,37,46,40,25, - 25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,25,25,61,87,25, - 30,28,102,27,64,91,63,27,7,7, - 7,7,7,16,14,25,61,102,28,27, - 96,64,57,18,25,93,28,27,33,61, - 25,61,66,51,61,25,61,102,16,16, - 28,27,56,9,9,53,93,64,25,107, - 61,7,68,13,25,7,16,78,68,61, - 102,96,28,28,64,91,63,72,61,68, - 104,118,7,66,25,25,15,28,7,16, - 14,96,111,107,59,66,68,16,7,28, - 66,64,64,68,105,16,25,59,53,68, - 68,25,59,16,74,85 + 115,31,22,31,22,22,22,22,22,22, + 22,22,22,22,22,22,31,107,31,31, + 31,31,31,31,31,31,31,31,31,22, + 107,13,13,104,108,60,60,86,1,22, + 22,22,22,22,22,22,22,22,22,22, + 22,22,22,22,22,108,22,22,22,22, + 22,22,22,22,22,22,22,22,22,60, + 60,39,22,56,37,85,11,11,49,17, + 50,54,50,97,97,50,96,50,44,31, + 31,31,31,31,31,31,31,31,31,31, + 31,31,31,31,31,31,31,67,79,31, + 41,39,52,38,60,99,59,38,7,7, + 7,7,7,22,20,31,75,52,39,38, + 32,60,63,24,31,101,39,38,69,67, + 31,67,77,15,67,31,75,67,22,22, + 39,38,62,11,11,56,101,60,31,90, + 67,7,9,19,31,7,22,83,9,67, + 67,52,39,39,60,99,59,71,67,9, + 34,118,7,77,31,31,21,39,7,22, + 20,52,32,111,90,65,77,9,22,7, + 39,77,32,60,60,9,35,22,31,65, + 56,9,9,31,65,22,73,94 }; }; public final static byte nasb[] = Nasb.nasb; @@ -761,17 +758,17 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasr { public final static char nasr[] = {0, - 81,79,78,66,77,76,1,0,28,0, - 102,0,70,11,61,5,0,81,80,79, - 78,66,77,76,0,11,5,21,0,5, - 11,0,92,0,72,0,94,67,0,66, - 62,63,64,65,54,29,0,11,90,0, - 99,0,33,51,0,26,46,45,38,36, - 11,0,11,26,0,53,0,34,0,91, - 0,46,45,38,36,33,0,101,0,26, - 45,46,11,0,97,0,46,45,33,0, - 33,51,11,27,0,22,0,50,11,48, - 0,58,0,11,71,0,83,11,50,0, + 81,79,78,66,77,76,1,0,34,0, + 28,0,72,0,99,0,102,0,70,11, + 61,5,0,81,80,79,78,66,77,76, + 0,22,0,11,71,0,11,5,21,0, + 5,11,0,66,62,63,64,65,54,30, + 0,58,0,91,0,29,51,0,11,26, + 0,26,46,45,38,36,11,0,92,0, + 46,45,38,36,29,0,53,0,46,45, + 29,0,101,0,26,45,46,11,0,83, + 11,50,0,97,0,94,67,0,29,51, + 11,27,0,11,90,0,50,11,48,0, 95,11,27,0,11,89,0,11,50,68, 0 }; @@ -800,18 +797,18 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, 114,0,0,0,116,120,121,122,123,124, - 0,125,126,127,128,129,130,131,132,133, - 110,143,0,0,0,111,136,164,142,0, - 0,0,0,112,160,162,0,163,0,0, - 0,0,135,173,174,175,0,115,151,155, - 161,170,0,145,150,0,165,168,169,172, - 0,146,147,148,149,152,0,154,159,176, - 113,117,118,119,134,137,138,139,140,141, - 144,0,153,157,0,0,158,167,109,0, - 0,0,156,0,166,171,0,177,178,0, - 179,180,0,0,0,0,0,0,0,0, + 0,125,126,127,128,129,130,131,0,132, + 110,142,0,0,0,111,135,163,0,141, + 0,0,0,112,159,161,0,162,0,0, + 0,0,134,172,173,174,0,115,150,154, + 160,169,0,144,149,0,164,167,168,171, + 0,145,146,147,148,151,0,153,158,175, + 113,117,118,119,133,136,137,138,139,140, + 143,0,152,156,0,0,157,166,109,0, + 0,0,155,0,165,170,0,176,177,0, + 178,179,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -843,10 +840,10 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLhs { public final static char scopeLhs[] = { - 64,62,5,64,28,28,62,55,109,47, + 64,62,5,64,28,28,62,55,110,47, 28,41,28,47,28,28,68,5,5,28, 28,19,28,102,101,100,45,60,28,38, - 49,3,70,68,7,110,5,68,80,79, + 49,3,70,68,7,111,5,68,80,79, 78,77,76,41,39,41 }; }; @@ -879,24 +876,24 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeRhs { public final static char scopeRhs[] = {0, - 150,15,0,110,0,205,118,0,31,150, + 150,15,0,110,0,205,118,0,31,149, 0,160,181,118,23,168,0,112,0,0, 164,118,2,152,0,111,0,164,118,2, - 0,167,2,0,158,118,0,173,0,195, + 0,167,2,0,158,118,0,172,0,195, 118,15,0,9,110,0,127,32,195,118, - 15,0,69,133,110,0,127,195,118,32, - 15,0,195,118,32,15,0,133,110,0, + 15,0,69,132,110,0,127,195,118,32, + 15,0,195,118,32,15,0,132,110,0, 127,32,15,0,127,195,118,15,0,127, - 15,0,145,0,2,0,166,111,0,2, - 111,0,164,118,2,145,0,2,0,165, - 111,0,156,2,0,160,0,160,193,118, + 15,0,145,0,2,0,165,111,0,2, + 111,0,164,118,2,145,0,2,0,164, + 111,0,156,2,0,159,0,160,193,118, 23,108,201,53,0,112,0,160,193,118, 23,201,53,0,157,0,113,0,200,118, - 157,0,118,157,0,156,113,0,189,118, + 157,0,118,157,0,155,113,0,189,118, 23,199,108,198,173,0,189,118,23,198, - 173,0,188,0,149,0,148,0,147,0, - 146,0,145,0,212,94,0,77,2,115, - 111,113,0,212,133,155,2,98,0,53, + 173,0,188,0,148,0,147,0,146,0, + 145,0,144,0,213,94,0,77,2,115, + 111,113,0,213,133,155,2,98,0,53, 0,0,155,78,125,0,29,132,0,180, 2,0,111,121,0,160,181,118,23,133, 180,2,0,111,3,0,119,0,112,0, @@ -909,16 +906,16 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 1522,0,1772,1802,1764,0,1234,0,1434,1330, - 1392,1512,1361,1282,1240,0,421,0,1207,526, - 362,0,1529,1438,420,389,1330,1596,1282,1240, - 1528,1617,0,1738,1731,1709,1698,1654,1447,1609, - 1601,532,1686,674,562,1343,1211,1411,512,1378, - 1241,737,1500,1489,1478,1455,1678,1665,1646,1252, - 593,1631,1513,1159,1107,457,429,1167,1135,1115, - 1083,1063,1042,1021,747,1187,715,692,608,1000, - 979,958,937,916,895,874,853,832,811,790, - 362,769,651,630,470,491,395,0 + 1436,0,1773,1815,1545,0,418,0,1544,1319, + 1426,1512,1350,1286,1255,0,422,0,1216,562, + 363,0,1334,1243,698,392,1319,1411,1286,1255, + 1543,1680,0,1524,1468,1427,1392,1305,529,1634, + 1514,507,1709,489,397,1218,710,1413,1400,1367, + 1256,773,1498,1487,1476,1444,1700,1692,1681,1336, + 629,1672,1664,1656,1642,1164,430,1192,1172,1140, + 1120,564,1099,1078,783,1057,751,728,644,1036, + 1015,994,973,952,931,910,889,868,847,826, + 363,805,687,666,466,541,445,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -936,18 +933,18 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 197,155,133,118,15,2,153,152,183,12, 184,173,185,55,54,186,53,187,188,108, 115,115,117,117,117,117,116,116,120,119, - 119,122,121,155,124,123,133,23,158,140, + 119,122,121,155,124,123,133,23,158,136, 32,127,118,4,167,118,2,15,198,174, - 174,201,174,68,118,140,4,118,127,195, + 174,201,174,68,118,136,4,118,127,195, 165,164,134,118,166,118,150,4,108,23, - 108,23,181,118,23,168,4,118,195,32, + 108,23,181,118,23,168,4,136,195,32, 127,4,2,143,145,118,38,164,199,118, 23,118,160,38,205,61,15,206,118,23, - 118,165,127,127,156,118,2,158,23,189, + 136,118,127,127,156,118,2,158,23,189, 157,190,118,193,108,194,69,150,61,15, - 118,165,118,118,118,193,160,69,38,150, - 181,164,202,189,200,68,156,2,118,160, - 160,38,38,68,158,141 + 118,118,165,118,118,118,193,160,69,38, + 150,181,165,164,202,189,200,68,156,2, + 118,160,160,38,38,68,158,141 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -1082,12 +1079,11 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab "shift_expression", "relational_expression", "equality_expression", - "AND_expression", - "exclusive_OR_expression", - "inclusive_OR_expression", - "logical_AND_expression", - "logical_OR_expression", - "conditional_expression", + "and_expression", + "exclusive_or_expression", + "inclusive_or_expression", + "logical_and_expression", + "logical_or_expression", "assignment_expression", "expression_list_actual", "constant_expression", @@ -1158,20 +1154,20 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 216, + NUM_STATES = 218, NT_OFFSET = 107, - LA_STATE_OFFSET = 2273, + LA_STATE_OFFSET = 2276, MAX_LA = 2, - NUM_RULES = 361, - NUM_NONTERMINALS = 128, - NUM_SYMBOLS = 235, + NUM_RULES = 362, + NUM_NONTERMINALS = 129, + NUM_SYMBOLS = 236, SEGMENT_SIZE = 8192, - START_STATE = 1793, + START_STATE = 1783, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 89, EOLT_SYMBOL = 89, - ACCEPT_ACTION = 1899, - ERROR_ACTION = 1912; + ACCEPT_ACTION = 1901, + ERROR_ACTION = 1914; public final static boolean BACKTRACK = true;