Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeffrey Overbey2006-01-25 21:57:26 +0000
committerJeffrey Overbey2006-01-25 21:57:26 +0000
commit5aff340a356cd3ed50fc562c9bae08e218f80111 (patch)
treea5a722afab5357fd23d83ecf3c5fe266074b528a
parent98985b047bf5fdaf709b90d53ca52abb116551d3 (diff)
downloadorg.eclipse.photran-5aff340a356cd3ed50fc562c9bae08e218f80111.tar.gz
org.eclipse.photran-5aff340a356cd3ed50fc562c9bae08e218f80111.tar.xz
org.eclipse.photran-5aff340a356cd3ed50fc562c9bae08e218f80111.zip
Refactoring engine refactored
-rw-r--r--org.eclipse.photran.core/.classpath1
-rw-r--r--org.eclipse.photran.core/build.properties4
-rw-r--r--org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/AbstractParserAction.java31
-rw-r--r--org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/AbstractProductionReductions.java6830
-rw-r--r--org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/BuildModelParserAction.java (renamed from org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95parser/BuildModelParserAction.java)18
-rw-r--r--org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/ErrorRecovery.java257
-rw-r--r--org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FixedFormLexerPhase1.flex436
-rw-r--r--org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FixedFormLexerPhase1.java2008
-rw-r--r--org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FixedFormLexerPhase2.java80
-rw-r--r--org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FixedFormLexerPrepass.java382
-rw-r--r--org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/Fortran95-Model.bnf2557
-rw-r--r--org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FortranProcessor.java (renamed from org.eclipse.photran.core/parser/org/eclipse/photran/internal/core/f95parser/FortranProcessor.java)2
-rw-r--r--org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FreeFormLexerPhase1.flex415
-rw-r--r--org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FreeFormLexerPhase1.java3002
-rw-r--r--org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FreeFormLexerPhase2.java1508
-rw-r--r--org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/ILexer.java19
-rw-r--r--org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/IPresentationBlock.java98
-rw-r--r--org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/IPresentationBlockVisitor.java14
-rw-r--r--org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/Lexer.java42
-rw-r--r--org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/NonTreeToken.java141
-rw-r--r--org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/Nonterminal.java6551
-rw-r--r--org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/Parser.java224
-rw-r--r--org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/ParserSymbol.java12
-rw-r--r--org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/SemanticError.java (renamed from org.eclipse.photran.core/parser/org/eclipse/photran/internal/core/f95parser/SemanticError.java)4
-rw-r--r--org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/SyntaxError.java44
-rw-r--r--org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/Terminal.java2319
-rw-r--r--org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/TerminalOrNonterminal.java14
-rw-r--r--org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/Token.java161
-rw-r--r--org.eclipse.photran.core/model/org/eclipse/photran/internal/core/model/FortranElement.java4
-rw-r--r--org.eclipse.photran.core/model/org/eclipse/photran/internal/core/model/FortranModelBuilder.java8
-rw-r--r--org.eclipse.photran.core/model/org/eclipse/photran/internal/core/model/FortranModelBuildingVisitor.java144
-rw-r--r--org.eclipse.photran.core/model/org/eclipse/photran/internal/core/model/FortranParseTreeModelBuildingVisitor.java124
-rw-r--r--org.eclipse.photran.core/model/org/eclipse/photran/internal/core/model/OldFortranElement.java410
-rw-r--r--org.eclipse.photran.core/parser/.classpath6
-rw-r--r--org.eclipse.photran.core/parser/.project17
-rw-r--r--org.eclipse.photran.core/parser/org/eclipse/photran/internal/core/f95parser/ParseTreeSearcher.java574
-rw-r--r--org.eclipse.photran.core/plugin.xml3
-rw-r--r--org.eclipse.photran.ui/.classpath1
-rw-r--r--org.eclipse.photran.ui/src/org/eclipse/photran/internal/ui/editor/FortranAutoIndentStrategy.java6
-rw-r--r--org.eclipse.photran.ui/src/org/eclipse/photran/internal/ui/editor/FortranPartitionScanner.java8
-rw-r--r--org.eclipse.photran.ui/src/org/eclipse/photran/internal/ui/editor/ListOfWordsToIndent.java2
41 files changed, 27174 insertions, 1307 deletions
diff --git a/org.eclipse.photran.core/.classpath b/org.eclipse.photran.core/.classpath
index c468dc46..46abbd82 100644
--- a/org.eclipse.photran.core/.classpath
+++ b/org.eclipse.photran.core/.classpath
@@ -3,7 +3,6 @@
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="errorparsers"/>
<classpathentry kind="src" path="model"/>
- <classpathentry kind="src" path="parser"/>
<classpathentry kind="src" path="preferences"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
diff --git a/org.eclipse.photran.core/build.properties b/org.eclipse.photran.core/build.properties
index 046f3381..baf2ec13 100644
--- a/org.eclipse.photran.core/build.properties
+++ b/org.eclipse.photran.core/build.properties
@@ -5,6 +5,4 @@ source.fdtcore.jar = src/,\
preferences/
output.fdtcore.jar = bin/
bin.includes = plugin.xml,\
- fdtcore.jar,\
- f95parser.jar
-jars.extra.classpath = f95parser.jar
+ fdtcore.jar
diff --git a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/AbstractParserAction.java b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/AbstractParserAction.java
new file mode 100644
index 00000000..972703fa
--- /dev/null
+++ b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/AbstractParserAction.java
@@ -0,0 +1,31 @@
+// Generated by Rex version 1.0 alpha 5
+
+package org.eclipse.photran.internal.core.f95modelparser;
+
+
+/**
+ * User-specified actions, called when the parser is about to
+ * reduce by a certain production
+ */
+public abstract interface AbstractParserAction
+{
+ /**
+ * Returns the production reductions associated with these user actions
+ */
+ public abstract AbstractProductionReductions getProductionReductions();
+
+ /**
+ * This method is called before parsing begins
+ */
+ public abstract void initialize();
+
+ /**
+ * This method is called after parsing completes
+ */
+ public abstract void deinitialize();
+
+ /**
+ * This method is called when a syntax error is found and could not be recovered from
+ */
+ public abstract void syntaxError() throws Exception;
+}
diff --git a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/AbstractProductionReductions.java b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/AbstractProductionReductions.java
new file mode 100644
index 00000000..3bd1879d
--- /dev/null
+++ b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/AbstractProductionReductions.java
@@ -0,0 +1,6830 @@
+// Generated by Rex version 1.0 alpha 5
+
+package org.eclipse.photran.internal.core.f95modelparser;
+
+
+/**
+ * Represents the parsing state corresponding to
+ */
+public abstract interface AbstractProductionReductions
+{
+ /**
+ * Reduce by <xExecutableProgram> ::= <xProgramUnit> ;
+ */
+ public abstract void reduceByProduction1(Parser parser);
+
+ /**
+ * Reduce by <xExecutableProgram> ::= <xExecutableProgram> <xProgramUnit> ;
+ */
+ public abstract void reduceByProduction2(Parser parser);
+
+ /**
+ * Reduce by <xProgramUnit> ::= <xMainProgram> ;
+ */
+ public abstract void reduceByProduction3(Parser parser);
+
+ /**
+ * Reduce by <xProgramUnit> ::= <xFunctionSubprogram> ;
+ */
+ public abstract void reduceByProduction4(Parser parser);
+
+ /**
+ * Reduce by <xProgramUnit> ::= <xSubroutineSubprogram> ;
+ */
+ public abstract void reduceByProduction5(Parser parser);
+
+ /**
+ * Reduce by <xProgramUnit> ::= <xModule> ;
+ */
+ public abstract void reduceByProduction6(Parser parser);
+
+ /**
+ * Reduce by <xProgramUnit> ::= <xBlockDataSubprogram> ;
+ */
+ public abstract void reduceByProduction7(Parser parser);
+
+ /**
+ * Reduce by <xMainProgram> ::= <xMainRange> ;
+ */
+ public abstract void reduceByProduction8(Parser parser);
+
+ /**
+ * Reduce by <xMainProgram> ::= <xProgramStmt> <xMainRange> ;
+ */
+ public abstract void reduceByProduction9(Parser parser);
+
+ /**
+ * Reduce by <xMainRange> ::= <xBody> <xEndProgramStmt> ;
+ */
+ public abstract void reduceByProduction10(Parser parser);
+
+ /**
+ * Reduce by <xMainRange> ::= <xBodyPlusInternals> <xEndProgramStmt> ;
+ */
+ public abstract void reduceByProduction11(Parser parser);
+
+ /**
+ * Reduce by <xMainRange> ::= <xEndProgramStmt> ;
+ */
+ public abstract void reduceByProduction12(Parser parser);
+
+ /**
+ * Reduce by <xBody> ::= <xBodyConstruct> ;
+ */
+ public abstract void reduceByProduction13(Parser parser);
+
+ /**
+ * Reduce by <xBody> ::= <xBody> <xBodyConstruct> ;
+ */
+ public abstract void reduceByProduction14(Parser parser);
+
+ /**
+ * Reduce by <xBodyConstruct> ::= <xSpecificationPartConstruct> ;
+ */
+ public abstract void reduceByProduction15(Parser parser);
+
+ /**
+ * Reduce by <xBodyConstruct> ::= <xExecutableConstruct> ;
+ */
+ public abstract void reduceByProduction16(Parser parser);
+
+ /**
+ * Reduce by <xFunctionSubprogram> ::= <xFunctionStmt> <xFunctionRange> ;
+ */
+ public abstract void reduceByProduction17(Parser parser);
+
+ /**
+ * Reduce by <xFunctionRange> ::= <xBody> <xEndFunctionStmt> ;
+ */
+ public abstract void reduceByProduction18(Parser parser);
+
+ /**
+ * Reduce by <xFunctionRange> ::= <xEndFunctionStmt> ;
+ */
+ public abstract void reduceByProduction19(Parser parser);
+
+ /**
+ * Reduce by <xFunctionRange> ::= <xBodyPlusInternals> <xEndFunctionStmt> ;
+ */
+ public abstract void reduceByProduction20(Parser parser);
+
+ /**
+ * Reduce by <xSubroutineSubprogram> ::= <xSubroutineStmt> <xSubroutineRange> ;
+ */
+ public abstract void reduceByProduction21(Parser parser);
+
+ /**
+ * Reduce by <xSubroutineRange> ::= <xBody> <xEndSubroutineStmt> ;
+ */
+ public abstract void reduceByProduction22(Parser parser);
+
+ /**
+ * Reduce by <xSubroutineRange> ::= <xEndSubroutineStmt> ;
+ */
+ public abstract void reduceByProduction23(Parser parser);
+
+ /**
+ * Reduce by <xSubroutineRange> ::= <xBodyPlusInternals> <xEndSubroutineStmt> ;
+ */
+ public abstract void reduceByProduction24(Parser parser);
+
+ /**
+ * Reduce by <xModule> ::= <xModuleStmt> <xModuleBlock> ;
+ */
+ public abstract void reduceByProduction25(Parser parser);
+
+ /**
+ * Reduce by <xModuleBlock> ::= <xModuleBody> <xEndModuleStmt> ;
+ */
+ public abstract void reduceByProduction26(Parser parser);
+
+ /**
+ * Reduce by <xModuleBlock> ::= <xEndModuleStmt> ;
+ */
+ public abstract void reduceByProduction27(Parser parser);
+
+ /**
+ * Reduce by <xModuleBody> ::= <xSpecificationPartConstruct> ;
+ */
+ public abstract void reduceByProduction28(Parser parser);
+
+ /**
+ * Reduce by <xModuleBody> ::= <xModuleBody> <xSpecificationPartConstruct> ;
+ */
+ public abstract void reduceByProduction29(Parser parser);
+
+ /**
+ * Reduce by <xModuleBody> ::= <xModuleSubprogramPartConstruct> ;
+ */
+ public abstract void reduceByProduction30(Parser parser);
+
+ /**
+ * Reduce by <xModuleBody> ::= <xModuleBody> <xModuleSubprogramPartConstruct> ;
+ */
+ public abstract void reduceByProduction31(Parser parser);
+
+ /**
+ * Reduce by <xBlockDataSubprogram> ::= <xBlockDataStmt> <xBlockDataBody> <xEndBlockDataStmt> ;
+ */
+ public abstract void reduceByProduction32(Parser parser);
+
+ /**
+ * Reduce by <xBlockDataSubprogram> ::= <xBlockDataStmt> <xEndBlockDataStmt> ;
+ */
+ public abstract void reduceByProduction33(Parser parser);
+
+ /**
+ * Reduce by <xBlockDataBody> ::= <xBlockDataBodyConstruct> ;
+ */
+ public abstract void reduceByProduction34(Parser parser);
+
+ /**
+ * Reduce by <xBlockDataBody> ::= <xBlockDataBody> <xBlockDataBodyConstruct> ;
+ */
+ public abstract void reduceByProduction35(Parser parser);
+
+ /**
+ * Reduce by <xBlockDataBodyConstruct> ::= <xSpecificationPartConstruct> ;
+ */
+ public abstract void reduceByProduction36(Parser parser);
+
+ /**
+ * Reduce by <xSpecificationPartConstruct> ::= <xUseStmt> ;
+ */
+ public abstract void reduceByProduction37(Parser parser);
+
+ /**
+ * Reduce by <xSpecificationPartConstruct> ::= <T_xImplicitStmt> ;
+ */
+ public abstract void reduceByProduction38(Parser parser);
+
+ /**
+ * Reduce by <xSpecificationPartConstruct> ::= <xParameterStmt> ;
+ */
+ public abstract void reduceByProduction39(Parser parser);
+
+ /**
+ * Reduce by <xSpecificationPartConstruct> ::= <xFormatStmt> ;
+ */
+ public abstract void reduceByProduction40(Parser parser);
+
+ /**
+ * Reduce by <xSpecificationPartConstruct> ::= <xEntryStmt> ;
+ */
+ public abstract void reduceByProduction41(Parser parser);
+
+ /**
+ * Reduce by <xSpecificationPartConstruct> ::= <xDeclarationConstruct> ;
+ */
+ public abstract void reduceByProduction42(Parser parser);
+
+ /**
+ * Reduce by <xDeclarationConstruct> ::= <xDerivedTypeDef> ;
+ */
+ public abstract void reduceByProduction43(Parser parser);
+
+ /**
+ * Reduce by <xDeclarationConstruct> ::= <xInterfaceBlock> ;
+ */
+ public abstract void reduceByProduction44(Parser parser);
+
+ /**
+ * Reduce by <xDeclarationConstruct> ::= <xTypeDeclarationStmt> ;
+ */
+ public abstract void reduceByProduction45(Parser parser);
+
+ /**
+ * Reduce by <xDeclarationConstruct> ::= <xSpecificationStmt> ;
+ */
+ public abstract void reduceByProduction46(Parser parser);
+
+ /**
+ * Reduce by <xExecutionPartConstruct> ::= <xObsoleteExecutionPartConstruct> ;
+ */
+ public abstract void reduceByProduction47(Parser parser);
+
+ /**
+ * Reduce by <xExecutionPartConstruct> ::= <xExecutableConstruct> ;
+ */
+ public abstract void reduceByProduction48(Parser parser);
+
+ /**
+ * Reduce by <xExecutionPartConstruct> ::= <xFormatStmt> ;
+ */
+ public abstract void reduceByProduction49(Parser parser);
+
+ /**
+ * Reduce by <xExecutionPartConstruct> ::= <xEntryStmt> ;
+ */
+ public abstract void reduceByProduction50(Parser parser);
+
+ /**
+ * Reduce by <xObsoleteExecutionPartConstruct> ::= <xDataStmt> ;
+ */
+ public abstract void reduceByProduction51(Parser parser);
+
+ /**
+ * Reduce by <xBodyPlusInternals> ::= <xBody> <xContainsStmt> <xInternalSubprogram> ;
+ */
+ public abstract void reduceByProduction52(Parser parser);
+
+ /**
+ * Reduce by <xBodyPlusInternals> ::= <xContainsStmt> <xInternalSubprogram> ;
+ */
+ public abstract void reduceByProduction53(Parser parser);
+
+ /**
+ * Reduce by <xBodyPlusInternals> ::= <xBodyPlusInternals> <xInternalSubprogram> ;
+ */
+ public abstract void reduceByProduction54(Parser parser);
+
+ /**
+ * Reduce by <xInternalSubprogram> ::= <xFunctionSubprogram> ;
+ */
+ public abstract void reduceByProduction55(Parser parser);
+
+ /**
+ * Reduce by <xInternalSubprogram> ::= <xSubroutineSubprogram> ;
+ */
+ public abstract void reduceByProduction56(Parser parser);
+
+ /**
+ * Reduce by <xModuleSubprogramPartConstruct> ::= <xContainsStmt> ;
+ */
+ public abstract void reduceByProduction57(Parser parser);
+
+ /**
+ * Reduce by <xModuleSubprogramPartConstruct> ::= <xModuleSubprogram> ;
+ */
+ public abstract void reduceByProduction58(Parser parser);
+
+ /**
+ * Reduce by <xModuleSubprogram> ::= <xFunctionSubprogram> ;
+ */
+ public abstract void reduceByProduction59(Parser parser);
+
+ /**
+ * Reduce by <xModuleSubprogram> ::= <xSubroutineSubprogram> ;
+ */
+ public abstract void reduceByProduction60(Parser parser);
+
+ /**
+ * Reduce by <xSpecificationStmt> ::= <xAccessStmt> ;
+ */
+ public abstract void reduceByProduction61(Parser parser);
+
+ /**
+ * Reduce by <xSpecificationStmt> ::= <xAllocatableStmt> ;
+ */
+ public abstract void reduceByProduction62(Parser parser);
+
+ /**
+ * Reduce by <xSpecificationStmt> ::= <xCommonStmt> ;
+ */
+ public abstract void reduceByProduction63(Parser parser);
+
+ /**
+ * Reduce by <xSpecificationStmt> ::= <xDataStmt> ;
+ */
+ public abstract void reduceByProduction64(Parser parser);
+
+ /**
+ * Reduce by <xSpecificationStmt> ::= <xDimensionStmt> ;
+ */
+ public abstract void reduceByProduction65(Parser parser);
+
+ /**
+ * Reduce by <xSpecificationStmt> ::= <xEquivalenceStmt> ;
+ */
+ public abstract void reduceByProduction66(Parser parser);
+
+ /**
+ * Reduce by <xSpecificationStmt> ::= <xExternalStmt> ;
+ */
+ public abstract void reduceByProduction67(Parser parser);
+
+ /**
+ * Reduce by <xSpecificationStmt> ::= <xIntentStmt> ;
+ */
+ public abstract void reduceByProduction68(Parser parser);
+
+ /**
+ * Reduce by <xSpecificationStmt> ::= <xIntrinsicStmt> ;
+ */
+ public abstract void reduceByProduction69(Parser parser);
+
+ /**
+ * Reduce by <xSpecificationStmt> ::= <xNamelistStmt> ;
+ */
+ public abstract void reduceByProduction70(Parser parser);
+
+ /**
+ * Reduce by <xSpecificationStmt> ::= <xOptionalStmt> ;
+ */
+ public abstract void reduceByProduction71(Parser parser);
+
+ /**
+ * Reduce by <xSpecificationStmt> ::= <xPointerStmt> ;
+ */
+ public abstract void reduceByProduction72(Parser parser);
+
+ /**
+ * Reduce by <xSpecificationStmt> ::= <xSaveStmt> ;
+ */
+ public abstract void reduceByProduction73(Parser parser);
+
+ /**
+ * Reduce by <xSpecificationStmt> ::= <xTargetStmt> ;
+ */
+ public abstract void reduceByProduction74(Parser parser);
+
+ /**
+ * Reduce by <xExecutableConstruct> ::= <xActionStmt> ;
+ */
+ public abstract void reduceByProduction75(Parser parser);
+
+ /**
+ * Reduce by <xExecutableConstruct> ::= <xCaseConstruct> ;
+ */
+ public abstract void reduceByProduction76(Parser parser);
+
+ /**
+ * Reduce by <xExecutableConstruct> ::= <xDoConstruct> ;
+ */
+ public abstract void reduceByProduction77(Parser parser);
+
+ /**
+ * Reduce by <xExecutableConstruct> ::= <xForallConstruct> ;
+ */
+ public abstract void reduceByProduction78(Parser parser);
+
+ /**
+ * Reduce by <xExecutableConstruct> ::= <xIfConstruct> ;
+ */
+ public abstract void reduceByProduction79(Parser parser);
+
+ /**
+ * Reduce by <xExecutableConstruct> ::= <xWhereConstruct> ;
+ */
+ public abstract void reduceByProduction80(Parser parser);
+
+ /**
+ * Reduce by <xExecutableConstruct> ::= <xEndDoStmt> ;
+ */
+ public abstract void reduceByProduction81(Parser parser);
+
+ /**
+ * Reduce by <xActionStmt> ::= <xObsoleteActionStmt> ;
+ */
+ public abstract void reduceByProduction82(Parser parser);
+
+ /**
+ * Reduce by <xActionStmt> ::= <xAllocateStmt> ;
+ */
+ public abstract void reduceByProduction83(Parser parser);
+
+ /**
+ * Reduce by <xActionStmt> ::= <xAssignmentStmt> ;
+ */
+ public abstract void reduceByProduction84(Parser parser);
+
+ /**
+ * Reduce by <xActionStmt> ::= <xBackspaceStmt> ;
+ */
+ public abstract void reduceByProduction85(Parser parser);
+
+ /**
+ * Reduce by <xActionStmt> ::= <xCallStmt> ;
+ */
+ public abstract void reduceByProduction86(Parser parser);
+
+ /**
+ * Reduce by <xActionStmt> ::= <xCloseStmt> ;
+ */
+ public abstract void reduceByProduction87(Parser parser);
+
+ /**
+ * Reduce by <xActionStmt> ::= <xContinueStmt> ;
+ */
+ public abstract void reduceByProduction88(Parser parser);
+
+ /**
+ * Reduce by <xActionStmt> ::= <xCycleStmt> ;
+ */
+ public abstract void reduceByProduction89(Parser parser);
+
+ /**
+ * Reduce by <xActionStmt> ::= <xDeallocateStmt> ;
+ */
+ public abstract void reduceByProduction90(Parser parser);
+
+ /**
+ * Reduce by <xActionStmt> ::= <xEndfileStmt> ;
+ */
+ public abstract void reduceByProduction91(Parser parser);
+
+ /**
+ * Reduce by <xActionStmt> ::= <xExitStmt> ;
+ */
+ public abstract void reduceByProduction92(Parser parser);
+
+ /**
+ * Reduce by <xActionStmt> ::= <xForallStmt> ;
+ */
+ public abstract void reduceByProduction93(Parser parser);
+
+ /**
+ * Reduce by <xActionStmt> ::= <xGotoStmt> ;
+ */
+ public abstract void reduceByProduction94(Parser parser);
+
+ /**
+ * Reduce by <xActionStmt> ::= <xIfStmt> ;
+ */
+ public abstract void reduceByProduction95(Parser parser);
+
+ /**
+ * Reduce by <xActionStmt> ::= <xInquireStmt> ;
+ */
+ public abstract void reduceByProduction96(Parser parser);
+
+ /**
+ * Reduce by <xActionStmt> ::= <xNullifyStmt> ;
+ */
+ public abstract void reduceByProduction97(Parser parser);
+
+ /**
+ * Reduce by <xActionStmt> ::= <xOpenStmt> ;
+ */
+ public abstract void reduceByProduction98(Parser parser);
+
+ /**
+ * Reduce by <xActionStmt> ::= <xPointerAssignmentStmt> ;
+ */
+ public abstract void reduceByProduction99(Parser parser);
+
+ /**
+ * Reduce by <xActionStmt> ::= <xPrintStmt> ;
+ */
+ public abstract void reduceByProduction100(Parser parser);
+
+ /**
+ * Reduce by <xActionStmt> ::= <xReadStmt> ;
+ */
+ public abstract void reduceByProduction101(Parser parser);
+
+ /**
+ * Reduce by <xActionStmt> ::= <xReturnStmt> ;
+ */
+ public abstract void reduceByProduction102(Parser parser);
+
+ /**
+ * Reduce by <xActionStmt> ::= <xRewindStmt> ;
+ */
+ public abstract void reduceByProduction103(Parser parser);
+
+ /**
+ * Reduce by <xActionStmt> ::= <xStopStmt> ;
+ */
+ public abstract void reduceByProduction104(Parser parser);
+
+ /**
+ * Reduce by <xActionStmt> ::= <xWhereStmt> ;
+ */
+ public abstract void reduceByProduction105(Parser parser);
+
+ /**
+ * Reduce by <xActionStmt> ::= <xWriteStmt> ;
+ */
+ public abstract void reduceByProduction106(Parser parser);
+
+ /**
+ * Reduce by <xObsoleteActionStmt> ::= <xStmtFunctionStmt> ;
+ */
+ public abstract void reduceByProduction107(Parser parser);
+
+ /**
+ * Reduce by <xObsoleteActionStmt> ::= <xArithmeticIfStmt> ;
+ */
+ public abstract void reduceByProduction108(Parser parser);
+
+ /**
+ * Reduce by <xObsoleteActionStmt> ::= <xComputedGotoStmt> ;
+ */
+ public abstract void reduceByProduction109(Parser parser);
+
+ /**
+ * Reduce by <xName> ::= T_IDENT ;
+ */
+ public abstract void reduceByProduction110(Parser parser);
+
+ /**
+ * Reduce by <xConstant> ::= <xNamedConstantUse> ;
+ */
+ public abstract void reduceByProduction111(Parser parser);
+
+ /**
+ * Reduce by <xConstant> ::= <xUnsignedArithmeticConstant> ;
+ */
+ public abstract void reduceByProduction112(Parser parser);
+
+ /**
+ * Reduce by <xConstant> ::= T_PLUS <xUnsignedArithmeticConstant> ;
+ */
+ public abstract void reduceByProduction113(Parser parser);
+
+ /**
+ * Reduce by <xConstant> ::= T_MINUS <xUnsignedArithmeticConstant> ;
+ */
+ public abstract void reduceByProduction114(Parser parser);
+
+ /**
+ * Reduce by <xConstant> ::= T_SCON ;
+ */
+ public abstract void reduceByProduction115(Parser parser);
+
+ /**
+ * Reduce by <xConstant> ::= T_ICON T_UNDERSCORE T_SCON ;
+ */
+ public abstract void reduceByProduction116(Parser parser);
+
+ /**
+ * Reduce by <xConstant> ::= <xNamedConstantUse> T_UNDERSCORE T_SCON ;
+ */
+ public abstract void reduceByProduction117(Parser parser);
+
+ /**
+ * Reduce by <xConstant> ::= <xLogicalConstant> ;
+ */
+ public abstract void reduceByProduction118(Parser parser);
+
+ /**
+ * Reduce by <xConstant> ::= <xStructureConstructor> ;
+ */
+ public abstract void reduceByProduction119(Parser parser);
+
+ /**
+ * Reduce by <xConstant> ::= <xBozLiteralConstant> ;
+ */
+ public abstract void reduceByProduction120(Parser parser);
+
+ /**
+ * Reduce by <xConstant> ::= T_HCON ;
+ */
+ public abstract void reduceByProduction121(Parser parser);
+
+ /**
+ * Reduce by <xNamedConstant> ::= T_IDENT ;
+ */
+ public abstract void reduceByProduction122(Parser parser);
+
+ /**
+ * Reduce by <xNamedConstantUse> ::= T_IDENT ;
+ */
+ public abstract void reduceByProduction123(Parser parser);
+
+ /**
+ * Reduce by <xPowerOp> ::= T_POW ;
+ */
+ public abstract void reduceByProduction124(Parser parser);
+
+ /**
+ * Reduce by <xMultOp> ::= T_ASTERISK ;
+ */
+ public abstract void reduceByProduction125(Parser parser);
+
+ /**
+ * Reduce by <xMultOp> ::= T_SLASH ;
+ */
+ public abstract void reduceByProduction126(Parser parser);
+
+ /**
+ * Reduce by <xAddOp> ::= T_PLUS ;
+ */
+ public abstract void reduceByProduction127(Parser parser);
+
+ /**
+ * Reduce by <xAddOp> ::= T_MINUS ;
+ */
+ public abstract void reduceByProduction128(Parser parser);
+
+ /**
+ * Reduce by <xSign> ::= T_PLUS ;
+ */
+ public abstract void reduceByProduction129(Parser parser);
+
+ /**
+ * Reduce by <xSign> ::= T_MINUS ;
+ */
+ public abstract void reduceByProduction130(Parser parser);
+
+ /**
+ * Reduce by <xConcatOp> ::= T_SLASHSLASH ;
+ */
+ public abstract void reduceByProduction131(Parser parser);
+
+ /**
+ * Reduce by <xRelOp> ::= T_EQ ;
+ */
+ public abstract void reduceByProduction132(Parser parser);
+
+ /**
+ * Reduce by <xRelOp> ::= T_NE ;
+ */
+ public abstract void reduceByProduction133(Parser parser);
+
+ /**
+ * Reduce by <xRelOp> ::= T_LT ;
+ */
+ public abstract void reduceByProduction134(Parser parser);
+
+ /**
+ * Reduce by <xRelOp> ::= T_LE ;
+ */
+ public abstract void reduceByProduction135(Parser parser);
+
+ /**
+ * Reduce by <xRelOp> ::= T_GT ;
+ */
+ public abstract void reduceByProduction136(Parser parser);
+
+ /**
+ * Reduce by <xRelOp> ::= T_GE ;
+ */
+ public abstract void reduceByProduction137(Parser parser);
+
+ /**
+ * Reduce by <xRelOp> ::= T_EQEQ ;
+ */
+ public abstract void reduceByProduction138(Parser parser);
+
+ /**
+ * Reduce by <xRelOp> ::= T_SLASHEQ ;
+ */
+ public abstract void reduceByProduction139(Parser parser);
+
+ /**
+ * Reduce by <xRelOp> ::= T_LESSTHAN ;
+ */
+ public abstract void reduceByProduction140(Parser parser);
+
+ /**
+ * Reduce by <xRelOp> ::= T_LESSTHANEQ ;
+ */
+ public abstract void reduceByProduction141(Parser parser);
+
+ /**
+ * Reduce by <xRelOp> ::= T_GREATERTHAN ;
+ */
+ public abstract void reduceByProduction142(Parser parser);
+
+ /**
+ * Reduce by <xRelOp> ::= T_GREATERTHANEQ ;
+ */
+ public abstract void reduceByProduction143(Parser parser);
+
+ /**
+ * Reduce by <xNotOp> ::= T_NOT ;
+ */
+ public abstract void reduceByProduction144(Parser parser);
+
+ /**
+ * Reduce by <xAndOp> ::= T_AND ;
+ */
+ public abstract void reduceByProduction145(Parser parser);
+
+ /**
+ * Reduce by <xOrOp> ::= T_OR ;
+ */
+ public abstract void reduceByProduction146(Parser parser);
+
+ /**
+ * Reduce by <xEquivOp> ::= T_EQV ;
+ */
+ public abstract void reduceByProduction147(Parser parser);
+
+ /**
+ * Reduce by <xEquivOp> ::= T_NEQV ;
+ */
+ public abstract void reduceByProduction148(Parser parser);
+
+ /**
+ * Reduce by <xDefinedOperator> ::= T_XDOP ;
+ */
+ public abstract void reduceByProduction149(Parser parser);
+
+ /**
+ * Reduce by <xDefinedOperator> ::= <xConcatOp> ;
+ */
+ public abstract void reduceByProduction150(Parser parser);
+
+ /**
+ * Reduce by <xDefinedOperator> ::= <xPowerOp> ;
+ */
+ public abstract void reduceByProduction151(Parser parser);
+
+ /**
+ * Reduce by <xDefinedOperator> ::= <xMultOp> ;
+ */
+ public abstract void reduceByProduction152(Parser parser);
+
+ /**
+ * Reduce by <xDefinedOperator> ::= <xAddOp> ;
+ */
+ public abstract void reduceByProduction153(Parser parser);
+
+ /**
+ * Reduce by <xDefinedOperator> ::= <xRelOp> ;
+ */
+ public abstract void reduceByProduction154(Parser parser);
+
+ /**
+ * Reduce by <xDefinedOperator> ::= <xNotOp> ;
+ */
+ public abstract void reduceByProduction155(Parser parser);
+
+ /**
+ * Reduce by <xDefinedOperator> ::= <xAndOp> ;
+ */
+ public abstract void reduceByProduction156(Parser parser);
+
+ /**
+ * Reduce by <xDefinedOperator> ::= <xOrOp> ;
+ */
+ public abstract void reduceByProduction157(Parser parser);
+
+ /**
+ * Reduce by <xDefinedOperator> ::= <xEquivOp> ;
+ */
+ public abstract void reduceByProduction158(Parser parser);
+
+ /**
+ * Reduce by <xDefinedUnaryOp> ::= T_XDOP ;
+ */
+ public abstract void reduceByProduction159(Parser parser);
+
+ /**
+ * Reduce by <xDefinedBinaryOp> ::= T_XDOP ;
+ */
+ public abstract void reduceByProduction160(Parser parser);
+
+ /**
+ * Reduce by <xLabel> ::= T_ICON ;
+ */
+ public abstract void reduceByProduction161(Parser parser);
+
+ /**
+ * Reduce by <xUnsignedArithmeticConstant> ::= T_ICON ;
+ */
+ public abstract void reduceByProduction162(Parser parser);
+
+ /**
+ * Reduce by <xUnsignedArithmeticConstant> ::= T_RCON ;
+ */
+ public abstract void reduceByProduction163(Parser parser);
+
+ /**
+ * Reduce by <xUnsignedArithmeticConstant> ::= T_DCON ;
+ */
+ public abstract void reduceByProduction164(Parser parser);
+
+ /**
+ * Reduce by <xUnsignedArithmeticConstant> ::= <xComplexConst> ;
+ */
+ public abstract void reduceByProduction165(Parser parser);
+
+ /**
+ * Reduce by <xUnsignedArithmeticConstant> ::= T_ICON T_UNDERSCORE <xKindParam> ;
+ */
+ public abstract void reduceByProduction166(Parser parser);
+
+ /**
+ * Reduce by <xUnsignedArithmeticConstant> ::= T_RCON T_UNDERSCORE <xKindParam> ;
+ */
+ public abstract void reduceByProduction167(Parser parser);
+
+ /**
+ * Reduce by <xUnsignedArithmeticConstant> ::= T_DCON T_UNDERSCORE <xKindParam> ;
+ */
+ public abstract void reduceByProduction168(Parser parser);
+
+ /**
+ * Reduce by <xKindParam> ::= T_ICON ;
+ */
+ public abstract void reduceByProduction169(Parser parser);
+
+ /**
+ * Reduce by <xKindParam> ::= <xNamedConstantUse> ;
+ */
+ public abstract void reduceByProduction170(Parser parser);
+
+ /**
+ * Reduce by <xBozLiteralConstant> ::= T_BCON ;
+ */
+ public abstract void reduceByProduction171(Parser parser);
+
+ /**
+ * Reduce by <xBozLiteralConstant> ::= T_OCON ;
+ */
+ public abstract void reduceByProduction172(Parser parser);
+
+ /**
+ * Reduce by <xBozLiteralConstant> ::= T_ZCON ;
+ */
+ public abstract void reduceByProduction173(Parser parser);
+
+ /**
+ * Reduce by <xComplexConst> ::= T_LPAREN <xExpr> T_COMMA <xExpr> T_RPAREN ;
+ */
+ public abstract void reduceByProduction174(Parser parser);
+
+ /**
+ * Reduce by <xLogicalConstant> ::= T_TRUE ;
+ */
+ public abstract void reduceByProduction175(Parser parser);
+
+ /**
+ * Reduce by <xLogicalConstant> ::= T_FALSE ;
+ */
+ public abstract void reduceByProduction176(Parser parser);
+
+ /**
+ * Reduce by <xLogicalConstant> ::= T_TRUE T_UNDERSCORE <xKindParam> ;
+ */
+ public abstract void reduceByProduction177(Parser parser);
+
+ /**
+ * Reduce by <xLogicalConstant> ::= T_FALSE T_UNDERSCORE <xKindParam> ;
+ */
+ public abstract void reduceByProduction178(Parser parser);
+
+ /**
+ * Reduce by <xDerivedTypeDef> ::= <xDerivedTypeStmt> <xDerivedTypeBody> <xEndTypeStmt> ;
+ */
+ public abstract void reduceByProduction179(Parser parser);
+
+ /**
+ * Reduce by <xDerivedTypeBody> ::= <xDerivedTypeBodyConstruct> ;
+ */
+ public abstract void reduceByProduction180(Parser parser);
+
+ /**
+ * Reduce by <xDerivedTypeBody> ::= <xDerivedTypeBody> <xDerivedTypeBodyConstruct> ;
+ */
+ public abstract void reduceByProduction181(Parser parser);
+
+ /**
+ * Reduce by <xDerivedTypeBodyConstruct> ::= <xPrivateSequenceStmt> ;
+ */
+ public abstract void reduceByProduction182(Parser parser);
+
+ /**
+ * Reduce by <xDerivedTypeBodyConstruct> ::= <xComponentDefStmt> ;
+ */
+ public abstract void reduceByProduction183(Parser parser);
+
+ /**
+ * Reduce by <xDerivedTypeStmt> ::= T_TYPE <xTypeName> T_EOS ;
+ */
+ public abstract void reduceByProduction184(Parser parser);
+
+ /**
+ * Reduce by <xDerivedTypeStmt> ::= <xLblDef> T_TYPE <xTypeName> T_EOS ;
+ */
+ public abstract void reduceByProduction185(Parser parser);
+
+ /**
+ * Reduce by <xDerivedTypeStmt> ::= T_TYPE T_COLON T_COLON <xTypeName> T_EOS ;
+ */
+ public abstract void reduceByProduction186(Parser parser);
+
+ /**
+ * Reduce by <xDerivedTypeStmt> ::= <xLblDef> T_TYPE T_COLON T_COLON <xTypeName> T_EOS ;
+ */
+ public abstract void reduceByProduction187(Parser parser);
+
+ /**
+ * Reduce by <xDerivedTypeStmt> ::= T_TYPE T_COMMA <xAccessSpec> T_COLON T_COLON <xTypeName> T_EOS ;
+ */
+ public abstract void reduceByProduction188(Parser parser);
+
+ /**
+ * Reduce by <xDerivedTypeStmt> ::= <xLblDef> T_TYPE T_COMMA <xAccessSpec> T_COLON T_COLON <xTypeName> T_EOS ;
+ */
+ public abstract void reduceByProduction189(Parser parser);
+
+ /**
+ * Reduce by <xPrivateSequenceStmt> ::= T_PRIVATE T_EOS ;
+ */
+ public abstract void reduceByProduction190(Parser parser);
+
+ /**
+ * Reduce by <xPrivateSequenceStmt> ::= <xLblDef> T_PRIVATE T_EOS ;
+ */
+ public abstract void reduceByProduction191(Parser parser);
+
+ /**
+ * Reduce by <xPrivateSequenceStmt> ::= T_SEQUENCE T_EOS ;
+ */
+ public abstract void reduceByProduction192(Parser parser);
+
+ /**
+ * Reduce by <xPrivateSequenceStmt> ::= <xLblDef> T_SEQUENCE T_EOS ;
+ */
+ public abstract void reduceByProduction193(Parser parser);
+
+ /**
+ * Reduce by <xComponentDefStmt> ::= <xTypeSpec> T_COMMA <xComponentAttrSpecList> T_COLON T_COLON <xComponentDeclList> T_EOS ;
+ */
+ public abstract void reduceByProduction194(Parser parser);
+
+ /**
+ * Reduce by <xComponentDefStmt> ::= <xLblDef> <xTypeSpec> T_COMMA <xComponentAttrSpecList> T_COLON T_COLON <xComponentDeclList> T_EOS ;
+ */
+ public abstract void reduceByProduction195(Parser parser);
+
+ /**
+ * Reduce by <xComponentDefStmt> ::= <xTypeSpec> T_COLON T_COLON <xComponentDeclList> T_EOS ;
+ */
+ public abstract void reduceByProduction196(Parser parser);
+
+ /**
+ * Reduce by <xComponentDefStmt> ::= <xLblDef> <xTypeSpec> T_COLON T_COLON <xComponentDeclList> T_EOS ;
+ */
+ public abstract void reduceByProduction197(Parser parser);
+
+ /**
+ * Reduce by <xComponentDefStmt> ::= <xTypeSpec> <xComponentDeclList> T_EOS ;
+ */
+ public abstract void reduceByProduction198(Parser parser);
+
+ /**
+ * Reduce by <xComponentDefStmt> ::= <xLblDef> <xTypeSpec> <xComponentDeclList> T_EOS ;
+ */
+ public abstract void reduceByProduction199(Parser parser);
+
+ /**
+ * Reduce by <xComponentAttrSpecList> ::= <xComponentAttrSpec> ;
+ */
+ public abstract void reduceByProduction200(Parser parser);
+
+ /**
+ * Reduce by <xComponentAttrSpecList> ::= <xComponentAttrSpecList> T_COMMA <xComponentAttrSpec> ;
+ */
+ public abstract void reduceByProduction201(Parser parser);
+
+ /**
+ * Reduce by <xComponentAttrSpec> ::= T_POINTER ;
+ */
+ public abstract void reduceByProduction202(Parser parser);
+
+ /**
+ * Reduce by <xComponentAttrSpec> ::= T_DIMENSION T_LPAREN <xComponentArraySpec> T_RPAREN ;
+ */
+ public abstract void reduceByProduction203(Parser parser);
+
+ /**
+ * Reduce by <xComponentArraySpec> ::= <xExplicitShapeSpecList> ;
+ */
+ public abstract void reduceByProduction204(Parser parser);
+
+ /**
+ * Reduce by <xComponentArraySpec> ::= <xDeferredShapeSpecList> ;
+ */
+ public abstract void reduceByProduction205(Parser parser);
+
+ /**
+ * Reduce by <xComponentDeclList> ::= <xComponentDecl> ;
+ */
+ public abstract void reduceByProduction206(Parser parser);
+
+ /**
+ * Reduce by <xComponentDeclList> ::= <xComponentDeclList> T_COMMA <xComponentDecl> ;
+ */
+ public abstract void reduceByProduction207(Parser parser);
+
+ /**
+ * Reduce by <xComponentDecl> ::= <xComponentName> T_LPAREN <xComponentArraySpec> T_RPAREN T_ASTERISK <xCharLength> <xComponentInitialization> ;
+ */
+ public abstract void reduceByProduction208(Parser parser);
+
+ /**
+ * Reduce by <xComponentDecl> ::= <xComponentName> T_LPAREN <xComponentArraySpec> T_RPAREN <xComponentInitialization> ;
+ */
+ public abstract void reduceByProduction209(Parser parser);
+
+ /**
+ * Reduce by <xComponentDecl> ::= <xComponentName> T_ASTERISK <xCharLength> <xComponentInitialization> ;
+ */
+ public abstract void reduceByProduction210(Parser parser);
+
+ /**
+ * Reduce by <xComponentDecl> ::= <xComponentName> <xComponentInitialization> ;
+ */
+ public abstract void reduceByProduction211(Parser parser);
+
+ /**
+ * Reduce by <xComponentDecl> ::= <xComponentName> T_LPAREN <xComponentArraySpec> T_RPAREN T_ASTERISK <xCharLength> ;
+ */
+ public abstract void reduceByProduction212(Parser parser);
+
+ /**
+ * Reduce by <xComponentDecl> ::= <xComponentName> T_LPAREN <xComponentArraySpec> T_RPAREN ;
+ */
+ public abstract void reduceByProduction213(Parser parser);
+
+ /**
+ * Reduce by <xComponentDecl> ::= <xComponentName> T_ASTERISK <xCharLength> ;
+ */
+ public abstract void reduceByProduction214(Parser parser);
+
+ /**
+ * Reduce by <xComponentDecl> ::= <xComponentName> ;
+ */
+ public abstract void reduceByProduction215(Parser parser);
+
+ /**
+ * Reduce by <xComponentInitialization> ::= T_EQUALS <xExpr> ;
+ */
+ public abstract void reduceByProduction216(Parser parser);
+
+ /**
+ * Reduce by <xComponentInitialization> ::= T_EQGREATERTHAN T_NULL T_LPAREN T_RPAREN ;
+ */
+ public abstract void reduceByProduction217(Parser parser);
+
+ /**
+ * Reduce by <xEndTypeStmt> ::= T_ENDTYPE T_EOS ;
+ */
+ public abstract void reduceByProduction218(Parser parser);
+
+ /**
+ * Reduce by <xEndTypeStmt> ::= T_ENDTYPE <xEndTypeStmt@1> T_EOS ;
+ */
+ public abstract void reduceByProduction219(Parser parser);
+
+ /**
+ * Reduce by <xEndTypeStmt> ::= <xLblDef> T_ENDTYPE T_EOS ;
+ */
+ public abstract void reduceByProduction220(Parser parser);
+
+ /**
+ * Reduce by <xEndTypeStmt> ::= <xLblDef> T_ENDTYPE <xEndTypeStmt@1> T_EOS ;
+ */
+ public abstract void reduceByProduction221(Parser parser);
+
+ /**
+ * Reduce by <xEndTypeStmt> ::= T_END T_TYPE T_EOS ;
+ */
+ public abstract void reduceByProduction222(Parser parser);
+
+ /**
+ * Reduce by <xEndTypeStmt> ::= T_END T_TYPE <xEndTypeStmt@2> T_EOS ;
+ */
+ public abstract void reduceByProduction223(Parser parser);
+
+ /**
+ * Reduce by <xEndTypeStmt> ::= <xLblDef> T_END T_TYPE T_EOS ;
+ */
+ public abstract void reduceByProduction224(Parser parser);
+
+ /**
+ * Reduce by <xEndTypeStmt> ::= <xLblDef> T_END T_TYPE <xEndTypeStmt@2> T_EOS ;
+ */
+ public abstract void reduceByProduction225(Parser parser);
+
+ /**
+ * Reduce by <xStructureConstructor> ::= <xTypeName> T_LPAREN <xExprList> T_RPAREN ;
+ */
+ public abstract void reduceByProduction226(Parser parser);
+
+ /**
+ * Reduce by <xExprList> ::= <xExpr> ;
+ */
+ public abstract void reduceByProduction227(Parser parser);
+
+ /**
+ * Reduce by <xExprList> ::= <xExprList> T_COMMA <xExpr> ;
+ */
+ public abstract void reduceByProduction228(Parser parser);
+
+ /**
+ * Reduce by <xArrayConstructor> ::= T_LPARENSLASH <xAcValueList> T_SLASHRPAREN ;
+ */
+ public abstract void reduceByProduction229(Parser parser);
+
+ /**
+ * Reduce by <xAcValueList> ::= <xExpr> ;
+ */
+ public abstract void reduceByProduction230(Parser parser);
+
+ /**
+ * Reduce by <xAcValueList> ::= <xAcValueList1> ;
+ */
+ public abstract void reduceByProduction231(Parser parser);
+
+ /**
+ * Reduce by <xAcValueList1> ::= <xExpr> T_COMMA <xExpr> ;
+ */
+ public abstract void reduceByProduction232(Parser parser);
+
+ /**
+ * Reduce by <xAcValueList1> ::= <xExpr> T_COMMA <xAcImpliedDo> ;
+ */
+ public abstract void reduceByProduction233(Parser parser);
+
+ /**
+ * Reduce by <xAcValueList1> ::= <xAcImpliedDo> ;
+ */
+ public abstract void reduceByProduction234(Parser parser);
+
+ /**
+ * Reduce by <xAcValueList1> ::= <xAcValueList1> T_COMMA <xExpr> ;
+ */
+ public abstract void reduceByProduction235(Parser parser);
+
+ /**
+ * Reduce by <xAcValueList1> ::= <xAcValueList1> T_COMMA <xAcImpliedDo> ;
+ */
+ public abstract void reduceByProduction236(Parser parser);
+
+ /**
+ * Reduce by <xAcImpliedDo> ::= T_LPAREN <xExpr> T_COMMA <T_xImpliedDoVariable> T_EQUALS <xExpr> T_COMMA <xExpr> T_RPAREN ;
+ */
+ public abstract void reduceByProduction237(Parser parser);
+
+ /**
+ * Reduce by <xAcImpliedDo> ::= T_LPAREN <xExpr> T_COMMA <T_xImpliedDoVariable> T_EQUALS <xExpr> T_COMMA <xExpr> T_COMMA <xExpr> T_RPAREN ;
+ */
+ public abstract void reduceByProduction238(Parser parser);
+
+ /**
+ * Reduce by <xAcImpliedDo> ::= T_LPAREN <xAcImpliedDo> T_COMMA <T_xImpliedDoVariable> T_EQUALS <xExpr> T_COMMA <xExpr> T_RPAREN ;
+ */
+ public abstract void reduceByProduction239(Parser parser);
+
+ /**
+ * Reduce by <xAcImpliedDo> ::= T_LPAREN <xAcImpliedDo> T_COMMA <T_xImpliedDoVariable> T_EQUALS <xExpr> T_COMMA <xExpr> T_COMMA <xExpr> T_RPAREN ;
+ */
+ public abstract void reduceByProduction240(Parser parser);
+
+ /**
+ * Reduce by <xTypeDeclarationStmt> ::= <xTypeSpec> <xAttrSpecSeq> T_COLON T_COLON <xEntityDeclList> T_EOS ;
+ */
+ public abstract void reduceByProduction241(Parser parser);
+
+ /**
+ * Reduce by <xTypeDeclarationStmt> ::= <xLblDef> <xTypeSpec> <xAttrSpecSeq> T_COLON T_COLON <xEntityDeclList> T_EOS ;
+ */
+ public abstract void reduceByProduction242(Parser parser);
+
+ /**
+ * Reduce by <xTypeDeclarationStmt> ::= <xTypeSpec> T_COLON T_COLON <xEntityDeclList> T_EOS ;
+ */
+ public abstract void reduceByProduction243(Parser parser);
+
+ /**
+ * Reduce by <xTypeDeclarationStmt> ::= <xLblDef> <xTypeSpec> T_COLON T_COLON <xEntityDeclList> T_EOS ;
+ */
+ public abstract void reduceByProduction244(Parser parser);
+
+ /**
+ * Reduce by <xTypeDeclarationStmt> ::= <xTypeSpec> <xEntityDeclList> T_EOS ;
+ */
+ public abstract void reduceByProduction245(Parser parser);
+
+ /**
+ * Reduce by <xTypeDeclarationStmt> ::= <xLblDef> <xTypeSpec> <xEntityDeclList> T_EOS ;
+ */
+ public abstract void reduceByProduction246(Parser parser);
+
+ /**
+ * Reduce by <xAttrSpecSeq> ::= T_COMMA <xAttrSpec> ;
+ */
+ public abstract void reduceByProduction247(Parser parser);
+
+ /**
+ * Reduce by <xAttrSpecSeq> ::= <xAttrSpecSeq> T_COMMA <xAttrSpec> ;
+ */
+ public abstract void reduceByProduction248(Parser parser);
+
+ /**
+ * Reduce by <xTypeSpec> ::= T_INTEGER ;
+ */
+ public abstract void reduceByProduction249(Parser parser);
+
+ /**
+ * Reduce by <xTypeSpec> ::= T_REAL ;
+ */
+ public abstract void reduceByProduction250(Parser parser);
+
+ /**
+ * Reduce by <xTypeSpec> ::= T_DOUBLEPRECISION ;
+ */
+ public abstract void reduceByProduction251(Parser parser);
+
+ /**
+ * Reduce by <xTypeSpec> ::= T_COMPLEX ;
+ */
+ public abstract void reduceByProduction252(Parser parser);
+
+ /**
+ * Reduce by <xTypeSpec> ::= T_LOGICAL ;
+ */
+ public abstract void reduceByProduction253(Parser parser);
+
+ /**
+ * Reduce by <xTypeSpec> ::= T_CHARACTER ;
+ */
+ public abstract void reduceByProduction254(Parser parser);
+
+ /**
+ * Reduce by <xTypeSpec> ::= T_INTEGER <xKindSelector> ;
+ */
+ public abstract void reduceByProduction255(Parser parser);
+
+ /**
+ * Reduce by <xTypeSpec> ::= T_REAL <xKindSelector> ;
+ */
+ public abstract void reduceByProduction256(Parser parser);
+
+ /**
+ * Reduce by <xTypeSpec> ::= T_DOUBLE T_PRECISION ;
+ */
+ public abstract void reduceByProduction257(Parser parser);
+
+ /**
+ * Reduce by <xTypeSpec> ::= T_COMPLEX <xKindSelector> ;
+ */
+ public abstract void reduceByProduction258(Parser parser);
+
+ /**
+ * Reduce by <xTypeSpec> ::= T_CHARACTER <xCharSelector> ;
+ */
+ public abstract void reduceByProduction259(Parser parser);
+
+ /**
+ * Reduce by <xTypeSpec> ::= T_LOGICAL <xKindSelector> ;
+ */
+ public abstract void reduceByProduction260(Parser parser);
+
+ /**
+ * Reduce by <xTypeSpec> ::= T_TYPE T_LPAREN <xTypeName> T_RPAREN ;
+ */
+ public abstract void reduceByProduction261(Parser parser);
+
+ /**
+ * Reduce by <xAttrSpec> ::= T_PARAMETER ;
+ */
+ public abstract void reduceByProduction262(Parser parser);
+
+ /**
+ * Reduce by <xAttrSpec> ::= <xAccessSpec> ;
+ */
+ public abstract void reduceByProduction263(Parser parser);
+
+ /**
+ * Reduce by <xAttrSpec> ::= T_ALLOCATABLE ;
+ */
+ public abstract void reduceByProduction264(Parser parser);
+
+ /**
+ * Reduce by <xAttrSpec> ::= T_DIMENSION T_LPAREN <xArraySpec> T_RPAREN ;
+ */
+ public abstract void reduceByProduction265(Parser parser);
+
+ /**
+ * Reduce by <xAttrSpec> ::= T_EXTERNAL ;
+ */
+ public abstract void reduceByProduction266(Parser parser);
+
+ /**
+ * Reduce by <xAttrSpec> ::= T_INTENT T_LPAREN <xIntentSpec> T_RPAREN ;
+ */
+ public abstract void reduceByProduction267(Parser parser);
+
+ /**
+ * Reduce by <xAttrSpec> ::= T_INTRINSIC ;
+ */
+ public abstract void reduceByProduction268(Parser parser);
+
+ /**
+ * Reduce by <xAttrSpec> ::= T_OPTIONAL ;
+ */
+ public abstract void reduceByProduction269(Parser parser);
+
+ /**
+ * Reduce by <xAttrSpec> ::= T_POINTER ;
+ */
+ public abstract void reduceByProduction270(Parser parser);
+
+ /**
+ * Reduce by <xAttrSpec> ::= T_SAVE ;
+ */
+ public abstract void reduceByProduction271(Parser parser);
+
+ /**
+ * Reduce by <xAttrSpec> ::= T_TARGET ;
+ */
+ public abstract void reduceByProduction272(Parser parser);
+
+ /**
+ * Reduce by <xEntityDeclList> ::= <xEntityDecl> ;
+ */
+ public abstract void reduceByProduction273(Parser parser);
+
+ /**
+ * Reduce by <xEntityDeclList> ::= <xEntityDeclList> T_COMMA <xEntityDecl> ;
+ */
+ public abstract void reduceByProduction274(Parser parser);
+
+ /**
+ * Reduce by <xEntityDecl> ::= <xObjectName> ;
+ */
+ public abstract void reduceByProduction275(Parser parser);
+
+ /**
+ * Reduce by <xEntityDecl> ::= <xObjectName> <xEntityDecl@5> ;
+ */
+ public abstract void reduceByProduction276(Parser parser);
+
+ /**
+ * Reduce by <xEntityDecl> ::= <xObjectName> <xEntityDecl@4> ;
+ */
+ public abstract void reduceByProduction277(Parser parser);
+
+ /**
+ * Reduce by <xEntityDecl> ::= <xObjectName> <xEntityDecl@4> <xEntityDecl@5> ;
+ */
+ public abstract void reduceByProduction278(Parser parser);
+
+ /**
+ * Reduce by <xEntityDecl> ::= <xObjectName> <xEntityDecl@3> ;
+ */
+ public abstract void reduceByProduction279(Parser parser);
+
+ /**
+ * Reduce by <xEntityDecl> ::= <xObjectName> <xEntityDecl@3> <xEntityDecl@5> ;
+ */
+ public abstract void reduceByProduction280(Parser parser);
+
+ /**
+ * Reduce by <xEntityDecl> ::= <xObjectName> <xEntityDecl@3> <xEntityDecl@4> ;
+ */
+ public abstract void reduceByProduction281(Parser parser);
+
+ /**
+ * Reduce by <xEntityDecl> ::= <xObjectName> <xEntityDecl@3> <xEntityDecl@4> <xEntityDecl@5> ;
+ */
+ public abstract void reduceByProduction282(Parser parser);
+
+ /**
+ * Reduce by <xEntityDecl> ::= <xInvalidEntityDecl> ;
+ */
+ public abstract void reduceByProduction283(Parser parser);
+
+ /**
+ * Reduce by <xInvalidEntityDecl> ::= <xObjectName> T_ASTERISK <xCharLength> T_LPAREN <xArraySpec> T_RPAREN ;
+ */
+ public abstract void reduceByProduction284(Parser parser);
+
+ /**
+ * Reduce by <xInvalidEntityDecl> ::= <xObjectName> T_ASTERISK <xCharLength> T_LPAREN <xArraySpec> T_RPAREN <xInvalidEntityDecl@6> ;
+ */
+ public abstract void reduceByProduction285(Parser parser);
+
+ /**
+ * Reduce by <xInitialization> ::= T_EQUALS <xExpr> ;
+ */
+ public abstract void reduceByProduction286(Parser parser);
+
+ /**
+ * Reduce by <xInitialization> ::= T_EQGREATERTHAN T_NULL T_LPAREN T_RPAREN ;
+ */
+ public abstract void reduceByProduction287(Parser parser);
+
+ /**
+ * Reduce by <xKindSelector> ::= T_LPAREN T_KINDEQ <xExpr> T_RPAREN ;
+ */
+ public abstract void reduceByProduction288(Parser parser);
+
+ /**
+ * Reduce by <xKindSelector> ::= T_LPAREN <xExpr> T_RPAREN ;
+ */
+ public abstract void reduceByProduction289(Parser parser);
+
+ /**
+ * Reduce by <xCharSelector> ::= <xLengthSelector> ;
+ */
+ public abstract void reduceByProduction290(Parser parser);
+
+ /**
+ * Reduce by <xCharSelector> ::= T_LPAREN T_LENEQ <xCharLenParamValue> T_COMMA T_KINDEQ <xExpr> T_RPAREN ;
+ */
+ public abstract void reduceByProduction291(Parser parser);
+
+ /**
+ * Reduce by <xCharSelector> ::= T_LPAREN T_LENEQ <xCharLenParamValue> T_COMMA <xExpr> T_RPAREN ;
+ */
+ public abstract void reduceByProduction292(Parser parser);
+
+ /**
+ * Reduce by <xCharSelector> ::= T_LPAREN T_KINDEQ <xExpr> T_RPAREN ;
+ */
+ public abstract void reduceByProduction293(Parser parser);
+
+ /**
+ * Reduce by <xCharSelector> ::= T_LPAREN T_LENEQ <xCharLenParamValue> T_RPAREN ;
+ */
+ public abstract void reduceByProduction294(Parser parser);
+
+ /**
+ * Reduce by <xCharSelector> ::= T_LPAREN <xCharLenParamValue> T_RPAREN ;
+ */
+ public abstract void reduceByProduction295(Parser parser);
+
+ /**
+ * Reduce by <xLengthSelector> ::= T_ASTERISK <xCharLength> ;
+ */
+ public abstract void reduceByProduction296(Parser parser);
+
+ /**
+ * Reduce by <xCharLength> ::= T_LPAREN <xCharLenParamValue> T_RPAREN ;
+ */
+ public abstract void reduceByProduction297(Parser parser);
+
+ /**
+ * Reduce by <xCharLength> ::= T_ICON ;
+ */
+ public abstract void reduceByProduction298(Parser parser);
+
+ /**
+ * Reduce by <xCharLenParamValue> ::= <xExpr> ;
+ */
+ public abstract void reduceByProduction299(Parser parser);
+
+ /**
+ * Reduce by <xCharLenParamValue> ::= T_ASTERISK ;
+ */
+ public abstract void reduceByProduction300(Parser parser);
+
+ /**
+ * Reduce by <xAccessSpec> ::= T_PUBLIC ;
+ */
+ public abstract void reduceByProduction301(Parser parser);
+
+ /**
+ * Reduce by <xAccessSpec> ::= T_PRIVATE ;
+ */
+ public abstract void reduceByProduction302(Parser parser);
+
+ /**
+ * Reduce by <xIntentSpec> ::= T_IN ;
+ */
+ public abstract void reduceByProduction303(Parser parser);
+
+ /**
+ * Reduce by <xIntentSpec> ::= T_OUT ;
+ */
+ public abstract void reduceByProduction304(Parser parser);
+
+ /**
+ * Reduce by <xIntentSpec> ::= T_INOUT ;
+ */
+ public abstract void reduceByProduction305(Parser parser);
+
+ /**
+ * Reduce by <xIntentSpec> ::= T_IN T_OUT ;
+ */
+ public abstract void reduceByProduction306(Parser parser);
+
+ /**
+ * Reduce by <xArraySpec> ::= <xExplicitShapeSpecList> ;
+ */
+ public abstract void reduceByProduction307(Parser parser);
+
+ /**
+ * Reduce by <xArraySpec> ::= <xAssumedSizeSpec> ;
+ */
+ public abstract void reduceByProduction308(Parser parser);
+
+ /**
+ * Reduce by <xArraySpec> ::= <xAssumedShapeSpecList> ;
+ */
+ public abstract void reduceByProduction309(Parser parser);
+
+ /**
+ * Reduce by <xArraySpec> ::= <xDeferredShapeSpecList> ;
+ */
+ public abstract void reduceByProduction310(Parser parser);
+
+ /**
+ * Reduce by <xAssumedShapeSpecList> ::= <xLowerBound> T_COLON ;
+ */
+ public abstract void reduceByProduction311(Parser parser);
+
+ /**
+ * Reduce by <xAssumedShapeSpecList> ::= <xDeferredShapeSpecList> T_COMMA <xLowerBound> T_COLON ;
+ */
+ public abstract void reduceByProduction312(Parser parser);
+
+ /**
+ * Reduce by <xAssumedShapeSpecList> ::= <xAssumedShapeSpecList> T_COMMA <xAssumedShapeSpec> ;
+ */
+ public abstract void reduceByProduction313(Parser parser);
+
+ /**
+ * Reduce by <xExplicitShapeSpecList> ::= <xExplicitShapeSpec> ;
+ */
+ public abstract void reduceByProduction314(Parser parser);
+
+ /**
+ * Reduce by <xExplicitShapeSpecList> ::= <xExplicitShapeSpecList> T_COMMA <xExplicitShapeSpec> ;
+ */
+ public abstract void reduceByProduction315(Parser parser);
+
+ /**
+ * Reduce by <xExplicitShapeSpec> ::= <xLowerBound> T_COLON <xUpperBound> ;
+ */
+ public abstract void reduceByProduction316(Parser parser);
+
+ /**
+ * Reduce by <xExplicitShapeSpec> ::= <xUpperBound> ;
+ */
+ public abstract void reduceByProduction317(Parser parser);
+
+ /**
+ * Reduce by <xLowerBound> ::= <xExpr> ;
+ */
+ public abstract void reduceByProduction318(Parser parser);
+
+ /**
+ * Reduce by <xUpperBound> ::= <xExpr> ;
+ */
+ public abstract void reduceByProduction319(Parser parser);
+
+ /**
+ * Reduce by <xAssumedShapeSpec> ::= <xLowerBound> T_COLON ;
+ */
+ public abstract void reduceByProduction320(Parser parser);
+
+ /**
+ * Reduce by <xAssumedShapeSpec> ::= T_COLON ;
+ */
+ public abstract void reduceByProduction321(Parser parser);
+
+ /**
+ * Reduce by <xDeferredShapeSpecList> ::= <xDeferredShapeSpec> ;
+ */
+ public abstract void reduceByProduction322(Parser parser);
+
+ /**
+ * Reduce by <xDeferredShapeSpecList> ::= <xDeferredShapeSpecList> T_COMMA <xDeferredShapeSpec> ;
+ */
+ public abstract void reduceByProduction323(Parser parser);
+
+ /**
+ * Reduce by <xDeferredShapeSpec> ::= T_COLON ;
+ */
+ public abstract void reduceByProduction324(Parser parser);
+
+ /**
+ * Reduce by <xAssumedSizeSpec> ::= T_ASTERISK ;
+ */
+ public abstract void reduceByProduction325(Parser parser);
+
+ /**
+ * Reduce by <xAssumedSizeSpec> ::= <xLowerBound> T_COLON T_ASTERISK ;
+ */
+ public abstract void reduceByProduction326(Parser parser);
+
+ /**
+ * Reduce by <xAssumedSizeSpec> ::= <xExplicitShapeSpecList> T_COMMA T_ASTERISK ;
+ */
+ public abstract void reduceByProduction327(Parser parser);
+
+ /**
+ * Reduce by <xAssumedSizeSpec> ::= <xExplicitShapeSpecList> T_COMMA <xLowerBound> T_COLON T_ASTERISK ;
+ */
+ public abstract void reduceByProduction328(Parser parser);
+
+ /**
+ * Reduce by <xIntentStmt> ::= T_INTENT T_LPAREN <xIntentSpec> T_RPAREN <xIntentParList> T_EOS ;
+ */
+ public abstract void reduceByProduction329(Parser parser);
+
+ /**
+ * Reduce by <xIntentStmt> ::= T_INTENT T_LPAREN <xIntentSpec> T_RPAREN <xIntentStmt@7> <xIntentParList> T_EOS ;
+ */
+ public abstract void reduceByProduction330(Parser parser);
+
+ /**
+ * Reduce by <xIntentStmt> ::= <xLblDef> T_INTENT T_LPAREN <xIntentSpec> T_RPAREN <xIntentParList> T_EOS ;
+ */
+ public abstract void reduceByProduction331(Parser parser);
+
+ /**
+ * Reduce by <xIntentStmt> ::= <xLblDef> T_INTENT T_LPAREN <xIntentSpec> T_RPAREN <xIntentStmt@7> <xIntentParList> T_EOS ;
+ */
+ public abstract void reduceByProduction332(Parser parser);
+
+ /**
+ * Reduce by <xIntentParList> ::= <xIntentPar> ;
+ */
+ public abstract void reduceByProduction333(Parser parser);
+
+ /**
+ * Reduce by <xIntentParList> ::= <xIntentParList> T_COMMA <xIntentPar> ;
+ */
+ public abstract void reduceByProduction334(Parser parser);
+
+ /**
+ * Reduce by <xIntentPar> ::= <xDummyArgName> ;
+ */
+ public abstract void reduceByProduction335(Parser parser);
+
+ /**
+ * Reduce by <xOptionalStmt> ::= T_OPTIONAL <xOptionalParList> T_EOS ;
+ */
+ public abstract void reduceByProduction336(Parser parser);
+
+ /**
+ * Reduce by <xOptionalStmt> ::= T_OPTIONAL <xOptionalStmt@8> <xOptionalParList> T_EOS ;
+ */
+ public abstract void reduceByProduction337(Parser parser);
+
+ /**
+ * Reduce by <xOptionalStmt> ::= <xLblDef> T_OPTIONAL <xOptionalParList> T_EOS ;
+ */
+ public abstract void reduceByProduction338(Parser parser);
+
+ /**
+ * Reduce by <xOptionalStmt> ::= <xLblDef> T_OPTIONAL <xOptionalStmt@8> <xOptionalParList> T_EOS ;
+ */
+ public abstract void reduceByProduction339(Parser parser);
+
+ /**
+ * Reduce by <xOptionalParList> ::= <xOptionalPar> ;
+ */
+ public abstract void reduceByProduction340(Parser parser);
+
+ /**
+ * Reduce by <xOptionalParList> ::= <xOptionalParList> T_COMMA <xOptionalPar> ;
+ */
+ public abstract void reduceByProduction341(Parser parser);
+
+ /**
+ * Reduce by <xOptionalPar> ::= <xDummyArgName> ;
+ */
+ public abstract void reduceByProduction342(Parser parser);
+
+ /**
+ * Reduce by <xAccessStmt> ::= <xAccessSpec> <xAccessIdList> T_EOS ;
+ */
+ public abstract void reduceByProduction343(Parser parser);
+
+ /**
+ * Reduce by <xAccessStmt> ::= <xAccessSpec> <xAccessStmt@9> <xAccessIdList> T_EOS ;
+ */
+ public abstract void reduceByProduction344(Parser parser);
+
+ /**
+ * Reduce by <xAccessStmt> ::= <xLblDef> <xAccessSpec> <xAccessIdList> T_EOS ;
+ */
+ public abstract void reduceByProduction345(Parser parser);
+
+ /**
+ * Reduce by <xAccessStmt> ::= <xLblDef> <xAccessSpec> <xAccessStmt@9> <xAccessIdList> T_EOS ;
+ */
+ public abstract void reduceByProduction346(Parser parser);
+
+ /**
+ * Reduce by <xAccessStmt> ::= <xAccessSpec> T_EOS ;
+ */
+ public abstract void reduceByProduction347(Parser parser);
+
+ /**
+ * Reduce by <xAccessStmt> ::= <xLblDef> <xAccessSpec> T_EOS ;
+ */
+ public abstract void reduceByProduction348(Parser parser);
+
+ /**
+ * Reduce by <xAccessIdList> ::= <xAccessId> ;
+ */
+ public abstract void reduceByProduction349(Parser parser);
+
+ /**
+ * Reduce by <xAccessIdList> ::= <xAccessIdList> T_COMMA <xAccessId> ;
+ */
+ public abstract void reduceByProduction350(Parser parser);
+
+ /**
+ * Reduce by <xAccessId> ::= <xGenericName> ;
+ */
+ public abstract void reduceByProduction351(Parser parser);
+
+ /**
+ * Reduce by <xAccessId> ::= <xGenericSpec> ;
+ */
+ public abstract void reduceByProduction352(Parser parser);
+
+ /**
+ * Reduce by <xSaveStmt> ::= T_SAVE T_EOS ;
+ */
+ public abstract void reduceByProduction353(Parser parser);
+
+ /**
+ * Reduce by <xSaveStmt> ::= <xLblDef> T_SAVE T_EOS ;
+ */
+ public abstract void reduceByProduction354(Parser parser);
+
+ /**
+ * Reduce by <xSaveStmt> ::= T_SAVE <xSavedEntityList> T_EOS ;
+ */
+ public abstract void reduceByProduction355(Parser parser);
+
+ /**
+ * Reduce by <xSaveStmt> ::= T_SAVE <xSaveStmt@10> <xSavedEntityList> T_EOS ;
+ */
+ public abstract void reduceByProduction356(Parser parser);
+
+ /**
+ * Reduce by <xSaveStmt> ::= <xLblDef> T_SAVE <xSavedEntityList> T_EOS ;
+ */
+ public abstract void reduceByProduction357(Parser parser);
+
+ /**
+ * Reduce by <xSaveStmt> ::= <xLblDef> T_SAVE <xSaveStmt@10> <xSavedEntityList> T_EOS ;
+ */
+ public abstract void reduceByProduction358(Parser parser);
+
+ /**
+ * Reduce by <xSavedEntityList> ::= <xSavedEntity> ;
+ */
+ public abstract void reduceByProduction359(Parser parser);
+
+ /**
+ * Reduce by <xSavedEntityList> ::= <xSavedEntityList> T_COMMA <xSavedEntity> ;
+ */
+ public abstract void reduceByProduction360(Parser parser);
+
+ /**
+ * Reduce by <xSavedEntity> ::= <xVariableName> ;
+ */
+ public abstract void reduceByProduction361(Parser parser);
+
+ /**
+ * Reduce by <xSavedEntity> ::= <xSavedCommonBlock> ;
+ */
+ public abstract void reduceByProduction362(Parser parser);
+
+ /**
+ * Reduce by <xSavedCommonBlock> ::= T_SLASH <xCommonBlockName> T_SLASH ;
+ */
+ public abstract void reduceByProduction363(Parser parser);
+
+ /**
+ * Reduce by <xDimensionStmt> ::= T_DIMENSION <xArrayDeclaratorList> T_EOS ;
+ */
+ public abstract void reduceByProduction364(Parser parser);
+
+ /**
+ * Reduce by <xDimensionStmt> ::= T_DIMENSION <xDimensionStmt@11> <xArrayDeclaratorList> T_EOS ;
+ */
+ public abstract void reduceByProduction365(Parser parser);
+
+ /**
+ * Reduce by <xDimensionStmt> ::= <xLblDef> T_DIMENSION <xArrayDeclaratorList> T_EOS ;
+ */
+ public abstract void reduceByProduction366(Parser parser);
+
+ /**
+ * Reduce by <xDimensionStmt> ::= <xLblDef> T_DIMENSION <xDimensionStmt@11> <xArrayDeclaratorList> T_EOS ;
+ */
+ public abstract void reduceByProduction367(Parser parser);
+
+ /**
+ * Reduce by <xArrayDeclaratorList> ::= <xArrayDeclarator> ;
+ */
+ public abstract void reduceByProduction368(Parser parser);
+
+ /**
+ * Reduce by <xArrayDeclaratorList> ::= <xArrayDeclaratorList> T_COMMA <xArrayDeclarator> ;
+ */
+ public abstract void reduceByProduction369(Parser parser);
+
+ /**
+ * Reduce by <xArrayDeclarator> ::= <xVariableName> T_LPAREN <xArraySpec> T_RPAREN ;
+ */
+ public abstract void reduceByProduction370(Parser parser);
+
+ /**
+ * Reduce by <xAllocatableStmt> ::= T_ALLOCATABLE <xArrayAllocationList> T_EOS ;
+ */
+ public abstract void reduceByProduction371(Parser parser);
+
+ /**
+ * Reduce by <xAllocatableStmt> ::= T_ALLOCATABLE <xAllocatableStmt@12> <xArrayAllocationList> T_EOS ;
+ */
+ public abstract void reduceByProduction372(Parser parser);
+
+ /**
+ * Reduce by <xAllocatableStmt> ::= <xLblDef> T_ALLOCATABLE <xArrayAllocationList> T_EOS ;
+ */
+ public abstract void reduceByProduction373(Parser parser);
+
+ /**
+ * Reduce by <xAllocatableStmt> ::= <xLblDef> T_ALLOCATABLE <xAllocatableStmt@12> <xArrayAllocationList> T_EOS ;
+ */
+ public abstract void reduceByProduction374(Parser parser);
+
+ /**
+ * Reduce by <xArrayAllocationList> ::= <xArrayAllocation> ;
+ */
+ public abstract void reduceByProduction375(Parser parser);
+
+ /**
+ * Reduce by <xArrayAllocationList> ::= <xArrayAllocationList> T_COMMA <xArrayAllocation> ;
+ */
+ public abstract void reduceByProduction376(Parser parser);
+
+ /**
+ * Reduce by <xArrayAllocation> ::= <xArrayName> ;
+ */
+ public abstract void reduceByProduction377(Parser parser);
+
+ /**
+ * Reduce by <xArrayAllocation> ::= <xArrayName> T_LPAREN <xDeferredShapeSpecList> T_RPAREN ;
+ */
+ public abstract void reduceByProduction378(Parser parser);
+
+ /**
+ * Reduce by <xPointerStmt> ::= T_POINTER <xPointerStmtObjectList> T_EOS ;
+ */
+ public abstract void reduceByProduction379(Parser parser);
+
+ /**
+ * Reduce by <xPointerStmt> ::= T_POINTER <xPointerStmt@13> <xPointerStmtObjectList> T_EOS ;
+ */
+ public abstract void reduceByProduction380(Parser parser);
+
+ /**
+ * Reduce by <xPointerStmt> ::= <xLblDef> T_POINTER <xPointerStmtObjectList> T_EOS ;
+ */
+ public abstract void reduceByProduction381(Parser parser);
+
+ /**
+ * Reduce by <xPointerStmt> ::= <xLblDef> T_POINTER <xPointerStmt@13> <xPointerStmtObjectList> T_EOS ;
+ */
+ public abstract void reduceByProduction382(Parser parser);
+
+ /**
+ * Reduce by <xPointerStmtObjectList> ::= <xPointerStmtObject> ;
+ */
+ public abstract void reduceByProduction383(Parser parser);
+
+ /**
+ * Reduce by <xPointerStmtObjectList> ::= <xPointerStmtObjectList> T_COMMA <xPointerStmtObject> ;
+ */
+ public abstract void reduceByProduction384(Parser parser);
+
+ /**
+ * Reduce by <xPointerStmtObject> ::= <xPointerName> ;
+ */
+ public abstract void reduceByProduction385(Parser parser);
+
+ /**
+ * Reduce by <xPointerStmtObject> ::= <xPointerName> T_LPAREN <xDeferredShapeSpecList> T_RPAREN ;
+ */
+ public abstract void reduceByProduction386(Parser parser);
+
+ /**
+ * Reduce by <xPointerName> ::= T_IDENT ;
+ */
+ public abstract void reduceByProduction387(Parser parser);
+
+ /**
+ * Reduce by <xTargetStmt> ::= T_TARGET <xTargetObjectList> T_EOS ;
+ */
+ public abstract void reduceByProduction388(Parser parser);
+
+ /**
+ * Reduce by <xTargetStmt> ::= T_TARGET <xTargetStmt@14> <xTargetObjectList> T_EOS ;
+ */
+ public abstract void reduceByProduction389(Parser parser);
+
+ /**
+ * Reduce by <xTargetStmt> ::= <xLblDef> T_TARGET <xTargetObjectList> T_EOS ;
+ */
+ public abstract void reduceByProduction390(Parser parser);
+
+ /**
+ * Reduce by <xTargetStmt> ::= <xLblDef> T_TARGET <xTargetStmt@14> <xTargetObjectList> T_EOS ;
+ */
+ public abstract void reduceByProduction391(Parser parser);
+
+ /**
+ * Reduce by <xTargetObjectList> ::= <xTargetObject> ;
+ */
+ public abstract void reduceByProduction392(Parser parser);
+
+ /**
+ * Reduce by <xTargetObjectList> ::= <xTargetObjectList> T_COMMA <xTargetObject> ;
+ */
+ public abstract void reduceByProduction393(Parser parser);
+
+ /**
+ * Reduce by <xTargetObject> ::= <xTargetName> ;
+ */
+ public abstract void reduceByProduction394(Parser parser);
+
+ /**
+ * Reduce by <xTargetObject> ::= <xTargetName> T_LPAREN <xArraySpec> T_RPAREN ;
+ */
+ public abstract void reduceByProduction395(Parser parser);
+
+ /**
+ * Reduce by <xTargetName> ::= T_IDENT ;
+ */
+ public abstract void reduceByProduction396(Parser parser);
+
+ /**
+ * Reduce by <xParameterStmt> ::= T_PARAMETER T_LPAREN <xNamedConstantDefList> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction397(Parser parser);
+
+ /**
+ * Reduce by <xParameterStmt> ::= <xLblDef> T_PARAMETER T_LPAREN <xNamedConstantDefList> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction398(Parser parser);
+
+ /**
+ * Reduce by <xNamedConstantDefList> ::= <xNamedConstantDef> ;
+ */
+ public abstract void reduceByProduction399(Parser parser);
+
+ /**
+ * Reduce by <xNamedConstantDefList> ::= <xNamedConstantDefList> T_COMMA <xNamedConstantDef> ;
+ */
+ public abstract void reduceByProduction400(Parser parser);
+
+ /**
+ * Reduce by <xNamedConstantDef> ::= <xNamedConstant> T_EQUALS <xExpr> ;
+ */
+ public abstract void reduceByProduction401(Parser parser);
+
+ /**
+ * Reduce by <xDataStmt> ::= T_DATA <xDatalist> T_EOS ;
+ */
+ public abstract void reduceByProduction402(Parser parser);
+
+ /**
+ * Reduce by <xDataStmt> ::= <xLblDef> T_DATA <xDatalist> T_EOS ;
+ */
+ public abstract void reduceByProduction403(Parser parser);
+
+ /**
+ * Reduce by <xDatalist> ::= <xDataStmtSet> ;
+ */
+ public abstract void reduceByProduction404(Parser parser);
+
+ /**
+ * Reduce by <xDatalist> ::= <xDatalist> <xDataStmtSet> ;
+ */
+ public abstract void reduceByProduction405(Parser parser);
+
+ /**
+ * Reduce by <xDatalist> ::= <xDatalist> T_COMMA <xDataStmtSet> ;
+ */
+ public abstract void reduceByProduction406(Parser parser);
+
+ /**
+ * Reduce by <xDataStmtSet> ::= <xDataStmtObjectList> T_SLASH <xDataStmtValueList> T_SLASH ;
+ */
+ public abstract void reduceByProduction407(Parser parser);
+
+ /**
+ * Reduce by <xDataStmtObjectList> ::= <xDataStmtObject> ;
+ */
+ public abstract void reduceByProduction408(Parser parser);
+
+ /**
+ * Reduce by <xDataStmtObjectList> ::= <xDataStmtObjectList> T_COMMA <xDataStmtObject> ;
+ */
+ public abstract void reduceByProduction409(Parser parser);
+
+ /**
+ * Reduce by <xDataStmtObject> ::= <xVariable> ;
+ */
+ public abstract void reduceByProduction410(Parser parser);
+
+ /**
+ * Reduce by <xDataStmtObject> ::= <xDataImpliedDo> ;
+ */
+ public abstract void reduceByProduction411(Parser parser);
+
+ /**
+ * Reduce by <xDataImpliedDo> ::= T_LPAREN <xDataIDoObjectList> T_COMMA <T_xImpliedDoVariable> T_EQUALS <xExpr> T_COMMA <xExpr> T_RPAREN ;
+ */
+ public abstract void reduceByProduction412(Parser parser);
+
+ /**
+ * Reduce by <xDataImpliedDo> ::= T_LPAREN <xDataIDoObjectList> T_COMMA <T_xImpliedDoVariable> T_EQUALS <xExpr> T_COMMA <xExpr> T_COMMA <xExpr> T_RPAREN ;
+ */
+ public abstract void reduceByProduction413(Parser parser);
+
+ /**
+ * Reduce by <xDataIDoObjectList> ::= <xDataIDoObject> ;
+ */
+ public abstract void reduceByProduction414(Parser parser);
+
+ /**
+ * Reduce by <xDataIDoObjectList> ::= <xDataIDoObjectList> T_COMMA <xDataIDoObject> ;
+ */
+ public abstract void reduceByProduction415(Parser parser);
+
+ /**
+ * Reduce by <xDataIDoObject> ::= <xArrayElement> ;
+ */
+ public abstract void reduceByProduction416(Parser parser);
+
+ /**
+ * Reduce by <xDataIDoObject> ::= <xDataImpliedDo> ;
+ */
+ public abstract void reduceByProduction417(Parser parser);
+
+ /**
+ * Reduce by <xDataIDoObject> ::= <xStructureComponent> ;
+ */
+ public abstract void reduceByProduction418(Parser parser);
+
+ /**
+ * Reduce by <xDataStmtValueList> ::= <xDataStmtValue> ;
+ */
+ public abstract void reduceByProduction419(Parser parser);
+
+ /**
+ * Reduce by <xDataStmtValueList> ::= <xDataStmtValueList> T_COMMA <xDataStmtValue> ;
+ */
+ public abstract void reduceByProduction420(Parser parser);
+
+ /**
+ * Reduce by <xDataStmtValue> ::= <xDataStmtConstant> ;
+ */
+ public abstract void reduceByProduction421(Parser parser);
+
+ /**
+ * Reduce by <xDataStmtValue> ::= T_ICON T_ASTERISK <xDataStmtConstant> ;
+ */
+ public abstract void reduceByProduction422(Parser parser);
+
+ /**
+ * Reduce by <xDataStmtValue> ::= <xNamedConstantUse> T_ASTERISK <xDataStmtConstant> ;
+ */
+ public abstract void reduceByProduction423(Parser parser);
+
+ /**
+ * Reduce by <xDataStmtConstant> ::= <xConstant> ;
+ */
+ public abstract void reduceByProduction424(Parser parser);
+
+ /**
+ * Reduce by <xDataStmtConstant> ::= T_NULL T_LPAREN T_RPAREN ;
+ */
+ public abstract void reduceByProduction425(Parser parser);
+
+ /**
+ * Reduce by <T_xImplicitStmt> ::= T_IMPLICIT <T_xImplicitSpecList> T_EOS ;
+ */
+ public abstract void reduceByProduction426(Parser parser);
+
+ /**
+ * Reduce by <T_xImplicitStmt> ::= <xLblDef> T_IMPLICIT <T_xImplicitSpecList> T_EOS ;
+ */
+ public abstract void reduceByProduction427(Parser parser);
+
+ /**
+ * Reduce by <T_xImplicitStmt> ::= T_IMPLICIT T_NONE T_EOS ;
+ */
+ public abstract void reduceByProduction428(Parser parser);
+
+ /**
+ * Reduce by <T_xImplicitStmt> ::= <xLblDef> T_IMPLICIT T_NONE T_EOS ;
+ */
+ public abstract void reduceByProduction429(Parser parser);
+
+ /**
+ * Reduce by <T_xImplicitSpecList> ::= <T_xImplicitSpec> ;
+ */
+ public abstract void reduceByProduction430(Parser parser);
+
+ /**
+ * Reduce by <T_xImplicitSpecList> ::= <T_xImplicitSpecList> T_COMMA <T_xImplicitSpec> ;
+ */
+ public abstract void reduceByProduction431(Parser parser);
+
+ /**
+ * Reduce by <T_xImplicitSpec> ::= <xTypeSpec> T_xImpl ;
+ */
+ public abstract void reduceByProduction432(Parser parser);
+
+ /**
+ * Reduce by <xNamelistStmt> ::= T_NAMELIST <xNamelistGroups> T_EOS ;
+ */
+ public abstract void reduceByProduction433(Parser parser);
+
+ /**
+ * Reduce by <xNamelistStmt> ::= <xLblDef> T_NAMELIST <xNamelistGroups> T_EOS ;
+ */
+ public abstract void reduceByProduction434(Parser parser);
+
+ /**
+ * Reduce by <xNamelistGroups> ::= T_SLASH <xNamelistGroupName> T_SLASH <xNamelistGroupObject> ;
+ */
+ public abstract void reduceByProduction435(Parser parser);
+
+ /**
+ * Reduce by <xNamelistGroups> ::= <xNamelistGroups> T_SLASH <xNamelistGroupName> T_SLASH <xNamelistGroupObject> ;
+ */
+ public abstract void reduceByProduction436(Parser parser);
+
+ /**
+ * Reduce by <xNamelistGroups> ::= <xNamelistGroups> T_COMMA T_SLASH <xNamelistGroupName> T_SLASH <xNamelistGroupObject> ;
+ */
+ public abstract void reduceByProduction437(Parser parser);
+
+ /**
+ * Reduce by <xNamelistGroups> ::= <xNamelistGroups> T_COMMA <xNamelistGroupObject> ;
+ */
+ public abstract void reduceByProduction438(Parser parser);
+
+ /**
+ * Reduce by <xNamelistGroupObject> ::= <xVariableName> ;
+ */
+ public abstract void reduceByProduction439(Parser parser);
+
+ /**
+ * Reduce by <xEquivalenceStmt> ::= T_EQUIVALENCE <xEquivalenceSetList> T_EOS ;
+ */
+ public abstract void reduceByProduction440(Parser parser);
+
+ /**
+ * Reduce by <xEquivalenceStmt> ::= <xLblDef> T_EQUIVALENCE <xEquivalenceSetList> T_EOS ;
+ */
+ public abstract void reduceByProduction441(Parser parser);
+
+ /**
+ * Reduce by <xEquivalenceSetList> ::= <xEquivalenceSet> ;
+ */
+ public abstract void reduceByProduction442(Parser parser);
+
+ /**
+ * Reduce by <xEquivalenceSetList> ::= <xEquivalenceSetList> T_COMMA <xEquivalenceSet> ;
+ */
+ public abstract void reduceByProduction443(Parser parser);
+
+ /**
+ * Reduce by <xEquivalenceSet> ::= T_LPAREN <xEquivalenceObject> T_COMMA <xEquivalenceObjectList> T_RPAREN ;
+ */
+ public abstract void reduceByProduction444(Parser parser);
+
+ /**
+ * Reduce by <xEquivalenceObjectList> ::= <xEquivalenceObject> ;
+ */
+ public abstract void reduceByProduction445(Parser parser);
+
+ /**
+ * Reduce by <xEquivalenceObjectList> ::= <xEquivalenceObjectList> T_COMMA <xEquivalenceObject> ;
+ */
+ public abstract void reduceByProduction446(Parser parser);
+
+ /**
+ * Reduce by <xEquivalenceObject> ::= <xVariable> ;
+ */
+ public abstract void reduceByProduction447(Parser parser);
+
+ /**
+ * Reduce by <xCommonStmt> ::= T_COMMON <xComlist> T_EOS ;
+ */
+ public abstract void reduceByProduction448(Parser parser);
+
+ /**
+ * Reduce by <xCommonStmt> ::= <xLblDef> T_COMMON <xComlist> T_EOS ;
+ */
+ public abstract void reduceByProduction449(Parser parser);
+
+ /**
+ * Reduce by <xComlist> ::= <xCommonBlockObject> ;
+ */
+ public abstract void reduceByProduction450(Parser parser);
+
+ /**
+ * Reduce by <xComlist> ::= <xComblock> <xCommonBlockObject> ;
+ */
+ public abstract void reduceByProduction451(Parser parser);
+
+ /**
+ * Reduce by <xComlist> ::= <xComlist> T_COMMA <xCommonBlockObject> ;
+ */
+ public abstract void reduceByProduction452(Parser parser);
+
+ /**
+ * Reduce by <xComlist> ::= <xComlist> <xComblock> <xCommonBlockObject> ;
+ */
+ public abstract void reduceByProduction453(Parser parser);
+
+ /**
+ * Reduce by <xComlist> ::= <xComlist> T_COMMA <xComblock> <xCommonBlockObject> ;
+ */
+ public abstract void reduceByProduction454(Parser parser);
+
+ /**
+ * Reduce by <xComblock> ::= T_SLASH T_SLASH ;
+ */
+ public abstract void reduceByProduction455(Parser parser);
+
+ /**
+ * Reduce by <xComblock> ::= T_SLASH <xCommonBlockName> T_SLASH ;
+ */
+ public abstract void reduceByProduction456(Parser parser);
+
+ /**
+ * Reduce by <xCommonBlockObject> ::= <xVariableName> ;
+ */
+ public abstract void reduceByProduction457(Parser parser);
+
+ /**
+ * Reduce by <xCommonBlockObject> ::= <xArrayDeclarator> ;
+ */
+ public abstract void reduceByProduction458(Parser parser);
+
+ /**
+ * Reduce by <xVariable> ::= <xDataRef> ;
+ */
+ public abstract void reduceByProduction459(Parser parser);
+
+ /**
+ * Reduce by <xVariable> ::= <xDataRef> <xVariable@15> ;
+ */
+ public abstract void reduceByProduction460(Parser parser);
+
+ /**
+ * Reduce by <xVariable> ::= <xSubstrConst> ;
+ */
+ public abstract void reduceByProduction461(Parser parser);
+
+ /**
+ * Reduce by <xSubstrConst> ::= T_SCON <xSubstringRange> ;
+ */
+ public abstract void reduceByProduction462(Parser parser);
+
+ /**
+ * Reduce by <xVariableName> ::= T_IDENT ;
+ */
+ public abstract void reduceByProduction463(Parser parser);
+
+ /**
+ * Reduce by <xScalarVariable> ::= <xVariableName> ;
+ */
+ public abstract void reduceByProduction464(Parser parser);
+
+ /**
+ * Reduce by <xScalarVariable> ::= <xArrayElement> ;
+ */
+ public abstract void reduceByProduction465(Parser parser);
+
+ /**
+ * Reduce by <xSubstringRange> ::= T_LPAREN <xSubscriptTriplet> T_RPAREN ;
+ */
+ public abstract void reduceByProduction466(Parser parser);
+
+ /**
+ * Reduce by <xDataRef> ::= <xName> ;
+ */
+ public abstract void reduceByProduction467(Parser parser);
+
+ /**
+ * Reduce by <xDataRef> ::= <xDataRef> T_PERCENT <xName> ;
+ */
+ public abstract void reduceByProduction468(Parser parser);
+
+ /**
+ * Reduce by <xDataRef> ::= <xDataRef> <xDataRef@17> T_PERCENT <xName> ;
+ */
+ public abstract void reduceByProduction469(Parser parser);
+
+ /**
+ * Reduce by <xSFDataRef> ::= <xName> T_PERCENT <xName> ;
+ */
+ public abstract void reduceByProduction470(Parser parser);
+
+ /**
+ * Reduce by <xSFDataRef> ::= <xName> T_LPAREN <xSectionSubscriptList> T_RPAREN ;
+ */
+ public abstract void reduceByProduction471(Parser parser);
+
+ /**
+ * Reduce by <xSFDataRef> ::= <xSFDataRef> T_PERCENT <xName> ;
+ */
+ public abstract void reduceByProduction472(Parser parser);
+
+ /**
+ * Reduce by <xSFDataRef> ::= <xSFDataRef> <xSFDataRef@18> T_PERCENT <xName> ;
+ */
+ public abstract void reduceByProduction473(Parser parser);
+
+ /**
+ * Reduce by <xStructureComponent> ::= <xVariableName> <xFieldSelector> ;
+ */
+ public abstract void reduceByProduction474(Parser parser);
+
+ /**
+ * Reduce by <xStructureComponent> ::= <xStructureComponent> <xFieldSelector> ;
+ */
+ public abstract void reduceByProduction475(Parser parser);
+
+ /**
+ * Reduce by <xFieldSelector> ::= T_LPAREN <xSectionSubscriptList> T_RPAREN T_PERCENT <xName> ;
+ */
+ public abstract void reduceByProduction476(Parser parser);
+
+ /**
+ * Reduce by <xFieldSelector> ::= T_PERCENT <xName> ;
+ */
+ public abstract void reduceByProduction477(Parser parser);
+
+ /**
+ * Reduce by <xArrayElement> ::= <xVariableName> T_LPAREN <xSectionSubscriptList> T_RPAREN ;
+ */
+ public abstract void reduceByProduction478(Parser parser);
+
+ /**
+ * Reduce by <xArrayElement> ::= <xStructureComponent> T_LPAREN <xSectionSubscriptList> T_RPAREN ;
+ */
+ public abstract void reduceByProduction479(Parser parser);
+
+ /**
+ * Reduce by <xSubscript> ::= <xExpr> ;
+ */
+ public abstract void reduceByProduction480(Parser parser);
+
+ /**
+ * Reduce by <xSectionSubscriptList> ::= <xSectionSubscript> ;
+ */
+ public abstract void reduceByProduction481(Parser parser);
+
+ /**
+ * Reduce by <xSectionSubscriptList> ::= <xSectionSubscriptList> T_COMMA <xSectionSubscript> ;
+ */
+ public abstract void reduceByProduction482(Parser parser);
+
+ /**
+ * Reduce by <xSectionSubscript> ::= <xExpr> ;
+ */
+ public abstract void reduceByProduction483(Parser parser);
+
+ /**
+ * Reduce by <xSectionSubscript> ::= <xSubscriptTriplet> ;
+ */
+ public abstract void reduceByProduction484(Parser parser);
+
+ /**
+ * Reduce by <xSubscriptTriplet> ::= T_COLON ;
+ */
+ public abstract void reduceByProduction485(Parser parser);
+
+ /**
+ * Reduce by <xSubscriptTriplet> ::= T_COLON <xExpr> ;
+ */
+ public abstract void reduceByProduction486(Parser parser);
+
+ /**
+ * Reduce by <xSubscriptTriplet> ::= <xExpr> T_COLON ;
+ */
+ public abstract void reduceByProduction487(Parser parser);
+
+ /**
+ * Reduce by <xSubscriptTriplet> ::= <xExpr> T_COLON <xExpr> ;
+ */
+ public abstract void reduceByProduction488(Parser parser);
+
+ /**
+ * Reduce by <xSubscriptTriplet> ::= <xExpr> T_COLON <xExpr> T_COLON <xExpr> ;
+ */
+ public abstract void reduceByProduction489(Parser parser);
+
+ /**
+ * Reduce by <xSubscriptTriplet> ::= <xExpr> T_COLON T_COLON <xExpr> ;
+ */
+ public abstract void reduceByProduction490(Parser parser);
+
+ /**
+ * Reduce by <xSubscriptTriplet> ::= T_COLON <xExpr> T_COLON <xExpr> ;
+ */
+ public abstract void reduceByProduction491(Parser parser);
+
+ /**
+ * Reduce by <xSubscriptTriplet> ::= T_COLON T_COLON <xExpr> ;
+ */
+ public abstract void reduceByProduction492(Parser parser);
+
+ /**
+ * Reduce by <xAllocateStmt> ::= T_ALLOCATE T_LPAREN <xAllocationList> T_COMMA T_STATEQ <xVariable> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction493(Parser parser);
+
+ /**
+ * Reduce by <xAllocateStmt> ::= <xLblDef> T_ALLOCATE T_LPAREN <xAllocationList> T_COMMA T_STATEQ <xVariable> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction494(Parser parser);
+
+ /**
+ * Reduce by <xAllocateStmt> ::= T_ALLOCATE T_LPAREN <xAllocationList> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction495(Parser parser);
+
+ /**
+ * Reduce by <xAllocateStmt> ::= <xLblDef> T_ALLOCATE T_LPAREN <xAllocationList> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction496(Parser parser);
+
+ /**
+ * Reduce by <xAllocationList> ::= <xAllocation> ;
+ */
+ public abstract void reduceByProduction497(Parser parser);
+
+ /**
+ * Reduce by <xAllocationList> ::= <xAllocationList> T_COMMA <xAllocation> ;
+ */
+ public abstract void reduceByProduction498(Parser parser);
+
+ /**
+ * Reduce by <xAllocation> ::= <xAllocateObject> ;
+ */
+ public abstract void reduceByProduction499(Parser parser);
+
+ /**
+ * Reduce by <xAllocation> ::= <xAllocateObject> <xAllocatedShape> ;
+ */
+ public abstract void reduceByProduction500(Parser parser);
+
+ /**
+ * Reduce by <xAllocatedShape> ::= T_LPAREN <xSectionSubscriptList> T_RPAREN ;
+ */
+ public abstract void reduceByProduction501(Parser parser);
+
+ /**
+ * Reduce by <xAllocateObjectList> ::= <xAllocateObject> ;
+ */
+ public abstract void reduceByProduction502(Parser parser);
+
+ /**
+ * Reduce by <xAllocateObjectList> ::= <xAllocateObjectList> T_COMMA <xAllocateObject> ;
+ */
+ public abstract void reduceByProduction503(Parser parser);
+
+ /**
+ * Reduce by <xAllocateObject> ::= <xVariableName> ;
+ */
+ public abstract void reduceByProduction504(Parser parser);
+
+ /**
+ * Reduce by <xAllocateObject> ::= <xAllocateObject> <xFieldSelector> ;
+ */
+ public abstract void reduceByProduction505(Parser parser);
+
+ /**
+ * Reduce by <xNullifyStmt> ::= T_NULLIFY T_LPAREN <xPointerObjectList> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction506(Parser parser);
+
+ /**
+ * Reduce by <xNullifyStmt> ::= <xLblDef> T_NULLIFY T_LPAREN <xPointerObjectList> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction507(Parser parser);
+
+ /**
+ * Reduce by <xPointerObjectList> ::= <xPointerObject> ;
+ */
+ public abstract void reduceByProduction508(Parser parser);
+
+ /**
+ * Reduce by <xPointerObjectList> ::= <xPointerObjectList> T_COMMA <xPointerObject> ;
+ */
+ public abstract void reduceByProduction509(Parser parser);
+
+ /**
+ * Reduce by <xPointerObject> ::= <xName> ;
+ */
+ public abstract void reduceByProduction510(Parser parser);
+
+ /**
+ * Reduce by <xPointerObject> ::= <xPointerField> ;
+ */
+ public abstract void reduceByProduction511(Parser parser);
+
+ /**
+ * Reduce by <xPointerField> ::= <xName> T_LPAREN <xSFExprList> T_RPAREN T_PERCENT <xName> ;
+ */
+ public abstract void reduceByProduction512(Parser parser);
+
+ /**
+ * Reduce by <xPointerField> ::= <xName> T_LPAREN <xSFDummyArgNameList> T_RPAREN T_PERCENT <xName> ;
+ */
+ public abstract void reduceByProduction513(Parser parser);
+
+ /**
+ * Reduce by <xPointerField> ::= <xName> T_PERCENT <xName> ;
+ */
+ public abstract void reduceByProduction514(Parser parser);
+
+ /**
+ * Reduce by <xPointerField> ::= <xPointerField> <xFieldSelector> ;
+ */
+ public abstract void reduceByProduction515(Parser parser);
+
+ /**
+ * Reduce by <xDeallocateStmt> ::= T_DEALLOCATE T_LPAREN <xAllocateObjectList> T_COMMA T_STATEQ <xVariable> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction516(Parser parser);
+
+ /**
+ * Reduce by <xDeallocateStmt> ::= <xLblDef> T_DEALLOCATE T_LPAREN <xAllocateObjectList> T_COMMA T_STATEQ <xVariable> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction517(Parser parser);
+
+ /**
+ * Reduce by <xDeallocateStmt> ::= T_DEALLOCATE T_LPAREN <xAllocateObjectList> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction518(Parser parser);
+
+ /**
+ * Reduce by <xDeallocateStmt> ::= <xLblDef> T_DEALLOCATE T_LPAREN <xAllocateObjectList> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction519(Parser parser);
+
+ /**
+ * Reduce by <xPrimary> ::= <xLogicalConstant> ;
+ */
+ public abstract void reduceByProduction520(Parser parser);
+
+ /**
+ * Reduce by <xPrimary> ::= T_SCON ;
+ */
+ public abstract void reduceByProduction521(Parser parser);
+
+ /**
+ * Reduce by <xPrimary> ::= <xUnsignedArithmeticConstant> ;
+ */
+ public abstract void reduceByProduction522(Parser parser);
+
+ /**
+ * Reduce by <xPrimary> ::= <xArrayConstructor> ;
+ */
+ public abstract void reduceByProduction523(Parser parser);
+
+ /**
+ * Reduce by <xPrimary> ::= <xName> ;
+ */
+ public abstract void reduceByProduction524(Parser parser);
+
+ /**
+ * Reduce by <xPrimary> ::= <xName> <xPrimary@19> ;
+ */
+ public abstract void reduceByProduction525(Parser parser);
+
+ /**
+ * Reduce by <xPrimary> ::= <xName> T_PERCENT <xDataRef> ;
+ */
+ public abstract void reduceByProduction526(Parser parser);
+
+ /**
+ * Reduce by <xPrimary> ::= <xName> T_PERCENT <xDataRef> <xPrimary@21> ;
+ */
+ public abstract void reduceByProduction527(Parser parser);
+
+ /**
+ * Reduce by <xPrimary> ::= <xName> T_LPAREN <xSectionSubscriptList> T_RPAREN T_PERCENT <xDataRef> ;
+ */
+ public abstract void reduceByProduction528(Parser parser);
+
+ /**
+ * Reduce by <xPrimary> ::= <xName> T_LPAREN <xSectionSubscriptList> T_RPAREN T_PERCENT <xDataRef> <xPrimary@23> ;
+ */
+ public abstract void reduceByProduction529(Parser parser);
+
+ /**
+ * Reduce by <xPrimary> ::= <xFunctionReference> ;
+ */
+ public abstract void reduceByProduction530(Parser parser);
+
+ /**
+ * Reduce by <xPrimary> ::= <xFunctionReference> <xPrimary@25> ;
+ */
+ public abstract void reduceByProduction531(Parser parser);
+
+ /**
+ * Reduce by <xPrimary> ::= <xFunctionReference> T_PERCENT <xDataRef> ;
+ */
+ public abstract void reduceByProduction532(Parser parser);
+
+ /**
+ * Reduce by <xPrimary> ::= <xFunctionReference> T_PERCENT <xDataRef> <xPrimary@26> ;
+ */
+ public abstract void reduceByProduction533(Parser parser);
+
+ /**
+ * Reduce by <xPrimary> ::= T_LPAREN <xExpr> T_RPAREN ;
+ */
+ public abstract void reduceByProduction534(Parser parser);
+
+ /**
+ * Reduce by <xPrimary> ::= <xSubstrConst> ;
+ */
+ public abstract void reduceByProduction535(Parser parser);
+
+ /**
+ * Reduce by <xCPrimary> ::= <xCOperand> ;
+ */
+ public abstract void reduceByProduction536(Parser parser);
+
+ /**
+ * Reduce by <xCPrimary> ::= T_LPAREN <xCExpr> T_RPAREN ;
+ */
+ public abstract void reduceByProduction537(Parser parser);
+
+ /**
+ * Reduce by <xCOperand> ::= T_SCON ;
+ */
+ public abstract void reduceByProduction538(Parser parser);
+
+ /**
+ * Reduce by <xCOperand> ::= <xName> ;
+ */
+ public abstract void reduceByProduction539(Parser parser);
+
+ /**
+ * Reduce by <xCOperand> ::= <xName> <xCOperand@28> ;
+ */
+ public abstract void reduceByProduction540(Parser parser);
+
+ /**
+ * Reduce by <xCOperand> ::= <xName> T_PERCENT <xDataRef> ;
+ */
+ public abstract void reduceByProduction541(Parser parser);
+
+ /**
+ * Reduce by <xCOperand> ::= <xName> T_PERCENT <xDataRef> <xCOperand@30> ;
+ */
+ public abstract void reduceByProduction542(Parser parser);
+
+ /**
+ * Reduce by <xCOperand> ::= <xName> <xCOperand@29> T_PERCENT <xDataRef> ;
+ */
+ public abstract void reduceByProduction543(Parser parser);
+
+ /**
+ * Reduce by <xCOperand> ::= <xName> <xCOperand@29> T_PERCENT <xDataRef> <xCOperand@30> ;
+ */
+ public abstract void reduceByProduction544(Parser parser);
+
+ /**
+ * Reduce by <xCOperand> ::= <xFunctionReference> ;
+ */
+ public abstract void reduceByProduction545(Parser parser);
+
+ /**
+ * Reduce by <xUFPrimary> ::= T_ICON ;
+ */
+ public abstract void reduceByProduction546(Parser parser);
+
+ /**
+ * Reduce by <xUFPrimary> ::= T_SCON ;
+ */
+ public abstract void reduceByProduction547(Parser parser);
+
+ /**
+ * Reduce by <xUFPrimary> ::= <xFunctionReference> ;
+ */
+ public abstract void reduceByProduction548(Parser parser);
+
+ /**
+ * Reduce by <xUFPrimary> ::= <xName> ;
+ */
+ public abstract void reduceByProduction549(Parser parser);
+
+ /**
+ * Reduce by <xUFPrimary> ::= <xName> <xUFPrimary@31> ;
+ */
+ public abstract void reduceByProduction550(Parser parser);
+
+ /**
+ * Reduce by <xUFPrimary> ::= <xName> T_PERCENT <xDataRef> ;
+ */
+ public abstract void reduceByProduction551(Parser parser);
+
+ /**
+ * Reduce by <xUFPrimary> ::= <xName> T_PERCENT <xDataRef> <xUFPrimary@34> ;
+ */
+ public abstract void reduceByProduction552(Parser parser);
+
+ /**
+ * Reduce by <xUFPrimary> ::= <xName> <xUFPrimary@33> T_PERCENT <xDataRef> ;
+ */
+ public abstract void reduceByProduction553(Parser parser);
+
+ /**
+ * Reduce by <xUFPrimary> ::= <xName> <xUFPrimary@33> T_PERCENT <xDataRef> <xUFPrimary@34> ;
+ */
+ public abstract void reduceByProduction554(Parser parser);
+
+ /**
+ * Reduce by <xUFPrimary> ::= T_LPAREN <xUFExpr> T_RPAREN ;
+ */
+ public abstract void reduceByProduction555(Parser parser);
+
+ /**
+ * Reduce by <xLevel1Expr> ::= <xPrimary> ;
+ */
+ public abstract void reduceByProduction556(Parser parser);
+
+ /**
+ * Reduce by <xLevel1Expr> ::= <xDefinedUnaryOp> <xPrimary> ;
+ */
+ public abstract void reduceByProduction557(Parser parser);
+
+ /**
+ * Reduce by <xMultOperand> ::= <xLevel1Expr> ;
+ */
+ public abstract void reduceByProduction558(Parser parser);
+
+ /**
+ * Reduce by <xMultOperand> ::= <xLevel1Expr> <xMultOperand@36> ;
+ */
+ public abstract void reduceByProduction559(Parser parser);
+
+ /**
+ * Reduce by <xUFFactor> ::= <xUFPrimary> ;
+ */
+ public abstract void reduceByProduction560(Parser parser);
+
+ /**
+ * Reduce by <xUFFactor> ::= <xUFPrimary> <xUFFactor@37> ;
+ */
+ public abstract void reduceByProduction561(Parser parser);
+
+ /**
+ * Reduce by <xAddOperand> ::= <xMultOperand> ;
+ */
+ public abstract void reduceByProduction562(Parser parser);
+
+ /**
+ * Reduce by <xAddOperand> ::= <xAddOperand@38> <xMultOperand> ;
+ */
+ public abstract void reduceByProduction563(Parser parser);
+
+ /**
+ * Reduce by <xUFTerm> ::= <xUFFactor> ;
+ */
+ public abstract void reduceByProduction564(Parser parser);
+
+ /**
+ * Reduce by <xUFTerm> ::= <xUFTerm> <xMultOp> <xUFFactor> ;
+ */
+ public abstract void reduceByProduction565(Parser parser);
+
+ /**
+ * Reduce by <xUFTerm> ::= <xUFTerm> <xConcatOp> <xUFPrimary> ;
+ */
+ public abstract void reduceByProduction566(Parser parser);
+
+ /**
+ * Reduce by <xLevel2Expr> ::= <xAddOperand> ;
+ */
+ public abstract void reduceByProduction567(Parser parser);
+
+ /**
+ * Reduce by <xLevel2Expr> ::= <xLevel2Expr@39> <xAddOperand> ;
+ */
+ public abstract void reduceByProduction568(Parser parser);
+
+ /**
+ * Reduce by <xLevel2Expr> ::= <xSign> <xAddOperand> ;
+ */
+ public abstract void reduceByProduction569(Parser parser);
+
+ /**
+ * Reduce by <xUFExpr> ::= <xUFTerm> ;
+ */
+ public abstract void reduceByProduction570(Parser parser);
+
+ /**
+ * Reduce by <xUFExpr> ::= <xSign> <xUFTerm> ;
+ */
+ public abstract void reduceByProduction571(Parser parser);
+
+ /**
+ * Reduce by <xUFExpr> ::= <xUFExpr> <xAddOp> <xUFTerm> ;
+ */
+ public abstract void reduceByProduction572(Parser parser);
+
+ /**
+ * Reduce by <xLevel3Expr> ::= <xLevel2Expr> ;
+ */
+ public abstract void reduceByProduction573(Parser parser);
+
+ /**
+ * Reduce by <xLevel3Expr> ::= <xLevel3Expr@40> <xLevel2Expr> ;
+ */
+ public abstract void reduceByProduction574(Parser parser);
+
+ /**
+ * Reduce by <xCExpr> ::= <xCPrimary> ;
+ */
+ public abstract void reduceByProduction575(Parser parser);
+
+ /**
+ * Reduce by <xCExpr> ::= <xCExpr@41> <xCPrimary> ;
+ */
+ public abstract void reduceByProduction576(Parser parser);
+
+ /**
+ * Reduce by <xLevel4Expr> ::= <xLevel3Expr> ;
+ */
+ public abstract void reduceByProduction577(Parser parser);
+
+ /**
+ * Reduce by <xLevel4Expr> ::= <xLevel4Expr@42> <xLevel3Expr> ;
+ */
+ public abstract void reduceByProduction578(Parser parser);
+
+ /**
+ * Reduce by <xAndOperand> ::= <xLevel4Expr> ;
+ */
+ public abstract void reduceByProduction579(Parser parser);
+
+ /**
+ * Reduce by <xAndOperand> ::= <xAndOperand@43> <xLevel4Expr> ;
+ */
+ public abstract void reduceByProduction580(Parser parser);
+
+ /**
+ * Reduce by <xOrOperand> ::= <xAndOperand> ;
+ */
+ public abstract void reduceByProduction581(Parser parser);
+
+ /**
+ * Reduce by <xOrOperand> ::= <xOrOperand@44> <xAndOperand> ;
+ */
+ public abstract void reduceByProduction582(Parser parser);
+
+ /**
+ * Reduce by <xEquivOperand> ::= <xOrOperand> ;
+ */
+ public abstract void reduceByProduction583(Parser parser);
+
+ /**
+ * Reduce by <xEquivOperand> ::= <xEquivOperand@45> <xOrOperand> ;
+ */
+ public abstract void reduceByProduction584(Parser parser);
+
+ /**
+ * Reduce by <xLevel5Expr> ::= <xEquivOperand> ;
+ */
+ public abstract void reduceByProduction585(Parser parser);
+
+ /**
+ * Reduce by <xLevel5Expr> ::= <xLevel5Expr@46> <xEquivOperand> ;
+ */
+ public abstract void reduceByProduction586(Parser parser);
+
+ /**
+ * Reduce by <xExpr> ::= <xLevel5Expr> ;
+ */
+ public abstract void reduceByProduction587(Parser parser);
+
+ /**
+ * Reduce by <xExpr> ::= <xExpr> <xDefinedBinaryOp> <xLevel5Expr> ;
+ */
+ public abstract void reduceByProduction588(Parser parser);
+
+ /**
+ * Reduce by <xSFExprList> ::= <xSFExpr> T_COLON <xExpr> T_COLON <xExpr> ;
+ */
+ public abstract void reduceByProduction589(Parser parser);
+
+ /**
+ * Reduce by <xSFExprList> ::= <xSFExpr> T_COLON T_COLON <xExpr> ;
+ */
+ public abstract void reduceByProduction590(Parser parser);
+
+ /**
+ * Reduce by <xSFExprList> ::= T_COLON <xExpr> T_COLON <xExpr> ;
+ */
+ public abstract void reduceByProduction591(Parser parser);
+
+ /**
+ * Reduce by <xSFExprList> ::= T_COLON T_COLON <xExpr> ;
+ */
+ public abstract void reduceByProduction592(Parser parser);
+
+ /**
+ * Reduce by <xAssignmentStmt> ::= <xName> T_EQUALS <xExpr> T_EOS ;
+ */
+ public abstract void reduceByProduction593(Parser parser);
+
+ /**
+ * Reduce by <xAssignmentStmt> ::= <xLblDef> <xName> T_EQUALS <xExpr> T_EOS ;
+ */
+ public abstract void reduceByProduction594(Parser parser);
+
+ /**
+ * Reduce by <xAssignmentStmt> ::= <xName> T_LPAREN <xSFExprList> T_RPAREN T_EQUALS <xExpr> T_EOS ;
+ */
+ public abstract void reduceByProduction595(Parser parser);
+
+ /**
+ * Reduce by <xAssignmentStmt> ::= <xLblDef> <xName> T_LPAREN <xSFExprList> T_RPAREN T_EQUALS <xExpr> T_EOS ;
+ */
+ public abstract void reduceByProduction596(Parser parser);
+
+ /**
+ * Reduce by <xAssignmentStmt> ::= <xName> T_LPAREN <xSFExprList> T_RPAREN <xSubstringRange> T_EQUALS <xExpr> T_EOS ;
+ */
+ public abstract void reduceByProduction597(Parser parser);
+
+ /**
+ * Reduce by <xAssignmentStmt> ::= <xLblDef> <xName> T_LPAREN <xSFExprList> T_RPAREN <xSubstringRange> T_EQUALS <xExpr> T_EOS ;
+ */
+ public abstract void reduceByProduction598(Parser parser);
+
+ /**
+ * Reduce by <xAssignmentStmt> ::= <xName> T_LPAREN <xSFDummyArgNameList> T_RPAREN <xSubstringRange> T_EQUALS <xExpr> T_EOS ;
+ */
+ public abstract void reduceByProduction599(Parser parser);
+
+ /**
+ * Reduce by <xAssignmentStmt> ::= <xLblDef> <xName> T_LPAREN <xSFDummyArgNameList> T_RPAREN <xSubstringRange> T_EQUALS <xExpr> T_EOS ;
+ */
+ public abstract void reduceByProduction600(Parser parser);
+
+ /**
+ * Reduce by <xAssignmentStmt> ::= <xName> T_PERCENT <xDataRef> T_EQUALS <xExpr> T_EOS ;
+ */
+ public abstract void reduceByProduction601(Parser parser);
+
+ /**
+ * Reduce by <xAssignmentStmt> ::= <xName> T_PERCENT <xDataRef> <xAssignmentStmt@47> T_EQUALS <xExpr> T_EOS ;
+ */
+ public abstract void reduceByProduction602(Parser parser);
+
+ /**
+ * Reduce by <xAssignmentStmt> ::= <xLblDef> <xName> T_PERCENT <xDataRef> T_EQUALS <xExpr> T_EOS ;
+ */
+ public abstract void reduceByProduction603(Parser parser);
+
+ /**
+ * Reduce by <xAssignmentStmt> ::= <xLblDef> <xName> T_PERCENT <xDataRef> <xAssignmentStmt@47> T_EQUALS <xExpr> T_EOS ;
+ */
+ public abstract void reduceByProduction604(Parser parser);
+
+ /**
+ * Reduce by <xAssignmentStmt> ::= <xName> T_LPAREN <xSFExprList> T_RPAREN T_PERCENT <xDataRef> T_EQUALS <xExpr> T_EOS ;
+ */
+ public abstract void reduceByProduction605(Parser parser);
+
+ /**
+ * Reduce by <xAssignmentStmt> ::= <xName> T_LPAREN <xSFExprList> T_RPAREN T_PERCENT <xDataRef> <xAssignmentStmt@49> T_EQUALS <xExpr> T_EOS ;
+ */
+ public abstract void reduceByProduction606(Parser parser);
+
+ /**
+ * Reduce by <xAssignmentStmt> ::= <xLblDef> <xName> T_LPAREN <xSFExprList> T_RPAREN T_PERCENT <xDataRef> T_EQUALS <xExpr> T_EOS ;
+ */
+ public abstract void reduceByProduction607(Parser parser);
+
+ /**
+ * Reduce by <xAssignmentStmt> ::= <xLblDef> <xName> T_LPAREN <xSFExprList> T_RPAREN T_PERCENT <xDataRef> <xAssignmentStmt@49> T_EQUALS <xExpr> T_EOS ;
+ */
+ public abstract void reduceByProduction608(Parser parser);
+
+ /**
+ * Reduce by <xAssignmentStmt> ::= <xName> T_LPAREN <xSFDummyArgNameList> T_RPAREN T_PERCENT <xDataRef> T_EQUALS <xExpr> T_EOS ;
+ */
+ public abstract void reduceByProduction609(Parser parser);
+
+ /**
+ * Reduce by <xAssignmentStmt> ::= <xName> T_LPAREN <xSFDummyArgNameList> T_RPAREN T_PERCENT <xDataRef> <xAssignmentStmt@51> T_EQUALS <xExpr> T_EOS ;
+ */
+ public abstract void reduceByProduction610(Parser parser);
+
+ /**
+ * Reduce by <xAssignmentStmt> ::= <xLblDef> <xName> T_LPAREN <xSFDummyArgNameList> T_RPAREN T_PERCENT <xDataRef> T_EQUALS <xExpr> T_EOS ;
+ */
+ public abstract void reduceByProduction611(Parser parser);
+
+ /**
+ * Reduce by <xAssignmentStmt> ::= <xLblDef> <xName> T_LPAREN <xSFDummyArgNameList> T_RPAREN T_PERCENT <xDataRef> <xAssignmentStmt@51> T_EQUALS <xExpr> T_EOS ;
+ */
+ public abstract void reduceByProduction612(Parser parser);
+
+ /**
+ * Reduce by <xSFExprList> ::= T_COLON ;
+ */
+ public abstract void reduceByProduction613(Parser parser);
+
+ /**
+ * Reduce by <xSFExprList> ::= T_COLON <xExpr> ;
+ */
+ public abstract void reduceByProduction614(Parser parser);
+
+ /**
+ * Reduce by <xSFExprList> ::= <xSFExpr> ;
+ */
+ public abstract void reduceByProduction615(Parser parser);
+
+ /**
+ * Reduce by <xSFExprList> ::= <xSFExpr> T_COLON ;
+ */
+ public abstract void reduceByProduction616(Parser parser);
+
+ /**
+ * Reduce by <xSFExprList> ::= <xSFExpr> T_COLON <xExpr> ;
+ */
+ public abstract void reduceByProduction617(Parser parser);
+
+ /**
+ * Reduce by <xSFExprList> ::= <xSFExprList> T_COMMA <xSectionSubscript> ;
+ */
+ public abstract void reduceByProduction618(Parser parser);
+
+ /**
+ * Reduce by <xSFExprList> ::= <xSFDummyArgNameList> T_COMMA T_COLON ;
+ */
+ public abstract void reduceByProduction619(Parser parser);
+
+ /**
+ * Reduce by <xSFExprList> ::= <xSFDummyArgNameList> T_COMMA T_COLON <xExpr> ;
+ */
+ public abstract void reduceByProduction620(Parser parser);
+
+ /**
+ * Reduce by <xSFExprList> ::= <xSFDummyArgNameList> T_COMMA <xSFExpr> ;
+ */
+ public abstract void reduceByProduction621(Parser parser);
+
+ /**
+ * Reduce by <xSFExprList> ::= <xSFDummyArgNameList> T_COMMA <xSFExpr> T_COLON ;
+ */
+ public abstract void reduceByProduction622(Parser parser);
+
+ /**
+ * Reduce by <xSFExprList> ::= <xSFDummyArgNameList> T_COMMA <xSFExpr> T_COLON <xExpr> ;
+ */
+ public abstract void reduceByProduction623(Parser parser);
+
+ /**
+ * Reduce by <xSFExpr> ::= <xSFTerm> ;
+ */
+ public abstract void reduceByProduction624(Parser parser);
+
+ /**
+ * Reduce by <xSFExpr> ::= <xSign> <xAddOperand> ;
+ */
+ public abstract void reduceByProduction625(Parser parser);
+
+ /**
+ * Reduce by <xSFExpr> ::= <xSFExpr> <xAddOp> <xAddOperand> ;
+ */
+ public abstract void reduceByProduction626(Parser parser);
+
+ /**
+ * Reduce by <xSFTerm> ::= <xSFFactor> ;
+ */
+ public abstract void reduceByProduction627(Parser parser);
+
+ /**
+ * Reduce by <xSFTerm> ::= <xSFTerm> <xMultOp> <xMultOperand> ;
+ */
+ public abstract void reduceByProduction628(Parser parser);
+
+ /**
+ * Reduce by <xSFFactor> ::= <xSFPrimary> ;
+ */
+ public abstract void reduceByProduction629(Parser parser);
+
+ /**
+ * Reduce by <xSFFactor> ::= <xSFPrimary> <xPowerOp> <xMultOperand> ;
+ */
+ public abstract void reduceByProduction630(Parser parser);
+
+ /**
+ * Reduce by <xSFPrimary> ::= <xArrayConstructor> ;
+ */
+ public abstract void reduceByProduction631(Parser parser);
+
+ /**
+ * Reduce by <xSFPrimary> ::= T_ICON ;
+ */
+ public abstract void reduceByProduction632(Parser parser);
+
+ /**
+ * Reduce by <xSFPrimary> ::= <xSFVarName> ;
+ */
+ public abstract void reduceByProduction633(Parser parser);
+
+ /**
+ * Reduce by <xSFPrimary> ::= <xSFDataRef> ;
+ */
+ public abstract void reduceByProduction634(Parser parser);
+
+ /**
+ * Reduce by <xSFPrimary> ::= <xFunctionReference> ;
+ */
+ public abstract void reduceByProduction635(Parser parser);
+
+ /**
+ * Reduce by <xSFPrimary> ::= T_LPAREN <xExpr> T_RPAREN ;
+ */
+ public abstract void reduceByProduction636(Parser parser);
+
+ /**
+ * Reduce by <xPointerAssignmentStmt> ::= <xName> T_EQGREATERTHAN <xTarget> T_EOS ;
+ */
+ public abstract void reduceByProduction637(Parser parser);
+
+ /**
+ * Reduce by <xPointerAssignmentStmt> ::= <xLblDef> <xName> T_EQGREATERTHAN <xTarget> T_EOS ;
+ */
+ public abstract void reduceByProduction638(Parser parser);
+
+ /**
+ * Reduce by <xPointerAssignmentStmt> ::= <xName> T_PERCENT <xDataRef> T_EQGREATERTHAN <xTarget> T_EOS ;
+ */
+ public abstract void reduceByProduction639(Parser parser);
+
+ /**
+ * Reduce by <xPointerAssignmentStmt> ::= <xLblDef> <xName> T_PERCENT <xDataRef> T_EQGREATERTHAN <xTarget> T_EOS ;
+ */
+ public abstract void reduceByProduction640(Parser parser);
+
+ /**
+ * Reduce by <xPointerAssignmentStmt> ::= <xName> T_LPAREN <xSFExprList> T_RPAREN T_PERCENT <xDataRef> T_EQGREATERTHAN <xTarget> T_EOS ;
+ */
+ public abstract void reduceByProduction641(Parser parser);
+
+ /**
+ * Reduce by <xPointerAssignmentStmt> ::= <xLblDef> <xName> T_LPAREN <xSFExprList> T_RPAREN T_PERCENT <xDataRef> T_EQGREATERTHAN <xTarget> T_EOS ;
+ */
+ public abstract void reduceByProduction642(Parser parser);
+
+ /**
+ * Reduce by <xPointerAssignmentStmt> ::= <xName> T_LPAREN <xSFDummyArgNameList> T_RPAREN T_PERCENT <xDataRef> T_EQGREATERTHAN <xTarget> T_EOS ;
+ */
+ public abstract void reduceByProduction643(Parser parser);
+
+ /**
+ * Reduce by <xPointerAssignmentStmt> ::= <xLblDef> <xName> T_LPAREN <xSFDummyArgNameList> T_RPAREN T_PERCENT <xDataRef> T_EQGREATERTHAN <xTarget> T_EOS ;
+ */
+ public abstract void reduceByProduction644(Parser parser);
+
+ /**
+ * Reduce by <xTarget> ::= <xExpr> ;
+ */
+ public abstract void reduceByProduction645(Parser parser);
+
+ /**
+ * Reduce by <xWhereStmt> ::= T_WHERE T_LPAREN <xMaskExpr> T_RPAREN <xAssignmentStmt> ;
+ */
+ public abstract void reduceByProduction646(Parser parser);
+
+ /**
+ * Reduce by <xWhereStmt> ::= <xLblDef> T_WHERE T_LPAREN <xMaskExpr> T_RPAREN <xAssignmentStmt> ;
+ */
+ public abstract void reduceByProduction647(Parser parser);
+
+ /**
+ * Reduce by <xWhereConstruct> ::= <xWhereConstructStmt> <xWhereRange> ;
+ */
+ public abstract void reduceByProduction648(Parser parser);
+
+ /**
+ * Reduce by <xWhereRange> ::= <xEndWhereStmt> ;
+ */
+ public abstract void reduceByProduction649(Parser parser);
+
+ /**
+ * Reduce by <xWhereRange> ::= <xWhereBodyConstructBlock> <xEndWhereStmt> ;
+ */
+ public abstract void reduceByProduction650(Parser parser);
+
+ /**
+ * Reduce by <xWhereRange> ::= <xMaskedElsewhereConstruct> ;
+ */
+ public abstract void reduceByProduction651(Parser parser);
+
+ /**
+ * Reduce by <xWhereRange> ::= <xWhereBodyConstructBlock> <xMaskedElsewhereConstruct> ;
+ */
+ public abstract void reduceByProduction652(Parser parser);
+
+ /**
+ * Reduce by <xWhereRange> ::= <xElsewhereConstruct> ;
+ */
+ public abstract void reduceByProduction653(Parser parser);
+
+ /**
+ * Reduce by <xWhereRange> ::= <xWhereBodyConstructBlock> <xElsewhereConstruct> ;
+ */
+ public abstract void reduceByProduction654(Parser parser);
+
+ /**
+ * Reduce by <xMaskedElsewhereConstruct> ::= <xMaskedElsewhereStmt> <xWhereRange> ;
+ */
+ public abstract void reduceByProduction655(Parser parser);
+
+ /**
+ * Reduce by <xElsewhereConstruct> ::= <xElsewhereStmt> <xElsewherePart> ;
+ */
+ public abstract void reduceByProduction656(Parser parser);
+
+ /**
+ * Reduce by <xElsewherePart> ::= <xEndWhereStmt> ;
+ */
+ public abstract void reduceByProduction657(Parser parser);
+
+ /**
+ * Reduce by <xElsewherePart> ::= <xWhereBodyConstructBlock> <xEndWhereStmt> ;
+ */
+ public abstract void reduceByProduction658(Parser parser);
+
+ /**
+ * Reduce by <xWhereBodyConstructBlock> ::= <xWhereBodyConstruct> ;
+ */
+ public abstract void reduceByProduction659(Parser parser);
+
+ /**
+ * Reduce by <xWhereBodyConstructBlock> ::= <xWhereBodyConstructBlock> <xWhereBodyConstruct> ;
+ */
+ public abstract void reduceByProduction660(Parser parser);
+
+ /**
+ * Reduce by <xWhereConstructStmt> ::= <xName> T_COLON T_WHERE T_LPAREN <xMaskExpr> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction661(Parser parser);
+
+ /**
+ * Reduce by <xWhereConstructStmt> ::= <xLblDef> <xName> T_COLON T_WHERE T_LPAREN <xMaskExpr> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction662(Parser parser);
+
+ /**
+ * Reduce by <xWhereConstructStmt> ::= T_WHERE T_LPAREN <xMaskExpr> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction663(Parser parser);
+
+ /**
+ * Reduce by <xWhereConstructStmt> ::= <xLblDef> T_WHERE T_LPAREN <xMaskExpr> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction664(Parser parser);
+
+ /**
+ * Reduce by <xWhereBodyConstruct> ::= <xAssignmentStmt> ;
+ */
+ public abstract void reduceByProduction665(Parser parser);
+
+ /**
+ * Reduce by <xWhereBodyConstruct> ::= <xWhereStmt> ;
+ */
+ public abstract void reduceByProduction666(Parser parser);
+
+ /**
+ * Reduce by <xWhereBodyConstruct> ::= <xWhereConstruct> ;
+ */
+ public abstract void reduceByProduction667(Parser parser);
+
+ /**
+ * Reduce by <xMaskExpr> ::= <xExpr> ;
+ */
+ public abstract void reduceByProduction668(Parser parser);
+
+ /**
+ * Reduce by <xMaskedElsewhereStmt> ::= T_ELSEWHERE T_LPAREN <xMaskExpr> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction669(Parser parser);
+
+ /**
+ * Reduce by <xMaskedElsewhereStmt> ::= T_ELSEWHERE T_LPAREN <xMaskExpr> T_RPAREN <xMaskedElsewhereStmt@53> T_EOS ;
+ */
+ public abstract void reduceByProduction670(Parser parser);
+
+ /**
+ * Reduce by <xMaskedElsewhereStmt> ::= <xLblDef> T_ELSEWHERE T_LPAREN <xMaskExpr> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction671(Parser parser);
+
+ /**
+ * Reduce by <xMaskedElsewhereStmt> ::= <xLblDef> T_ELSEWHERE T_LPAREN <xMaskExpr> T_RPAREN <xMaskedElsewhereStmt@53> T_EOS ;
+ */
+ public abstract void reduceByProduction672(Parser parser);
+
+ /**
+ * Reduce by <xElsewhereStmt> ::= T_ELSEWHERE T_EOS ;
+ */
+ public abstract void reduceByProduction673(Parser parser);
+
+ /**
+ * Reduce by <xElsewhereStmt> ::= T_ELSEWHERE <xElsewhereStmt@54> T_EOS ;
+ */
+ public abstract void reduceByProduction674(Parser parser);
+
+ /**
+ * Reduce by <xElsewhereStmt> ::= <xLblDef> T_ELSEWHERE T_EOS ;
+ */
+ public abstract void reduceByProduction675(Parser parser);
+
+ /**
+ * Reduce by <xElsewhereStmt> ::= <xLblDef> T_ELSEWHERE <xElsewhereStmt@54> T_EOS ;
+ */
+ public abstract void reduceByProduction676(Parser parser);
+
+ /**
+ * Reduce by <xEndWhereStmt> ::= T_ENDWHERE T_EOS ;
+ */
+ public abstract void reduceByProduction677(Parser parser);
+
+ /**
+ * Reduce by <xEndWhereStmt> ::= T_ENDWHERE <xEndWhereStmt@55> T_EOS ;
+ */
+ public abstract void reduceByProduction678(Parser parser);
+
+ /**
+ * Reduce by <xEndWhereStmt> ::= <xLblDef> T_ENDWHERE T_EOS ;
+ */
+ public abstract void reduceByProduction679(Parser parser);
+
+ /**
+ * Reduce by <xEndWhereStmt> ::= <xLblDef> T_ENDWHERE <xEndWhereStmt@55> T_EOS ;
+ */
+ public abstract void reduceByProduction680(Parser parser);
+
+ /**
+ * Reduce by <xEndWhereStmt> ::= T_END T_WHERE T_EOS ;
+ */
+ public abstract void reduceByProduction681(Parser parser);
+
+ /**
+ * Reduce by <xEndWhereStmt> ::= T_END T_WHERE <xEndWhereStmt@56> T_EOS ;
+ */
+ public abstract void reduceByProduction682(Parser parser);
+
+ /**
+ * Reduce by <xEndWhereStmt> ::= <xLblDef> T_END T_WHERE T_EOS ;
+ */
+ public abstract void reduceByProduction683(Parser parser);
+
+ /**
+ * Reduce by <xEndWhereStmt> ::= <xLblDef> T_END T_WHERE <xEndWhereStmt@56> T_EOS ;
+ */
+ public abstract void reduceByProduction684(Parser parser);
+
+ /**
+ * Reduce by <xForallConstruct> ::= <xForallConstructStmt> <xEndForallStmt> ;
+ */
+ public abstract void reduceByProduction685(Parser parser);
+
+ /**
+ * Reduce by <xForallConstruct> ::= <xForallConstructStmt> <xForallBody> <xEndForallStmt> ;
+ */
+ public abstract void reduceByProduction686(Parser parser);
+
+ /**
+ * Reduce by <xForallBody> ::= <xForallBodyConstruct> ;
+ */
+ public abstract void reduceByProduction687(Parser parser);
+
+ /**
+ * Reduce by <xForallBody> ::= <xForallBody> <xForallBodyConstruct> ;
+ */
+ public abstract void reduceByProduction688(Parser parser);
+
+ /**
+ * Reduce by <xForallConstructStmt> ::= T_FORALL <xForallHeader> T_EOS ;
+ */
+ public abstract void reduceByProduction689(Parser parser);
+
+ /**
+ * Reduce by <xForallConstructStmt> ::= <xLblDef> T_FORALL <xForallHeader> T_EOS ;
+ */
+ public abstract void reduceByProduction690(Parser parser);
+
+ /**
+ * Reduce by <xForallConstructStmt> ::= <xName> T_COLON T_FORALL <xForallHeader> T_EOS ;
+ */
+ public abstract void reduceByProduction691(Parser parser);
+
+ /**
+ * Reduce by <xForallConstructStmt> ::= <xLblDef> <xName> T_COLON T_FORALL <xForallHeader> T_EOS ;
+ */
+ public abstract void reduceByProduction692(Parser parser);
+
+ /**
+ * Reduce by <xForallHeader> ::= T_LPAREN <xForallTripletSpecList> T_RPAREN ;
+ */
+ public abstract void reduceByProduction693(Parser parser);
+
+ /**
+ * Reduce by <xForallHeader> ::= T_LPAREN <xForallTripletSpecList> T_COMMA <xScalarMaskExpr> T_RPAREN ;
+ */
+ public abstract void reduceByProduction694(Parser parser);
+
+ /**
+ * Reduce by <xScalarMaskExpr> ::= <xMaskExpr> ;
+ */
+ public abstract void reduceByProduction695(Parser parser);
+
+ /**
+ * Reduce by <xForallTripletSpecList> ::= <xName> T_EQUALS <xSubscript> T_COLON <xSubscript> ;
+ */
+ public abstract void reduceByProduction696(Parser parser);
+
+ /**
+ * Reduce by <xForallTripletSpecList> ::= <xName> T_EQUALS <xSubscript> T_COLON <xSubscript> T_COLON <xExpr> ;
+ */
+ public abstract void reduceByProduction697(Parser parser);
+
+ /**
+ * Reduce by <xForallBodyConstruct> ::= <xAssignmentStmt> ;
+ */
+ public abstract void reduceByProduction698(Parser parser);
+
+ /**
+ * Reduce by <xForallBodyConstruct> ::= <xPointerAssignmentStmt> ;
+ */
+ public abstract void reduceByProduction699(Parser parser);
+
+ /**
+ * Reduce by <xForallBodyConstruct> ::= <xWhereStmt> ;
+ */
+ public abstract void reduceByProduction700(Parser parser);
+
+ /**
+ * Reduce by <xForallBodyConstruct> ::= <xWhereConstruct> ;
+ */
+ public abstract void reduceByProduction701(Parser parser);
+
+ /**
+ * Reduce by <xForallBodyConstruct> ::= <xForallConstruct> ;
+ */
+ public abstract void reduceByProduction702(Parser parser);
+
+ /**
+ * Reduce by <xForallBodyConstruct> ::= <xForallStmt> ;
+ */
+ public abstract void reduceByProduction703(Parser parser);
+
+ /**
+ * Reduce by <xEndForallStmt> ::= T_END T_FORALL T_EOS ;
+ */
+ public abstract void reduceByProduction704(Parser parser);
+
+ /**
+ * Reduce by <xEndForallStmt> ::= T_END T_FORALL <xEndForallStmt@57> T_EOS ;
+ */
+ public abstract void reduceByProduction705(Parser parser);
+
+ /**
+ * Reduce by <xEndForallStmt> ::= <xLblDef> T_END T_FORALL T_EOS ;
+ */
+ public abstract void reduceByProduction706(Parser parser);
+
+ /**
+ * Reduce by <xEndForallStmt> ::= <xLblDef> T_END T_FORALL <xEndForallStmt@57> T_EOS ;
+ */
+ public abstract void reduceByProduction707(Parser parser);
+
+ /**
+ * Reduce by <xEndForallStmt> ::= T_ENDFORALL T_EOS ;
+ */
+ public abstract void reduceByProduction708(Parser parser);
+
+ /**
+ * Reduce by <xEndForallStmt> ::= T_ENDFORALL <xEndForallStmt@58> T_EOS ;
+ */
+ public abstract void reduceByProduction709(Parser parser);
+
+ /**
+ * Reduce by <xEndForallStmt> ::= <xLblDef> T_ENDFORALL T_EOS ;
+ */
+ public abstract void reduceByProduction710(Parser parser);
+
+ /**
+ * Reduce by <xEndForallStmt> ::= <xLblDef> T_ENDFORALL <xEndForallStmt@58> T_EOS ;
+ */
+ public abstract void reduceByProduction711(Parser parser);
+
+ /**
+ * Reduce by <xForallStmt> ::= T_FORALL <xForallHeader> <xAssignmentStmt> T_EOS ;
+ */
+ public abstract void reduceByProduction712(Parser parser);
+
+ /**
+ * Reduce by <xForallStmt> ::= <xLblDef> T_FORALL <xForallHeader> <xAssignmentStmt> T_EOS ;
+ */
+ public abstract void reduceByProduction713(Parser parser);
+
+ /**
+ * Reduce by <xForallStmt> ::= T_FORALL <xForallHeader> <xPointerAssignmentStmt> T_EOS ;
+ */
+ public abstract void reduceByProduction714(Parser parser);
+
+ /**
+ * Reduce by <xForallStmt> ::= <xLblDef> T_FORALL <xForallHeader> <xPointerAssignmentStmt> T_EOS ;
+ */
+ public abstract void reduceByProduction715(Parser parser);
+
+ /**
+ * Reduce by <xIfConstruct> ::= <xIfThenStmt> <xThenPart> ;
+ */
+ public abstract void reduceByProduction716(Parser parser);
+
+ /**
+ * Reduce by <xThenPart> ::= <xEndIfStmt> ;
+ */
+ public abstract void reduceByProduction717(Parser parser);
+
+ /**
+ * Reduce by <xThenPart> ::= <xConditionalBody> <xEndIfStmt> ;
+ */
+ public abstract void reduceByProduction718(Parser parser);
+
+ /**
+ * Reduce by <xThenPart> ::= <xElseIfConstruct> ;
+ */
+ public abstract void reduceByProduction719(Parser parser);
+
+ /**
+ * Reduce by <xThenPart> ::= <xConditionalBody> <xElseIfConstruct> ;
+ */
+ public abstract void reduceByProduction720(Parser parser);
+
+ /**
+ * Reduce by <xThenPart> ::= <xElseConstruct> ;
+ */
+ public abstract void reduceByProduction721(Parser parser);
+
+ /**
+ * Reduce by <xThenPart> ::= <xConditionalBody> <xElseConstruct> ;
+ */
+ public abstract void reduceByProduction722(Parser parser);
+
+ /**
+ * Reduce by <xElseIfConstruct> ::= <xElseIfStmt> <xThenPart> ;
+ */
+ public abstract void reduceByProduction723(Parser parser);
+
+ /**
+ * Reduce by <xElseConstruct> ::= <xElseStmt> <xElsePart> ;
+ */
+ public abstract void reduceByProduction724(Parser parser);
+
+ /**
+ * Reduce by <xElsePart> ::= <xEndIfStmt> ;
+ */
+ public abstract void reduceByProduction725(Parser parser);
+
+ /**
+ * Reduce by <xElsePart> ::= <xConditionalBody> <xEndIfStmt> ;
+ */
+ public abstract void reduceByProduction726(Parser parser);
+
+ /**
+ * Reduce by <xConditionalBody> ::= <xExecutionPartConstruct> ;
+ */
+ public abstract void reduceByProduction727(Parser parser);
+
+ /**
+ * Reduce by <xConditionalBody> ::= <xConditionalBody> <xExecutionPartConstruct> ;
+ */
+ public abstract void reduceByProduction728(Parser parser);
+
+ /**
+ * Reduce by <xIfThenStmt> ::= T_IF T_LPAREN <xExpr> T_RPAREN T_THEN T_EOS ;
+ */
+ public abstract void reduceByProduction729(Parser parser);
+
+ /**
+ * Reduce by <xIfThenStmt> ::= <xLblDef> T_IF T_LPAREN <xExpr> T_RPAREN T_THEN T_EOS ;
+ */
+ public abstract void reduceByProduction730(Parser parser);
+
+ /**
+ * Reduce by <xIfThenStmt> ::= <xName> T_COLON T_IF T_LPAREN <xExpr> T_RPAREN T_THEN T_EOS ;
+ */
+ public abstract void reduceByProduction731(Parser parser);
+
+ /**
+ * Reduce by <xIfThenStmt> ::= <xLblDef> <xName> T_COLON T_IF T_LPAREN <xExpr> T_RPAREN T_THEN T_EOS ;
+ */
+ public abstract void reduceByProduction732(Parser parser);
+
+ /**
+ * Reduce by <xElseIfStmt> ::= T_ELSEIF T_LPAREN <xExpr> T_RPAREN T_THEN T_EOS ;
+ */
+ public abstract void reduceByProduction733(Parser parser);
+
+ /**
+ * Reduce by <xElseIfStmt> ::= <xLblDef> T_ELSEIF T_LPAREN <xExpr> T_RPAREN T_THEN T_EOS ;
+ */
+ public abstract void reduceByProduction734(Parser parser);
+
+ /**
+ * Reduce by <xElseIfStmt> ::= T_ELSEIF T_LPAREN <xExpr> T_RPAREN T_THEN <xEndName> T_EOS ;
+ */
+ public abstract void reduceByProduction735(Parser parser);
+
+ /**
+ * Reduce by <xElseIfStmt> ::= <xLblDef> T_ELSEIF T_LPAREN <xExpr> T_RPAREN T_THEN <xEndName> T_EOS ;
+ */
+ public abstract void reduceByProduction736(Parser parser);
+
+ /**
+ * Reduce by <xElseIfStmt> ::= T_ELSE T_IF T_LPAREN <xExpr> T_RPAREN T_THEN T_EOS ;
+ */
+ public abstract void reduceByProduction737(Parser parser);
+
+ /**
+ * Reduce by <xElseIfStmt> ::= <xLblDef> T_ELSE T_IF T_LPAREN <xExpr> T_RPAREN T_THEN T_EOS ;
+ */
+ public abstract void reduceByProduction738(Parser parser);
+
+ /**
+ * Reduce by <xElseIfStmt> ::= T_ELSE T_IF T_LPAREN <xExpr> T_RPAREN T_THEN <xEndName> T_EOS ;
+ */
+ public abstract void reduceByProduction739(Parser parser);
+
+ /**
+ * Reduce by <xElseIfStmt> ::= <xLblDef> T_ELSE T_IF T_LPAREN <xExpr> T_RPAREN T_THEN <xEndName> T_EOS ;
+ */
+ public abstract void reduceByProduction740(Parser parser);
+
+ /**
+ * Reduce by <xElseStmt> ::= T_ELSE T_EOS ;
+ */
+ public abstract void reduceByProduction741(Parser parser);
+
+ /**
+ * Reduce by <xElseStmt> ::= <xLblDef> T_ELSE T_EOS ;
+ */
+ public abstract void reduceByProduction742(Parser parser);
+
+ /**
+ * Reduce by <xElseStmt> ::= T_ELSE <xEndName> T_EOS ;
+ */
+ public abstract void reduceByProduction743(Parser parser);
+
+ /**
+ * Reduce by <xElseStmt> ::= <xLblDef> T_ELSE <xEndName> T_EOS ;
+ */
+ public abstract void reduceByProduction744(Parser parser);
+
+ /**
+ * Reduce by <xEndIfStmt> ::= T_ENDIF T_EOS ;
+ */
+ public abstract void reduceByProduction745(Parser parser);
+
+ /**
+ * Reduce by <xEndIfStmt> ::= T_ENDIF <xEndIfStmt@59> T_EOS ;
+ */
+ public abstract void reduceByProduction746(Parser parser);
+
+ /**
+ * Reduce by <xEndIfStmt> ::= <xLblDef> T_ENDIF T_EOS ;
+ */
+ public abstract void reduceByProduction747(Parser parser);
+
+ /**
+ * Reduce by <xEndIfStmt> ::= <xLblDef> T_ENDIF <xEndIfStmt@59> T_EOS ;
+ */
+ public abstract void reduceByProduction748(Parser parser);
+
+ /**
+ * Reduce by <xEndIfStmt> ::= T_END T_IF T_EOS ;
+ */
+ public abstract void reduceByProduction749(Parser parser);
+
+ /**
+ * Reduce by <xEndIfStmt> ::= T_END T_IF <xEndIfStmt@60> T_EOS ;
+ */
+ public abstract void reduceByProduction750(Parser parser);
+
+ /**
+ * Reduce by <xEndIfStmt> ::= <xLblDef> T_END T_IF T_EOS ;
+ */
+ public abstract void reduceByProduction751(Parser parser);
+
+ /**
+ * Reduce by <xEndIfStmt> ::= <xLblDef> T_END T_IF <xEndIfStmt@60> T_EOS ;
+ */
+ public abstract void reduceByProduction752(Parser parser);
+
+ /**
+ * Reduce by <xIfStmt> ::= T_IF T_LPAREN <xExpr> T_RPAREN <xActionStmt> ;
+ */
+ public abstract void reduceByProduction753(Parser parser);
+
+ /**
+ * Reduce by <xIfStmt> ::= <xLblDef> T_IF T_LPAREN <xExpr> T_RPAREN <xActionStmt> ;
+ */
+ public abstract void reduceByProduction754(Parser parser);
+
+ /**
+ * Reduce by <xCaseConstruct> ::= <xSelectCaseStmt> <xSelectCaseRange> ;
+ */
+ public abstract void reduceByProduction755(Parser parser);
+
+ /**
+ * Reduce by <xSelectCaseRange> ::= <xSelectCaseBody> <xEndSelectStmt> ;
+ */
+ public abstract void reduceByProduction756(Parser parser);
+
+ /**
+ * Reduce by <xSelectCaseRange> ::= <xEndSelectStmt> ;
+ */
+ public abstract void reduceByProduction757(Parser parser);
+
+ /**
+ * Reduce by <xSelectCaseBody> ::= <xCaseStmt> ;
+ */
+ public abstract void reduceByProduction758(Parser parser);
+
+ /**
+ * Reduce by <xSelectCaseBody> ::= <xSelectCaseBody> <xCaseBodyConstruct> ;
+ */
+ public abstract void reduceByProduction759(Parser parser);
+
+ /**
+ * Reduce by <xCaseBodyConstruct> ::= <xCaseStmt> ;
+ */
+ public abstract void reduceByProduction760(Parser parser);
+
+ /**
+ * Reduce by <xCaseBodyConstruct> ::= <xExecutionPartConstruct> ;
+ */
+ public abstract void reduceByProduction761(Parser parser);
+
+ /**
+ * Reduce by <xSelectCaseStmt> ::= <xName> T_COLON T_SELECTCASE T_LPAREN <xExpr> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction762(Parser parser);
+
+ /**
+ * Reduce by <xSelectCaseStmt> ::= <xLblDef> <xName> T_COLON T_SELECTCASE T_LPAREN <xExpr> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction763(Parser parser);
+
+ /**
+ * Reduce by <xSelectCaseStmt> ::= T_SELECTCASE T_LPAREN <xExpr> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction764(Parser parser);
+
+ /**
+ * Reduce by <xSelectCaseStmt> ::= <xLblDef> T_SELECTCASE T_LPAREN <xExpr> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction765(Parser parser);
+
+ /**
+ * Reduce by <xSelectCaseStmt> ::= <xName> T_COLON T_SELECT T_CASE T_LPAREN <xExpr> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction766(Parser parser);
+
+ /**
+ * Reduce by <xSelectCaseStmt> ::= <xLblDef> <xName> T_COLON T_SELECT T_CASE T_LPAREN <xExpr> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction767(Parser parser);
+
+ /**
+ * Reduce by <xSelectCaseStmt> ::= T_SELECT T_CASE T_LPAREN <xExpr> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction768(Parser parser);
+
+ /**
+ * Reduce by <xSelectCaseStmt> ::= <xLblDef> T_SELECT T_CASE T_LPAREN <xExpr> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction769(Parser parser);
+
+ /**
+ * Reduce by <xCaseStmt> ::= T_CASE <xCaseSelector> T_EOS ;
+ */
+ public abstract void reduceByProduction770(Parser parser);
+
+ /**
+ * Reduce by <xCaseStmt> ::= <xLblDef> T_CASE <xCaseSelector> T_EOS ;
+ */
+ public abstract void reduceByProduction771(Parser parser);
+
+ /**
+ * Reduce by <xCaseStmt> ::= T_CASE <xCaseSelector> <xName> T_EOS ;
+ */
+ public abstract void reduceByProduction772(Parser parser);
+
+ /**
+ * Reduce by <xCaseStmt> ::= <xLblDef> T_CASE <xCaseSelector> <xName> T_EOS ;
+ */
+ public abstract void reduceByProduction773(Parser parser);
+
+ /**
+ * Reduce by <xEndSelectStmt> ::= T_ENDSELECT T_EOS ;
+ */
+ public abstract void reduceByProduction774(Parser parser);
+
+ /**
+ * Reduce by <xEndSelectStmt> ::= T_ENDSELECT <xEndSelectStmt@61> T_EOS ;
+ */
+ public abstract void reduceByProduction775(Parser parser);
+
+ /**
+ * Reduce by <xEndSelectStmt> ::= <xLblDef> T_ENDSELECT T_EOS ;
+ */
+ public abstract void reduceByProduction776(Parser parser);
+
+ /**
+ * Reduce by <xEndSelectStmt> ::= <xLblDef> T_ENDSELECT <xEndSelectStmt@61> T_EOS ;
+ */
+ public abstract void reduceByProduction777(Parser parser);
+
+ /**
+ * Reduce by <xEndSelectStmt> ::= T_END T_SELECT T_EOS ;
+ */
+ public abstract void reduceByProduction778(Parser parser);
+
+ /**
+ * Reduce by <xEndSelectStmt> ::= T_END T_SELECT <xEndSelectStmt@62> T_EOS ;
+ */
+ public abstract void reduceByProduction779(Parser parser);
+
+ /**
+ * Reduce by <xEndSelectStmt> ::= <xLblDef> T_END T_SELECT T_EOS ;
+ */
+ public abstract void reduceByProduction780(Parser parser);
+
+ /**
+ * Reduce by <xEndSelectStmt> ::= <xLblDef> T_END T_SELECT <xEndSelectStmt@62> T_EOS ;
+ */
+ public abstract void reduceByProduction781(Parser parser);
+
+ /**
+ * Reduce by <xCaseSelector> ::= T_LPAREN <xCaseValueRangeList> T_RPAREN ;
+ */
+ public abstract void reduceByProduction782(Parser parser);
+
+ /**
+ * Reduce by <xCaseSelector> ::= T_DEFAULT ;
+ */
+ public abstract void reduceByProduction783(Parser parser);
+
+ /**
+ * Reduce by <xCaseValueRangeList> ::= <xCaseValueRange> ;
+ */
+ public abstract void reduceByProduction784(Parser parser);
+
+ /**
+ * Reduce by <xCaseValueRangeList> ::= <xCaseValueRangeList> T_COMMA <xCaseValueRange> ;
+ */
+ public abstract void reduceByProduction785(Parser parser);
+
+ /**
+ * Reduce by <xCaseValueRange> ::= <xExpr> ;
+ */
+ public abstract void reduceByProduction786(Parser parser);
+
+ /**
+ * Reduce by <xCaseValueRange> ::= <xExpr> T_COLON ;
+ */
+ public abstract void reduceByProduction787(Parser parser);
+
+ /**
+ * Reduce by <xCaseValueRange> ::= T_COLON <xExpr> ;
+ */
+ public abstract void reduceByProduction788(Parser parser);
+
+ /**
+ * Reduce by <xCaseValueRange> ::= <xExpr> T_COLON <xExpr> ;
+ */
+ public abstract void reduceByProduction789(Parser parser);
+
+ /**
+ * Reduce by <xDoConstruct> ::= <xBlockDoConstruct> ;
+ */
+ public abstract void reduceByProduction790(Parser parser);
+
+ /**
+ * Reduce by <xBlockDoConstruct> ::= <xLabelDoStmt> ;
+ */
+ public abstract void reduceByProduction791(Parser parser);
+
+ /**
+ * Reduce by <xLabelDoStmt> ::= T_DO <xLblRef> <xCommaLoopControl> T_EOS ;
+ */
+ public abstract void reduceByProduction792(Parser parser);
+
+ /**
+ * Reduce by <xLabelDoStmt> ::= <xLblDef> T_DO <xLblRef> <xCommaLoopControl> T_EOS ;
+ */
+ public abstract void reduceByProduction793(Parser parser);
+
+ /**
+ * Reduce by <xLabelDoStmt> ::= T_DO <xLblRef> T_EOS ;
+ */
+ public abstract void reduceByProduction794(Parser parser);
+
+ /**
+ * Reduce by <xLabelDoStmt> ::= <xLblDef> T_DO <xLblRef> T_EOS ;
+ */
+ public abstract void reduceByProduction795(Parser parser);
+
+ /**
+ * Reduce by <xLabelDoStmt> ::= T_DO <xCommaLoopControl> T_EOS ;
+ */
+ public abstract void reduceByProduction796(Parser parser);
+
+ /**
+ * Reduce by <xLabelDoStmt> ::= <xLblDef> T_DO <xCommaLoopControl> T_EOS ;
+ */
+ public abstract void reduceByProduction797(Parser parser);
+
+ /**
+ * Reduce by <xLabelDoStmt> ::= T_DO T_EOS ;
+ */
+ public abstract void reduceByProduction798(Parser parser);
+
+ /**
+ * Reduce by <xLabelDoStmt> ::= <xLblDef> T_DO T_EOS ;
+ */
+ public abstract void reduceByProduction799(Parser parser);
+
+ /**
+ * Reduce by <xLabelDoStmt> ::= <xName> T_COLON T_DO <xLblRef> <xCommaLoopControl> T_EOS ;
+ */
+ public abstract void reduceByProduction800(Parser parser);
+
+ /**
+ * Reduce by <xLabelDoStmt> ::= <xLblDef> <xName> T_COLON T_DO <xLblRef> <xCommaLoopControl> T_EOS ;
+ */
+ public abstract void reduceByProduction801(Parser parser);
+
+ /**
+ * Reduce by <xLabelDoStmt> ::= <xName> T_COLON T_DO <xLblRef> T_EOS ;
+ */
+ public abstract void reduceByProduction802(Parser parser);
+
+ /**
+ * Reduce by <xLabelDoStmt> ::= <xLblDef> <xName> T_COLON T_DO <xLblRef> T_EOS ;
+ */
+ public abstract void reduceByProduction803(Parser parser);
+
+ /**
+ * Reduce by <xLabelDoStmt> ::= <xName> T_COLON T_DO <xCommaLoopControl> T_EOS ;
+ */
+ public abstract void reduceByProduction804(Parser parser);
+
+ /**
+ * Reduce by <xLabelDoStmt> ::= <xLblDef> <xName> T_COLON T_DO <xCommaLoopControl> T_EOS ;
+ */
+ public abstract void reduceByProduction805(Parser parser);
+
+ /**
+ * Reduce by <xLabelDoStmt> ::= <xName> T_COLON T_DO T_EOS ;
+ */
+ public abstract void reduceByProduction806(Parser parser);
+
+ /**
+ * Reduce by <xLabelDoStmt> ::= <xLblDef> <xName> T_COLON T_DO T_EOS ;
+ */
+ public abstract void reduceByProduction807(Parser parser);
+
+ /**
+ * Reduce by <xCommaLoopControl> ::= T_COMMA <xLoopControl> ;
+ */
+ public abstract void reduceByProduction808(Parser parser);
+
+ /**
+ * Reduce by <xCommaLoopControl> ::= <xLoopControl> ;
+ */
+ public abstract void reduceByProduction809(Parser parser);
+
+ /**
+ * Reduce by <xLoopControl> ::= <xVariableName> T_EQUALS <xExpr> T_COMMA <xExpr> ;
+ */
+ public abstract void reduceByProduction810(Parser parser);
+
+ /**
+ * Reduce by <xLoopControl> ::= <xVariableName> T_EQUALS <xExpr> T_COMMA <xExpr> T_COMMA <xExpr> ;
+ */
+ public abstract void reduceByProduction811(Parser parser);
+
+ /**
+ * Reduce by <xLoopControl> ::= T_WHILE T_LPAREN <xExpr> T_RPAREN ;
+ */
+ public abstract void reduceByProduction812(Parser parser);
+
+ /**
+ * Reduce by <xEndDoStmt> ::= T_ENDDO T_EOS ;
+ */
+ public abstract void reduceByProduction813(Parser parser);
+
+ /**
+ * Reduce by <xEndDoStmt> ::= T_ENDDO <xEndDoStmt@63> T_EOS ;
+ */
+ public abstract void reduceByProduction814(Parser parser);
+
+ /**
+ * Reduce by <xEndDoStmt> ::= <xLblDef> T_ENDDO T_EOS ;
+ */
+ public abstract void reduceByProduction815(Parser parser);
+
+ /**
+ * Reduce by <xEndDoStmt> ::= <xLblDef> T_ENDDO <xEndDoStmt@63> T_EOS ;
+ */
+ public abstract void reduceByProduction816(Parser parser);
+
+ /**
+ * Reduce by <xEndDoStmt> ::= T_END T_DO T_EOS ;
+ */
+ public abstract void reduceByProduction817(Parser parser);
+
+ /**
+ * Reduce by <xEndDoStmt> ::= T_END T_DO <xEndDoStmt@64> T_EOS ;
+ */
+ public abstract void reduceByProduction818(Parser parser);
+
+ /**
+ * Reduce by <xEndDoStmt> ::= <xLblDef> T_END T_DO T_EOS ;
+ */
+ public abstract void reduceByProduction819(Parser parser);
+
+ /**
+ * Reduce by <xEndDoStmt> ::= <xLblDef> T_END T_DO <xEndDoStmt@64> T_EOS ;
+ */
+ public abstract void reduceByProduction820(Parser parser);
+
+ /**
+ * Reduce by <xCycleStmt> ::= T_CYCLE T_EOS ;
+ */
+ public abstract void reduceByProduction821(Parser parser);
+
+ /**
+ * Reduce by <xCycleStmt> ::= T_CYCLE <xCycleStmt@65> T_EOS ;
+ */
+ public abstract void reduceByProduction822(Parser parser);
+
+ /**
+ * Reduce by <xCycleStmt> ::= <xLblDef> T_CYCLE T_EOS ;
+ */
+ public abstract void reduceByProduction823(Parser parser);
+
+ /**
+ * Reduce by <xCycleStmt> ::= <xLblDef> T_CYCLE <xCycleStmt@65> T_EOS ;
+ */
+ public abstract void reduceByProduction824(Parser parser);
+
+ /**
+ * Reduce by <xExitStmt> ::= T_EXIT T_EOS ;
+ */
+ public abstract void reduceByProduction825(Parser parser);
+
+ /**
+ * Reduce by <xExitStmt> ::= T_EXIT <xExitStmt@66> T_EOS ;
+ */
+ public abstract void reduceByProduction826(Parser parser);
+
+ /**
+ * Reduce by <xExitStmt> ::= <xLblDef> T_EXIT T_EOS ;
+ */
+ public abstract void reduceByProduction827(Parser parser);
+
+ /**
+ * Reduce by <xExitStmt> ::= <xLblDef> T_EXIT <xExitStmt@66> T_EOS ;
+ */
+ public abstract void reduceByProduction828(Parser parser);
+
+ /**
+ * Reduce by <xGotoStmt> ::= <GoToKw> <xLblRef> T_EOS ;
+ */
+ public abstract void reduceByProduction829(Parser parser);
+
+ /**
+ * Reduce by <xGotoStmt> ::= <xLblDef> <GoToKw> <xLblRef> T_EOS ;
+ */
+ public abstract void reduceByProduction830(Parser parser);
+
+ /**
+ * Reduce by <GoToKw> ::= T_GOTO ;
+ */
+ public abstract void reduceByProduction831(Parser parser);
+
+ /**
+ * Reduce by <GoToKw> ::= T_GO T_TO ;
+ */
+ public abstract void reduceByProduction832(Parser parser);
+
+ /**
+ * Reduce by <xComputedGotoStmt> ::= <GoToKw> T_LPAREN <xLblRefList> T_RPAREN <xExpr> T_EOS ;
+ */
+ public abstract void reduceByProduction833(Parser parser);
+
+ /**
+ * Reduce by <xComputedGotoStmt> ::= <xLblDef> <GoToKw> T_LPAREN <xLblRefList> T_RPAREN <xExpr> T_EOS ;
+ */
+ public abstract void reduceByProduction834(Parser parser);
+
+ /**
+ * Reduce by <xComputedGotoStmt> ::= <GoToKw> T_LPAREN <xLblRefList> T_RPAREN <xCommaExp> T_EOS ;
+ */
+ public abstract void reduceByProduction835(Parser parser);
+
+ /**
+ * Reduce by <xComputedGotoStmt> ::= <xLblDef> <GoToKw> T_LPAREN <xLblRefList> T_RPAREN <xCommaExp> T_EOS ;
+ */
+ public abstract void reduceByProduction836(Parser parser);
+
+ /**
+ * Reduce by <xCommaExp> ::= T_COMMA <xExpr> ;
+ */
+ public abstract void reduceByProduction837(Parser parser);
+
+ /**
+ * Reduce by <xLblRefList> ::= <xLblRef> ;
+ */
+ public abstract void reduceByProduction838(Parser parser);
+
+ /**
+ * Reduce by <xLblRefList> ::= <xLblRefList> T_COMMA <xLblRef> ;
+ */
+ public abstract void reduceByProduction839(Parser parser);
+
+ /**
+ * Reduce by <xLblRef> ::= <xLabel> ;
+ */
+ public abstract void reduceByProduction840(Parser parser);
+
+ /**
+ * Reduce by <xArithmeticIfStmt> ::= T_IF T_LPAREN <xExpr> T_RPAREN <xLblRef> T_COMMA <xLblRef> T_COMMA <xLblRef> T_EOS ;
+ */
+ public abstract void reduceByProduction841(Parser parser);
+
+ /**
+ * Reduce by <xArithmeticIfStmt> ::= <xLblDef> T_IF T_LPAREN <xExpr> T_RPAREN <xLblRef> T_COMMA <xLblRef> T_COMMA <xLblRef> T_EOS ;
+ */
+ public abstract void reduceByProduction842(Parser parser);
+
+ /**
+ * Reduce by <xContinueStmt> ::= T_CONTINUE T_EOS ;
+ */
+ public abstract void reduceByProduction843(Parser parser);
+
+ /**
+ * Reduce by <xContinueStmt> ::= <xLblDef> T_CONTINUE T_EOS ;
+ */
+ public abstract void reduceByProduction844(Parser parser);
+
+ /**
+ * Reduce by <xStopStmt> ::= T_STOP T_EOS ;
+ */
+ public abstract void reduceByProduction845(Parser parser);
+
+ /**
+ * Reduce by <xStopStmt> ::= <xLblDef> T_STOP T_EOS ;
+ */
+ public abstract void reduceByProduction846(Parser parser);
+
+ /**
+ * Reduce by <xStopStmt> ::= T_STOP T_ICON T_EOS ;
+ */
+ public abstract void reduceByProduction847(Parser parser);
+
+ /**
+ * Reduce by <xStopStmt> ::= <xLblDef> T_STOP T_ICON T_EOS ;
+ */
+ public abstract void reduceByProduction848(Parser parser);
+
+ /**
+ * Reduce by <xStopStmt> ::= T_STOP T_SCON T_EOS ;
+ */
+ public abstract void reduceByProduction849(Parser parser);
+
+ /**
+ * Reduce by <xStopStmt> ::= <xLblDef> T_STOP T_SCON T_EOS ;
+ */
+ public abstract void reduceByProduction850(Parser parser);
+
+ /**
+ * Reduce by <xUnitIdentifier> ::= <xUFExpr> ;
+ */
+ public abstract void reduceByProduction851(Parser parser);
+
+ /**
+ * Reduce by <xUnitIdentifier> ::= T_ASTERISK ;
+ */
+ public abstract void reduceByProduction852(Parser parser);
+
+ /**
+ * Reduce by <xOpenStmt> ::= T_OPEN T_LPAREN <xConnectSpecList> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction853(Parser parser);
+
+ /**
+ * Reduce by <xOpenStmt> ::= <xLblDef> T_OPEN T_LPAREN <xConnectSpecList> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction854(Parser parser);
+
+ /**
+ * Reduce by <xConnectSpecList> ::= <xUnitIdentifier> ;
+ */
+ public abstract void reduceByProduction855(Parser parser);
+
+ /**
+ * Reduce by <xConnectSpecList> ::= <xConnectSpec> ;
+ */
+ public abstract void reduceByProduction856(Parser parser);
+
+ /**
+ * Reduce by <xConnectSpecList> ::= <xConnectSpecList> T_COMMA <xConnectSpec> ;
+ */
+ public abstract void reduceByProduction857(Parser parser);
+
+ /**
+ * Reduce by <xConnectSpec> ::= T_UNITEQ <xUnitIdentifier> ;
+ */
+ public abstract void reduceByProduction858(Parser parser);
+
+ /**
+ * Reduce by <xConnectSpec> ::= T_ERREQ <xLblRef> ;
+ */
+ public abstract void reduceByProduction859(Parser parser);
+
+ /**
+ * Reduce by <xConnectSpec> ::= T_FILEEQ <xCExpr> ;
+ */
+ public abstract void reduceByProduction860(Parser parser);
+
+ /**
+ * Reduce by <xConnectSpec> ::= T_STATUSEQ <xCExpr> ;
+ */
+ public abstract void reduceByProduction861(Parser parser);
+
+ /**
+ * Reduce by <xConnectSpec> ::= T_ACCESSEQ <xCExpr> ;
+ */
+ public abstract void reduceByProduction862(Parser parser);
+
+ /**
+ * Reduce by <xConnectSpec> ::= T_FORMEQ <xCExpr> ;
+ */
+ public abstract void reduceByProduction863(Parser parser);
+
+ /**
+ * Reduce by <xConnectSpec> ::= T_RECLEQ <xExpr> ;
+ */
+ public abstract void reduceByProduction864(Parser parser);
+
+ /**
+ * Reduce by <xConnectSpec> ::= T_BLANKEQ <xCExpr> ;
+ */
+ public abstract void reduceByProduction865(Parser parser);
+
+ /**
+ * Reduce by <xConnectSpec> ::= T_IOSTATEQ <xScalarVariable> ;
+ */
+ public abstract void reduceByProduction866(Parser parser);
+
+ /**
+ * Reduce by <xConnectSpec> ::= T_POSITIONEQ <xCExpr> ;
+ */
+ public abstract void reduceByProduction867(Parser parser);
+
+ /**
+ * Reduce by <xConnectSpec> ::= T_ACTIONEQ <xCExpr> ;
+ */
+ public abstract void reduceByProduction868(Parser parser);
+
+ /**
+ * Reduce by <xConnectSpec> ::= T_DELIMEQ <xCExpr> ;
+ */
+ public abstract void reduceByProduction869(Parser parser);
+
+ /**
+ * Reduce by <xConnectSpec> ::= T_PADEQ <xCExpr> ;
+ */
+ public abstract void reduceByProduction870(Parser parser);
+
+ /**
+ * Reduce by <xCloseStmt> ::= T_CLOSE T_LPAREN <xCloseSpecList> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction871(Parser parser);
+
+ /**
+ * Reduce by <xCloseStmt> ::= <xLblDef> T_CLOSE T_LPAREN <xCloseSpecList> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction872(Parser parser);
+
+ /**
+ * Reduce by <xCloseSpecList> ::= <xUnitIdentifier> ;
+ */
+ public abstract void reduceByProduction873(Parser parser);
+
+ /**
+ * Reduce by <xCloseSpecList> ::= <xCloseSpec> ;
+ */
+ public abstract void reduceByProduction874(Parser parser);
+
+ /**
+ * Reduce by <xCloseSpecList> ::= <xCloseSpecList> T_COMMA <xCloseSpec> ;
+ */
+ public abstract void reduceByProduction875(Parser parser);
+
+ /**
+ * Reduce by <xCloseSpec> ::= T_UNITEQ <xUnitIdentifier> ;
+ */
+ public abstract void reduceByProduction876(Parser parser);
+
+ /**
+ * Reduce by <xCloseSpec> ::= T_ERREQ <xLblRef> ;
+ */
+ public abstract void reduceByProduction877(Parser parser);
+
+ /**
+ * Reduce by <xCloseSpec> ::= T_STATUSEQ <xCExpr> ;
+ */
+ public abstract void reduceByProduction878(Parser parser);
+
+ /**
+ * Reduce by <xCloseSpec> ::= T_IOSTATEQ <xScalarVariable> ;
+ */
+ public abstract void reduceByProduction879(Parser parser);
+
+ /**
+ * Reduce by <xReadStmt> ::= T_READ <xRdCtlSpec> <xInputItemList> T_EOS ;
+ */
+ public abstract void reduceByProduction880(Parser parser);
+
+ /**
+ * Reduce by <xReadStmt> ::= <xLblDef> T_READ <xRdCtlSpec> <xInputItemList> T_EOS ;
+ */
+ public abstract void reduceByProduction881(Parser parser);
+
+ /**
+ * Reduce by <xReadStmt> ::= T_READ <xRdCtlSpec> T_EOS ;
+ */
+ public abstract void reduceByProduction882(Parser parser);
+
+ /**
+ * Reduce by <xReadStmt> ::= <xLblDef> T_READ <xRdCtlSpec> T_EOS ;
+ */
+ public abstract void reduceByProduction883(Parser parser);
+
+ /**
+ * Reduce by <xReadStmt> ::= T_READ <xRdFmtId> T_COMMA <xInputItemList> T_EOS ;
+ */
+ public abstract void reduceByProduction884(Parser parser);
+
+ /**
+ * Reduce by <xReadStmt> ::= <xLblDef> T_READ <xRdFmtId> T_COMMA <xInputItemList> T_EOS ;
+ */
+ public abstract void reduceByProduction885(Parser parser);
+
+ /**
+ * Reduce by <xReadStmt> ::= T_READ <xRdFmtId> T_EOS ;
+ */
+ public abstract void reduceByProduction886(Parser parser);
+
+ /**
+ * Reduce by <xReadStmt> ::= <xLblDef> T_READ <xRdFmtId> T_EOS ;
+ */
+ public abstract void reduceByProduction887(Parser parser);
+
+ /**
+ * Reduce by <xRdCtlSpec> ::= <xRdUnitId> ;
+ */
+ public abstract void reduceByProduction888(Parser parser);
+
+ /**
+ * Reduce by <xRdCtlSpec> ::= T_LPAREN <xRdIoCtlSpecList> T_RPAREN ;
+ */
+ public abstract void reduceByProduction889(Parser parser);
+
+ /**
+ * Reduce by <xRdUnitId> ::= T_LPAREN <xUFExpr> T_RPAREN ;
+ */
+ public abstract void reduceByProduction890(Parser parser);
+
+ /**
+ * Reduce by <xRdUnitId> ::= T_LPAREN T_ASTERISK T_RPAREN ;
+ */
+ public abstract void reduceByProduction891(Parser parser);
+
+ /**
+ * Reduce by <xRdIoCtlSpecList> ::= <xUnitIdentifier> T_COMMA <xIoControlSpec> ;
+ */
+ public abstract void reduceByProduction892(Parser parser);
+
+ /**
+ * Reduce by <xRdIoCtlSpecList> ::= <xUnitIdentifier> T_COMMA <xFormatIdentifier> ;
+ */
+ public abstract void reduceByProduction893(Parser parser);
+
+ /**
+ * Reduce by <xRdIoCtlSpecList> ::= <xIoControlSpec> ;
+ */
+ public abstract void reduceByProduction894(Parser parser);
+
+ /**
+ * Reduce by <xRdIoCtlSpecList> ::= <xRdIoCtlSpecList> T_COMMA <xIoControlSpec> ;
+ */
+ public abstract void reduceByProduction895(Parser parser);
+
+ /**
+ * Reduce by <xRdFmtId> ::= <xLblRef> ;
+ */
+ public abstract void reduceByProduction896(Parser parser);
+
+ /**
+ * Reduce by <xRdFmtId> ::= T_ASTERISK ;
+ */
+ public abstract void reduceByProduction897(Parser parser);
+
+ /**
+ * Reduce by <xRdFmtId> ::= <xCOperand> ;
+ */
+ public abstract void reduceByProduction898(Parser parser);
+
+ /**
+ * Reduce by <xRdFmtId> ::= <xCOperand> <xConcatOp> <xCPrimary> ;
+ */
+ public abstract void reduceByProduction899(Parser parser);
+
+ /**
+ * Reduce by <xRdFmtId> ::= <xRdFmtIdExpr> <xConcatOp> <xCPrimary> ;
+ */
+ public abstract void reduceByProduction900(Parser parser);
+
+ /**
+ * Reduce by <xRdFmtIdExpr> ::= T_LPAREN <xUFExpr> T_RPAREN ;
+ */
+ public abstract void reduceByProduction901(Parser parser);
+
+ /**
+ * Reduce by <xWriteStmt> ::= T_WRITE T_LPAREN <xIoControlSpecList> T_RPAREN <xOutputItemList> T_EOS ;
+ */
+ public abstract void reduceByProduction902(Parser parser);
+
+ /**
+ * Reduce by <xWriteStmt> ::= <xLblDef> T_WRITE T_LPAREN <xIoControlSpecList> T_RPAREN <xOutputItemList> T_EOS ;
+ */
+ public abstract void reduceByProduction903(Parser parser);
+
+ /**
+ * Reduce by <xWriteStmt> ::= T_WRITE T_LPAREN <xIoControlSpecList> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction904(Parser parser);
+
+ /**
+ * Reduce by <xWriteStmt> ::= <xLblDef> T_WRITE T_LPAREN <xIoControlSpecList> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction905(Parser parser);
+
+ /**
+ * Reduce by <xPrintStmt> ::= T_PRINT <xFormatIdentifier> T_COMMA <xOutputItemList> T_EOS ;
+ */
+ public abstract void reduceByProduction906(Parser parser);
+
+ /**
+ * Reduce by <xPrintStmt> ::= <xLblDef> T_PRINT <xFormatIdentifier> T_COMMA <xOutputItemList> T_EOS ;
+ */
+ public abstract void reduceByProduction907(Parser parser);
+
+ /**
+ * Reduce by <xPrintStmt> ::= T_PRINT <xFormatIdentifier> T_EOS ;
+ */
+ public abstract void reduceByProduction908(Parser parser);
+
+ /**
+ * Reduce by <xPrintStmt> ::= <xLblDef> T_PRINT <xFormatIdentifier> T_EOS ;
+ */
+ public abstract void reduceByProduction909(Parser parser);
+
+ /**
+ * Reduce by <xIoControlSpecList> ::= <xUnitIdentifier> ;
+ */
+ public abstract void reduceByProduction910(Parser parser);
+
+ /**
+ * Reduce by <xIoControlSpecList> ::= <xUnitIdentifier> T_COMMA <xFormatIdentifier> ;
+ */
+ public abstract void reduceByProduction911(Parser parser);
+
+ /**
+ * Reduce by <xIoControlSpecList> ::= <xUnitIdentifier> T_COMMA <xIoControlSpec> ;
+ */
+ public abstract void reduceByProduction912(Parser parser);
+
+ /**
+ * Reduce by <xIoControlSpecList> ::= <xIoControlSpec> ;
+ */
+ public abstract void reduceByProduction913(Parser parser);
+
+ /**
+ * Reduce by <xIoControlSpecList> ::= <xIoControlSpecList> T_COMMA <xIoControlSpec> ;
+ */
+ public abstract void reduceByProduction914(Parser parser);
+
+ /**
+ * Reduce by <xIoControlSpec> ::= T_FMTEQ <xFormatIdentifier> ;
+ */
+ public abstract void reduceByProduction915(Parser parser);
+
+ /**
+ * Reduce by <xIoControlSpec> ::= T_UNITEQ <xUnitIdentifier> ;
+ */
+ public abstract void reduceByProduction916(Parser parser);
+
+ /**
+ * Reduce by <xIoControlSpec> ::= T_RECEQ <xExpr> ;
+ */
+ public abstract void reduceByProduction917(Parser parser);
+
+ /**
+ * Reduce by <xIoControlSpec> ::= T_ENDEQ <xLblRef> ;
+ */
+ public abstract void reduceByProduction918(Parser parser);
+
+ /**
+ * Reduce by <xIoControlSpec> ::= T_ERREQ <xLblRef> ;
+ */
+ public abstract void reduceByProduction919(Parser parser);
+
+ /**
+ * Reduce by <xIoControlSpec> ::= T_IOSTATEQ <xScalarVariable> ;
+ */
+ public abstract void reduceByProduction920(Parser parser);
+
+ /**
+ * Reduce by <xIoControlSpec> ::= T_NMLEQ <xNamelistGroupName> ;
+ */
+ public abstract void reduceByProduction921(Parser parser);
+
+ /**
+ * Reduce by <xIoControlSpec> ::= T_ADVANCEEQ <xCExpr> ;
+ */
+ public abstract void reduceByProduction922(Parser parser);
+
+ /**
+ * Reduce by <xIoControlSpec> ::= T_SIZEEQ <xVariable> ;
+ */
+ public abstract void reduceByProduction923(Parser parser);
+
+ /**
+ * Reduce by <xIoControlSpec> ::= T_EOREQ <xLblRef> ;
+ */
+ public abstract void reduceByProduction924(Parser parser);
+
+ /**
+ * Reduce by <xFormatIdentifier> ::= <xLblRef> ;
+ */
+ public abstract void reduceByProduction925(Parser parser);
+
+ /**
+ * Reduce by <xFormatIdentifier> ::= <xCExpr> ;
+ */
+ public abstract void reduceByProduction926(Parser parser);
+
+ /**
+ * Reduce by <xFormatIdentifier> ::= T_ASTERISK ;
+ */
+ public abstract void reduceByProduction927(Parser parser);
+
+ /**
+ * Reduce by <xInputItemList> ::= <xInputItem> ;
+ */
+ public abstract void reduceByProduction928(Parser parser);
+
+ /**
+ * Reduce by <xInputItemList> ::= <xInputItemList> T_COMMA <xInputItem> ;
+ */
+ public abstract void reduceByProduction929(Parser parser);
+
+ /**
+ * Reduce by <xInputItem> ::= <xVariable> ;
+ */
+ public abstract void reduceByProduction930(Parser parser);
+
+ /**
+ * Reduce by <xInputItem> ::= <xInputImpliedDo> ;
+ */
+ public abstract void reduceByProduction931(Parser parser);
+
+ /**
+ * Reduce by <xOutputItemList> ::= <xExpr> ;
+ */
+ public abstract void reduceByProduction932(Parser parser);
+
+ /**
+ * Reduce by <xOutputItemList> ::= <xOutputItemList1> ;
+ */
+ public abstract void reduceByProduction933(Parser parser);
+
+ /**
+ * Reduce by <xOutputItemList1> ::= <xExpr> T_COMMA <xExpr> ;
+ */
+ public abstract void reduceByProduction934(Parser parser);
+
+ /**
+ * Reduce by <xOutputItemList1> ::= <xExpr> T_COMMA <xOutputImpliedDo> ;
+ */
+ public abstract void reduceByProduction935(Parser parser);
+
+ /**
+ * Reduce by <xOutputItemList1> ::= <xOutputImpliedDo> ;
+ */
+ public abstract void reduceByProduction936(Parser parser);
+
+ /**
+ * Reduce by <xOutputItemList1> ::= <xOutputItemList1> T_COMMA <xExpr> ;
+ */
+ public abstract void reduceByProduction937(Parser parser);
+
+ /**
+ * Reduce by <xOutputItemList1> ::= <xOutputItemList1> T_COMMA <xOutputImpliedDo> ;
+ */
+ public abstract void reduceByProduction938(Parser parser);
+
+ /**
+ * Reduce by <xInputImpliedDo> ::= T_LPAREN <xInputItemList> T_COMMA <T_xImpliedDoVariable> T_EQUALS <xExpr> T_COMMA <xExpr> T_RPAREN ;
+ */
+ public abstract void reduceByProduction939(Parser parser);
+
+ /**
+ * Reduce by <xInputImpliedDo> ::= T_LPAREN <xInputItemList> T_COMMA <T_xImpliedDoVariable> T_EQUALS <xExpr> T_COMMA <xExpr> T_COMMA <xExpr> T_RPAREN ;
+ */
+ public abstract void reduceByProduction940(Parser parser);
+
+ /**
+ * Reduce by <xOutputImpliedDo> ::= T_LPAREN <xExpr> T_COMMA <T_xImpliedDoVariable> T_EQUALS <xExpr> T_COMMA <xExpr> T_RPAREN ;
+ */
+ public abstract void reduceByProduction941(Parser parser);
+
+ /**
+ * Reduce by <xOutputImpliedDo> ::= T_LPAREN <xExpr> T_COMMA <T_xImpliedDoVariable> T_EQUALS <xExpr> T_COMMA <xExpr> T_COMMA <xExpr> T_RPAREN ;
+ */
+ public abstract void reduceByProduction942(Parser parser);
+
+ /**
+ * Reduce by <xOutputImpliedDo> ::= T_LPAREN <xOutputItemList1> T_COMMA <T_xImpliedDoVariable> T_EQUALS <xExpr> T_COMMA <xExpr> T_RPAREN ;
+ */
+ public abstract void reduceByProduction943(Parser parser);
+
+ /**
+ * Reduce by <xOutputImpliedDo> ::= T_LPAREN <xOutputItemList1> T_COMMA <T_xImpliedDoVariable> T_EQUALS <xExpr> T_COMMA <xExpr> T_COMMA <xExpr> T_RPAREN ;
+ */
+ public abstract void reduceByProduction944(Parser parser);
+
+ /**
+ * Reduce by <xBackspaceStmt> ::= T_BACKSPACE <xUnitIdentifier> T_EOS ;
+ */
+ public abstract void reduceByProduction945(Parser parser);
+
+ /**
+ * Reduce by <xBackspaceStmt> ::= <xLblDef> T_BACKSPACE <xUnitIdentifier> T_EOS ;
+ */
+ public abstract void reduceByProduction946(Parser parser);
+
+ /**
+ * Reduce by <xBackspaceStmt> ::= T_BACKSPACE T_LPAREN <xPositionSpecList> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction947(Parser parser);
+
+ /**
+ * Reduce by <xBackspaceStmt> ::= <xLblDef> T_BACKSPACE T_LPAREN <xPositionSpecList> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction948(Parser parser);
+
+ /**
+ * Reduce by <xEndfileStmt> ::= T_ENDFILE <xUnitIdentifier> T_EOS ;
+ */
+ public abstract void reduceByProduction949(Parser parser);
+
+ /**
+ * Reduce by <xEndfileStmt> ::= <xLblDef> T_ENDFILE <xUnitIdentifier> T_EOS ;
+ */
+ public abstract void reduceByProduction950(Parser parser);
+
+ /**
+ * Reduce by <xEndfileStmt> ::= T_ENDFILE T_LPAREN <xPositionSpecList> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction951(Parser parser);
+
+ /**
+ * Reduce by <xEndfileStmt> ::= <xLblDef> T_ENDFILE T_LPAREN <xPositionSpecList> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction952(Parser parser);
+
+ /**
+ * Reduce by <xEndfileStmt> ::= T_END T_FILE <xUnitIdentifier> T_EOS ;
+ */
+ public abstract void reduceByProduction953(Parser parser);
+
+ /**
+ * Reduce by <xEndfileStmt> ::= <xLblDef> T_END T_FILE <xUnitIdentifier> T_EOS ;
+ */
+ public abstract void reduceByProduction954(Parser parser);
+
+ /**
+ * Reduce by <xEndfileStmt> ::= T_END T_FILE T_LPAREN <xPositionSpecList> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction955(Parser parser);
+
+ /**
+ * Reduce by <xEndfileStmt> ::= <xLblDef> T_END T_FILE T_LPAREN <xPositionSpecList> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction956(Parser parser);
+
+ /**
+ * Reduce by <xRewindStmt> ::= T_REWIND <xUnitIdentifier> T_EOS ;
+ */
+ public abstract void reduceByProduction957(Parser parser);
+
+ /**
+ * Reduce by <xRewindStmt> ::= <xLblDef> T_REWIND <xUnitIdentifier> T_EOS ;
+ */
+ public abstract void reduceByProduction958(Parser parser);
+
+ /**
+ * Reduce by <xRewindStmt> ::= T_REWIND T_LPAREN <xPositionSpecList> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction959(Parser parser);
+
+ /**
+ * Reduce by <xRewindStmt> ::= <xLblDef> T_REWIND T_LPAREN <xPositionSpecList> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction960(Parser parser);
+
+ /**
+ * Reduce by <xPositionSpecList> ::= <xUnitIdentifier> T_COMMA <xPositionSpec> ;
+ */
+ public abstract void reduceByProduction961(Parser parser);
+
+ /**
+ * Reduce by <xPositionSpecList> ::= <xPositionSpec> ;
+ */
+ public abstract void reduceByProduction962(Parser parser);
+
+ /**
+ * Reduce by <xPositionSpecList> ::= <xPositionSpecList> T_COMMA <xPositionSpec> ;
+ */
+ public abstract void reduceByProduction963(Parser parser);
+
+ /**
+ * Reduce by <xPositionSpec> ::= T_UNITEQ <xUnitIdentifier> ;
+ */
+ public abstract void reduceByProduction964(Parser parser);
+
+ /**
+ * Reduce by <xPositionSpec> ::= T_ERREQ <xLblRef> ;
+ */
+ public abstract void reduceByProduction965(Parser parser);
+
+ /**
+ * Reduce by <xPositionSpec> ::= T_IOSTATEQ <xScalarVariable> ;
+ */
+ public abstract void reduceByProduction966(Parser parser);
+
+ /**
+ * Reduce by <xInquireStmt> ::= T_INQUIRE T_LPAREN <xInquireSpecList> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction967(Parser parser);
+
+ /**
+ * Reduce by <xInquireStmt> ::= <xLblDef> T_INQUIRE T_LPAREN <xInquireSpecList> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction968(Parser parser);
+
+ /**
+ * Reduce by <xInquireStmt> ::= T_INQUIRE T_LPAREN T_IOLENGTHEQ <xScalarVariable> T_RPAREN <xOutputItemList> T_EOS ;
+ */
+ public abstract void reduceByProduction969(Parser parser);
+
+ /**
+ * Reduce by <xInquireStmt> ::= <xLblDef> T_INQUIRE T_LPAREN T_IOLENGTHEQ <xScalarVariable> T_RPAREN <xOutputItemList> T_EOS ;
+ */
+ public abstract void reduceByProduction970(Parser parser);
+
+ /**
+ * Reduce by <xInquireSpecList> ::= <xUnitIdentifier> ;
+ */
+ public abstract void reduceByProduction971(Parser parser);
+
+ /**
+ * Reduce by <xInquireSpecList> ::= <xInquireSpec> ;
+ */
+ public abstract void reduceByProduction972(Parser parser);
+
+ /**
+ * Reduce by <xInquireSpecList> ::= <xInquireSpecList> T_COMMA <xInquireSpec> ;
+ */
+ public abstract void reduceByProduction973(Parser parser);
+
+ /**
+ * Reduce by <xInquireSpec> ::= T_UNITEQ <xUnitIdentifier> ;
+ */
+ public abstract void reduceByProduction974(Parser parser);
+
+ /**
+ * Reduce by <xInquireSpec> ::= T_FILEEQ <xCExpr> ;
+ */
+ public abstract void reduceByProduction975(Parser parser);
+
+ /**
+ * Reduce by <xInquireSpec> ::= T_ERREQ <xLblRef> ;
+ */
+ public abstract void reduceByProduction976(Parser parser);
+
+ /**
+ * Reduce by <xInquireSpec> ::= T_IOSTATEQ <xScalarVariable> ;
+ */
+ public abstract void reduceByProduction977(Parser parser);
+
+ /**
+ * Reduce by <xInquireSpec> ::= T_EXISTEQ <xScalarVariable> ;
+ */
+ public abstract void reduceByProduction978(Parser parser);
+
+ /**
+ * Reduce by <xInquireSpec> ::= T_OPENEDEQ <xScalarVariable> ;
+ */
+ public abstract void reduceByProduction979(Parser parser);
+
+ /**
+ * Reduce by <xInquireSpec> ::= T_NUMBEREQ <xScalarVariable> ;
+ */
+ public abstract void reduceByProduction980(Parser parser);
+
+ /**
+ * Reduce by <xInquireSpec> ::= T_NAMEDEQ <xScalarVariable> ;
+ */
+ public abstract void reduceByProduction981(Parser parser);
+
+ /**
+ * Reduce by <xInquireSpec> ::= T_NAMEEQ <xScalarVariable> ;
+ */
+ public abstract void reduceByProduction982(Parser parser);
+
+ /**
+ * Reduce by <xInquireSpec> ::= T_ACCESSEQ <xScalarVariable> ;
+ */
+ public abstract void reduceByProduction983(Parser parser);
+
+ /**
+ * Reduce by <xInquireSpec> ::= T_SEQUENTIALEQ <xScalarVariable> ;
+ */
+ public abstract void reduceByProduction984(Parser parser);
+
+ /**
+ * Reduce by <xInquireSpec> ::= T_DIRECTEQ <xScalarVariable> ;
+ */
+ public abstract void reduceByProduction985(Parser parser);
+
+ /**
+ * Reduce by <xInquireSpec> ::= T_FORMEQ <xScalarVariable> ;
+ */
+ public abstract void reduceByProduction986(Parser parser);
+
+ /**
+ * Reduce by <xInquireSpec> ::= T_FORMATTEDEQ <xScalarVariable> ;
+ */
+ public abstract void reduceByProduction987(Parser parser);
+
+ /**
+ * Reduce by <xInquireSpec> ::= T_UNFORMATTEDEQ <xScalarVariable> ;
+ */
+ public abstract void reduceByProduction988(Parser parser);
+
+ /**
+ * Reduce by <xInquireSpec> ::= T_RECLEQ <xExpr> ;
+ */
+ public abstract void reduceByProduction989(Parser parser);
+
+ /**
+ * Reduce by <xInquireSpec> ::= T_NEXTRECEQ <xScalarVariable> ;
+ */
+ public abstract void reduceByProduction990(Parser parser);
+
+ /**
+ * Reduce by <xInquireSpec> ::= T_BLANKEQ <xScalarVariable> ;
+ */
+ public abstract void reduceByProduction991(Parser parser);
+
+ /**
+ * Reduce by <xInquireSpec> ::= T_POSITIONEQ <xScalarVariable> ;
+ */
+ public abstract void reduceByProduction992(Parser parser);
+
+ /**
+ * Reduce by <xInquireSpec> ::= T_ACTIONEQ <xScalarVariable> ;
+ */
+ public abstract void reduceByProduction993(Parser parser);
+
+ /**
+ * Reduce by <xInquireSpec> ::= T_READEQ <xScalarVariable> ;
+ */
+ public abstract void reduceByProduction994(Parser parser);
+
+ /**
+ * Reduce by <xInquireSpec> ::= T_WRITEEQ <xScalarVariable> ;
+ */
+ public abstract void reduceByProduction995(Parser parser);
+
+ /**
+ * Reduce by <xInquireSpec> ::= T_READWRITEEQ <xScalarVariable> ;
+ */
+ public abstract void reduceByProduction996(Parser parser);
+
+ /**
+ * Reduce by <xInquireSpec> ::= T_DELIMEQ <xScalarVariable> ;
+ */
+ public abstract void reduceByProduction997(Parser parser);
+
+ /**
+ * Reduce by <xInquireSpec> ::= T_PADEQ <xScalarVariable> ;
+ */
+ public abstract void reduceByProduction998(Parser parser);
+
+ /**
+ * Reduce by <xFormatStmt> ::= T_FORMAT T_LPAREN T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction999(Parser parser);
+
+ /**
+ * Reduce by <xFormatStmt> ::= T_FORMAT T_LPAREN <xFormatStmt@67> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction1000(Parser parser);
+
+ /**
+ * Reduce by <xFormatStmt> ::= <xLblDef> T_FORMAT T_LPAREN T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction1001(Parser parser);
+
+ /**
+ * Reduce by <xFormatStmt> ::= <xLblDef> T_FORMAT T_LPAREN <xFormatStmt@67> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction1002(Parser parser);
+
+ /**
+ * Reduce by <xFormatStmt> ::= T_FORMAT %error T_EOS ;
+ */
+ public abstract void reduceByProduction1003(Parser parser);
+
+ /**
+ * Reduce by <xFormatStmt> ::= <xLblDef> T_FORMAT %error T_EOS ;
+ */
+ public abstract void reduceByProduction1004(Parser parser);
+
+ /**
+ * Reduce by <xFmtSpec> ::= <xFormatedit> ;
+ */
+ public abstract void reduceByProduction1005(Parser parser);
+
+ /**
+ * Reduce by <xFmtSpec> ::= <xFormatsep> ;
+ */
+ public abstract void reduceByProduction1006(Parser parser);
+
+ /**
+ * Reduce by <xFmtSpec> ::= <xFormatsep> <xFormatedit> ;
+ */
+ public abstract void reduceByProduction1007(Parser parser);
+
+ /**
+ * Reduce by <xFmtSpec> ::= <xFmtSpec> <xFormatsep> ;
+ */
+ public abstract void reduceByProduction1008(Parser parser);
+
+ /**
+ * Reduce by <xFmtSpec> ::= <xFmtSpec> <xFormatsep> <xFormatedit> ;
+ */
+ public abstract void reduceByProduction1009(Parser parser);
+
+ /**
+ * Reduce by <xFmtSpec> ::= <xFmtSpec> T_COMMA <xFormatedit> ;
+ */
+ public abstract void reduceByProduction1010(Parser parser);
+
+ /**
+ * Reduce by <xFmtSpec> ::= <xFmtSpec> T_COMMA <xFormatsep> ;
+ */
+ public abstract void reduceByProduction1011(Parser parser);
+
+ /**
+ * Reduce by <xFmtSpec> ::= <xFmtSpec> T_COMMA <xFormatsep> <xFormatedit> ;
+ */
+ public abstract void reduceByProduction1012(Parser parser);
+
+ /**
+ * Reduce by <xFormatedit> ::= <xEditElement> ;
+ */
+ public abstract void reduceByProduction1013(Parser parser);
+
+ /**
+ * Reduce by <xFormatedit> ::= T_ICON <xEditElement> ;
+ */
+ public abstract void reduceByProduction1014(Parser parser);
+
+ /**
+ * Reduce by <xFormatedit> ::= T_XCON ;
+ */
+ public abstract void reduceByProduction1015(Parser parser);
+
+ /**
+ * Reduce by <xFormatedit> ::= T_PCON ;
+ */
+ public abstract void reduceByProduction1016(Parser parser);
+
+ /**
+ * Reduce by <xFormatedit> ::= T_PCON <xEditElement> ;
+ */
+ public abstract void reduceByProduction1017(Parser parser);
+
+ /**
+ * Reduce by <xFormatedit> ::= T_PCON T_ICON <xEditElement> ;
+ */
+ public abstract void reduceByProduction1018(Parser parser);
+
+ /**
+ * Reduce by <xEditElement> ::= T_FCON ;
+ */
+ public abstract void reduceByProduction1019(Parser parser);
+
+ /**
+ * Reduce by <xEditElement> ::= T_SCON ;
+ */
+ public abstract void reduceByProduction1020(Parser parser);
+
+ /**
+ * Reduce by <xEditElement> ::= T_IDENT ;
+ */
+ public abstract void reduceByProduction1021(Parser parser);
+
+ /**
+ * Reduce by <xEditElement> ::= T_LPAREN <xFmtSpec> T_RPAREN ;
+ */
+ public abstract void reduceByProduction1022(Parser parser);
+
+ /**
+ * Reduce by <xEditElement> ::= T_HCON ;
+ */
+ public abstract void reduceByProduction1023(Parser parser);
+
+ /**
+ * Reduce by <xFormatsep> ::= T_SLASH ;
+ */
+ public abstract void reduceByProduction1024(Parser parser);
+
+ /**
+ * Reduce by <xFormatsep> ::= T_COLON ;
+ */
+ public abstract void reduceByProduction1025(Parser parser);
+
+ /**
+ * Reduce by <xProgramStmt> ::= T_PROGRAM <xProgramName> T_EOS ;
+ */
+ public abstract void reduceByProduction1026(Parser parser);
+
+ /**
+ * Reduce by <xProgramStmt> ::= <xLblDef> T_PROGRAM <xProgramName> T_EOS ;
+ */
+ public abstract void reduceByProduction1027(Parser parser);
+
+ /**
+ * Reduce by <xEndProgramStmt> ::= T_END T_EOS ;
+ */
+ public abstract void reduceByProduction1028(Parser parser);
+
+ /**
+ * Reduce by <xEndProgramStmt> ::= <xLblDef> T_END T_EOS ;
+ */
+ public abstract void reduceByProduction1029(Parser parser);
+
+ /**
+ * Reduce by <xEndProgramStmt> ::= T_ENDPROGRAM T_EOS ;
+ */
+ public abstract void reduceByProduction1030(Parser parser);
+
+ /**
+ * Reduce by <xEndProgramStmt> ::= T_ENDPROGRAM <xEndProgramStmt@68> T_EOS ;
+ */
+ public abstract void reduceByProduction1031(Parser parser);
+
+ /**
+ * Reduce by <xEndProgramStmt> ::= <xLblDef> T_ENDPROGRAM T_EOS ;
+ */
+ public abstract void reduceByProduction1032(Parser parser);
+
+ /**
+ * Reduce by <xEndProgramStmt> ::= <xLblDef> T_ENDPROGRAM <xEndProgramStmt@68> T_EOS ;
+ */
+ public abstract void reduceByProduction1033(Parser parser);
+
+ /**
+ * Reduce by <xEndProgramStmt> ::= T_END T_PROGRAM T_EOS ;
+ */
+ public abstract void reduceByProduction1034(Parser parser);
+
+ /**
+ * Reduce by <xEndProgramStmt> ::= T_END T_PROGRAM <xEndProgramStmt@69> T_EOS ;
+ */
+ public abstract void reduceByProduction1035(Parser parser);
+
+ /**
+ * Reduce by <xEndProgramStmt> ::= <xLblDef> T_END T_PROGRAM T_EOS ;
+ */
+ public abstract void reduceByProduction1036(Parser parser);
+
+ /**
+ * Reduce by <xEndProgramStmt> ::= <xLblDef> T_END T_PROGRAM <xEndProgramStmt@69> T_EOS ;
+ */
+ public abstract void reduceByProduction1037(Parser parser);
+
+ /**
+ * Reduce by <xModuleStmt> ::= T_MODULE <xModuleName> T_EOS ;
+ */
+ public abstract void reduceByProduction1038(Parser parser);
+
+ /**
+ * Reduce by <xModuleStmt> ::= <xLblDef> T_MODULE <xModuleName> T_EOS ;
+ */
+ public abstract void reduceByProduction1039(Parser parser);
+
+ /**
+ * Reduce by <xEndModuleStmt> ::= T_END T_EOS ;
+ */
+ public abstract void reduceByProduction1040(Parser parser);
+
+ /**
+ * Reduce by <xEndModuleStmt> ::= <xLblDef> T_END T_EOS ;
+ */
+ public abstract void reduceByProduction1041(Parser parser);
+
+ /**
+ * Reduce by <xEndModuleStmt> ::= T_ENDMODULE T_EOS ;
+ */
+ public abstract void reduceByProduction1042(Parser parser);
+
+ /**
+ * Reduce by <xEndModuleStmt> ::= T_ENDMODULE <xEndModuleStmt@70> T_EOS ;
+ */
+ public abstract void reduceByProduction1043(Parser parser);
+
+ /**
+ * Reduce by <xEndModuleStmt> ::= <xLblDef> T_ENDMODULE T_EOS ;
+ */
+ public abstract void reduceByProduction1044(Parser parser);
+
+ /**
+ * Reduce by <xEndModuleStmt> ::= <xLblDef> T_ENDMODULE <xEndModuleStmt@70> T_EOS ;
+ */
+ public abstract void reduceByProduction1045(Parser parser);
+
+ /**
+ * Reduce by <xEndModuleStmt> ::= T_END T_MODULE T_EOS ;
+ */
+ public abstract void reduceByProduction1046(Parser parser);
+
+ /**
+ * Reduce by <xEndModuleStmt> ::= T_END T_MODULE <xEndModuleStmt@71> T_EOS ;
+ */
+ public abstract void reduceByProduction1047(Parser parser);
+
+ /**
+ * Reduce by <xEndModuleStmt> ::= <xLblDef> T_END T_MODULE T_EOS ;
+ */
+ public abstract void reduceByProduction1048(Parser parser);
+
+ /**
+ * Reduce by <xEndModuleStmt> ::= <xLblDef> T_END T_MODULE <xEndModuleStmt@71> T_EOS ;
+ */
+ public abstract void reduceByProduction1049(Parser parser);
+
+ /**
+ * Reduce by <xUseStmt> ::= T_USE <xName> T_EOS ;
+ */
+ public abstract void reduceByProduction1050(Parser parser);
+
+ /**
+ * Reduce by <xUseStmt> ::= <xLblDef> T_USE <xName> T_EOS ;
+ */
+ public abstract void reduceByProduction1051(Parser parser);
+
+ /**
+ * Reduce by <xUseStmt> ::= T_USE <xName> T_COMMA <xRenameList> T_EOS ;
+ */
+ public abstract void reduceByProduction1052(Parser parser);
+
+ /**
+ * Reduce by <xUseStmt> ::= <xLblDef> T_USE <xName> T_COMMA <xRenameList> T_EOS ;
+ */
+ public abstract void reduceByProduction1053(Parser parser);
+
+ /**
+ * Reduce by <xUseStmt> ::= T_USE <xName> T_COMMA T_ONLY T_COLON T_EOS ;
+ */
+ public abstract void reduceByProduction1054(Parser parser);
+
+ /**
+ * Reduce by <xUseStmt> ::= T_USE <xName> T_COMMA T_ONLY T_COLON <xUseStmt@72> T_EOS ;
+ */
+ public abstract void reduceByProduction1055(Parser parser);
+
+ /**
+ * Reduce by <xUseStmt> ::= <xLblDef> T_USE <xName> T_COMMA T_ONLY T_COLON T_EOS ;
+ */
+ public abstract void reduceByProduction1056(Parser parser);
+
+ /**
+ * Reduce by <xUseStmt> ::= <xLblDef> T_USE <xName> T_COMMA T_ONLY T_COLON <xUseStmt@72> T_EOS ;
+ */
+ public abstract void reduceByProduction1057(Parser parser);
+
+ /**
+ * Reduce by <xRenameList> ::= <xRename> ;
+ */
+ public abstract void reduceByProduction1058(Parser parser);
+
+ /**
+ * Reduce by <xRenameList> ::= <xRenameList> T_COMMA <xRename> ;
+ */
+ public abstract void reduceByProduction1059(Parser parser);
+
+ /**
+ * Reduce by <xOnlyList> ::= <xOnly> ;
+ */
+ public abstract void reduceByProduction1060(Parser parser);
+
+ /**
+ * Reduce by <xOnlyList> ::= <xOnlyList> T_COMMA <xOnly> ;
+ */
+ public abstract void reduceByProduction1061(Parser parser);
+
+ /**
+ * Reduce by <xRename> ::= T_IDENT T_EQGREATERTHAN <xUseName> ;
+ */
+ public abstract void reduceByProduction1062(Parser parser);
+
+ /**
+ * Reduce by <xOnly> ::= <xGenericSpec> ;
+ */
+ public abstract void reduceByProduction1063(Parser parser);
+
+ /**
+ * Reduce by <xOnly> ::= T_IDENT T_EQGREATERTHAN <xUseName> ;
+ */
+ public abstract void reduceByProduction1064(Parser parser);
+
+ /**
+ * Reduce by <xOnly> ::= <xUseName> ;
+ */
+ public abstract void reduceByProduction1065(Parser parser);
+
+ /**
+ * Reduce by <xBlockDataStmt> ::= T_BLOCKDATA <xBlockDataName> T_EOS ;
+ */
+ public abstract void reduceByProduction1066(Parser parser);
+
+ /**
+ * Reduce by <xBlockDataStmt> ::= <xLblDef> T_BLOCKDATA <xBlockDataName> T_EOS ;
+ */
+ public abstract void reduceByProduction1067(Parser parser);
+
+ /**
+ * Reduce by <xBlockDataStmt> ::= T_BLOCKDATA T_EOS ;
+ */
+ public abstract void reduceByProduction1068(Parser parser);
+
+ /**
+ * Reduce by <xBlockDataStmt> ::= <xLblDef> T_BLOCKDATA T_EOS ;
+ */
+ public abstract void reduceByProduction1069(Parser parser);
+
+ /**
+ * Reduce by <xEndBlockDataStmt> ::= T_END T_EOS ;
+ */
+ public abstract void reduceByProduction1070(Parser parser);
+
+ /**
+ * Reduce by <xEndBlockDataStmt> ::= <xLblDef> T_END T_EOS ;
+ */
+ public abstract void reduceByProduction1071(Parser parser);
+
+ /**
+ * Reduce by <xEndBlockDataStmt> ::= T_ENDBLOCKDATA T_EOS ;
+ */
+ public abstract void reduceByProduction1072(Parser parser);
+
+ /**
+ * Reduce by <xEndBlockDataStmt> ::= T_ENDBLOCKDATA <xEndBlockDataStmt@73> T_EOS ;
+ */
+ public abstract void reduceByProduction1073(Parser parser);
+
+ /**
+ * Reduce by <xEndBlockDataStmt> ::= <xLblDef> T_ENDBLOCKDATA T_EOS ;
+ */
+ public abstract void reduceByProduction1074(Parser parser);
+
+ /**
+ * Reduce by <xEndBlockDataStmt> ::= <xLblDef> T_ENDBLOCKDATA <xEndBlockDataStmt@73> T_EOS ;
+ */
+ public abstract void reduceByProduction1075(Parser parser);
+
+ /**
+ * Reduce by <xEndBlockDataStmt> ::= T_END T_BLOCKDATA T_EOS ;
+ */
+ public abstract void reduceByProduction1076(Parser parser);
+
+ /**
+ * Reduce by <xEndBlockDataStmt> ::= T_END T_BLOCKDATA <xEndBlockDataStmt@74> T_EOS ;
+ */
+ public abstract void reduceByProduction1077(Parser parser);
+
+ /**
+ * Reduce by <xEndBlockDataStmt> ::= <xLblDef> T_END T_BLOCKDATA T_EOS ;
+ */
+ public abstract void reduceByProduction1078(Parser parser);
+
+ /**
+ * Reduce by <xEndBlockDataStmt> ::= <xLblDef> T_END T_BLOCKDATA <xEndBlockDataStmt@74> T_EOS ;
+ */
+ public abstract void reduceByProduction1079(Parser parser);
+
+ /**
+ * Reduce by <xEndBlockDataStmt> ::= T_ENDBLOCK T_DATA T_EOS ;
+ */
+ public abstract void reduceByProduction1080(Parser parser);
+
+ /**
+ * Reduce by <xEndBlockDataStmt> ::= T_ENDBLOCK T_DATA <xEndBlockDataStmt@75> T_EOS ;
+ */
+ public abstract void reduceByProduction1081(Parser parser);
+
+ /**
+ * Reduce by <xEndBlockDataStmt> ::= <xLblDef> T_ENDBLOCK T_DATA T_EOS ;
+ */
+ public abstract void reduceByProduction1082(Parser parser);
+
+ /**
+ * Reduce by <xEndBlockDataStmt> ::= <xLblDef> T_ENDBLOCK T_DATA <xEndBlockDataStmt@75> T_EOS ;
+ */
+ public abstract void reduceByProduction1083(Parser parser);
+
+ /**
+ * Reduce by <xEndBlockDataStmt> ::= T_END T_BLOCK T_DATA T_EOS ;
+ */
+ public abstract void reduceByProduction1084(Parser parser);
+
+ /**
+ * Reduce by <xEndBlockDataStmt> ::= T_END T_BLOCK T_DATA <xEndBlockDataStmt@76> T_EOS ;
+ */
+ public abstract void reduceByProduction1085(Parser parser);
+
+ /**
+ * Reduce by <xEndBlockDataStmt> ::= <xLblDef> T_END T_BLOCK T_DATA T_EOS ;
+ */
+ public abstract void reduceByProduction1086(Parser parser);
+
+ /**
+ * Reduce by <xEndBlockDataStmt> ::= <xLblDef> T_END T_BLOCK T_DATA <xEndBlockDataStmt@76> T_EOS ;
+ */
+ public abstract void reduceByProduction1087(Parser parser);
+
+ /**
+ * Reduce by <xInterfaceBlock> ::= <xInterfaceStmt> <xInterfaceRange> ;
+ */
+ public abstract void reduceByProduction1088(Parser parser);
+
+ /**
+ * Reduce by <xInterfaceRange> ::= <xInterfaceBlockBody> <xEndInterfaceStmt> ;
+ */
+ public abstract void reduceByProduction1089(Parser parser);
+
+ /**
+ * Reduce by <xInterfaceBlockBody> ::= <xInterfaceSpecification> ;
+ */
+ public abstract void reduceByProduction1090(Parser parser);
+
+ /**
+ * Reduce by <xInterfaceBlockBody> ::= <xInterfaceBlockBody> <xInterfaceSpecification> ;
+ */
+ public abstract void reduceByProduction1091(Parser parser);
+
+ /**
+ * Reduce by <xInterfaceSpecification> ::= <xInterfaceBody> ;
+ */
+ public abstract void reduceByProduction1092(Parser parser);
+
+ /**
+ * Reduce by <xInterfaceSpecification> ::= <xModuleProcedureStmt> ;
+ */
+ public abstract void reduceByProduction1093(Parser parser);
+
+ /**
+ * Reduce by <xInterfaceStmt> ::= T_INTERFACE <xGenericName> T_EOS ;
+ */
+ public abstract void reduceByProduction1094(Parser parser);
+
+ /**
+ * Reduce by <xInterfaceStmt> ::= <xLblDef> T_INTERFACE <xGenericName> T_EOS ;
+ */
+ public abstract void reduceByProduction1095(Parser parser);
+
+ /**
+ * Reduce by <xInterfaceStmt> ::= T_INTERFACE <xGenericSpec> T_EOS ;
+ */
+ public abstract void reduceByProduction1096(Parser parser);
+
+ /**
+ * Reduce by <xInterfaceStmt> ::= <xLblDef> T_INTERFACE <xGenericSpec> T_EOS ;
+ */
+ public abstract void reduceByProduction1097(Parser parser);
+
+ /**
+ * Reduce by <xInterfaceStmt> ::= T_INTERFACE T_EOS ;
+ */
+ public abstract void reduceByProduction1098(Parser parser);
+
+ /**
+ * Reduce by <xInterfaceStmt> ::= <xLblDef> T_INTERFACE T_EOS ;
+ */
+ public abstract void reduceByProduction1099(Parser parser);
+
+ /**
+ * Reduce by <xEndInterfaceStmt> ::= T_ENDINTERFACE T_EOS ;
+ */
+ public abstract void reduceByProduction1100(Parser parser);
+
+ /**
+ * Reduce by <xEndInterfaceStmt> ::= T_ENDINTERFACE <xEndInterfaceStmt@77> T_EOS ;
+ */
+ public abstract void reduceByProduction1101(Parser parser);
+
+ /**
+ * Reduce by <xEndInterfaceStmt> ::= <xLblDef> T_ENDINTERFACE T_EOS ;
+ */
+ public abstract void reduceByProduction1102(Parser parser);
+
+ /**
+ * Reduce by <xEndInterfaceStmt> ::= <xLblDef> T_ENDINTERFACE <xEndInterfaceStmt@77> T_EOS ;
+ */
+ public abstract void reduceByProduction1103(Parser parser);
+
+ /**
+ * Reduce by <xEndInterfaceStmt> ::= T_END T_INTERFACE T_EOS ;
+ */
+ public abstract void reduceByProduction1104(Parser parser);
+
+ /**
+ * Reduce by <xEndInterfaceStmt> ::= T_END T_INTERFACE <xEndInterfaceStmt@78> T_EOS ;
+ */
+ public abstract void reduceByProduction1105(Parser parser);
+
+ /**
+ * Reduce by <xEndInterfaceStmt> ::= <xLblDef> T_END T_INTERFACE T_EOS ;
+ */
+ public abstract void reduceByProduction1106(Parser parser);
+
+ /**
+ * Reduce by <xEndInterfaceStmt> ::= <xLblDef> T_END T_INTERFACE <xEndInterfaceStmt@78> T_EOS ;
+ */
+ public abstract void reduceByProduction1107(Parser parser);
+
+ /**
+ * Reduce by <xInterfaceBody> ::= <xFunctionStmt> <xFunctionInterfaceRange> ;
+ */
+ public abstract void reduceByProduction1108(Parser parser);
+
+ /**
+ * Reduce by <xInterfaceBody> ::= <xSubroutineStmt> <xSubroutineInterfaceRange> ;
+ */
+ public abstract void reduceByProduction1109(Parser parser);
+
+ /**
+ * Reduce by <xFunctionInterfaceRange> ::= <xSubprogramInterfaceBody> <xEndFunctionStmt> ;
+ */
+ public abstract void reduceByProduction1110(Parser parser);
+
+ /**
+ * Reduce by <xFunctionInterfaceRange> ::= <xEndFunctionStmt> ;
+ */
+ public abstract void reduceByProduction1111(Parser parser);
+
+ /**
+ * Reduce by <xSubroutineInterfaceRange> ::= <xSubprogramInterfaceBody> <xEndSubroutineStmt> ;
+ */
+ public abstract void reduceByProduction1112(Parser parser);
+
+ /**
+ * Reduce by <xSubroutineInterfaceRange> ::= <xEndSubroutineStmt> ;
+ */
+ public abstract void reduceByProduction1113(Parser parser);
+
+ /**
+ * Reduce by <xSubprogramInterfaceBody> ::= <xSpecificationPartConstruct> ;
+ */
+ public abstract void reduceByProduction1114(Parser parser);
+
+ /**
+ * Reduce by <xSubprogramInterfaceBody> ::= <xSubprogramInterfaceBody> <xSpecificationPartConstruct> ;
+ */
+ public abstract void reduceByProduction1115(Parser parser);
+
+ /**
+ * Reduce by <xModuleProcedureStmt> ::= T_MODULE T_PROCEDURE <xProcedureNameList> T_EOS ;
+ */
+ public abstract void reduceByProduction1116(Parser parser);
+
+ /**
+ * Reduce by <xModuleProcedureStmt> ::= <xLblDef> T_MODULE T_PROCEDURE <xProcedureNameList> T_EOS ;
+ */
+ public abstract void reduceByProduction1117(Parser parser);
+
+ /**
+ * Reduce by <xProcedureNameList> ::= <xProcedureName> ;
+ */
+ public abstract void reduceByProduction1118(Parser parser);
+
+ /**
+ * Reduce by <xProcedureNameList> ::= <xProcedureNameList> T_COMMA <xProcedureName> ;
+ */
+ public abstract void reduceByProduction1119(Parser parser);
+
+ /**
+ * Reduce by <xProcedureName> ::= T_IDENT ;
+ */
+ public abstract void reduceByProduction1120(Parser parser);
+
+ /**
+ * Reduce by <xGenericSpec> ::= T_OPERATOR T_LPAREN <xDefinedOperator> T_RPAREN ;
+ */
+ public abstract void reduceByProduction1121(Parser parser);
+
+ /**
+ * Reduce by <xGenericSpec> ::= T_ASSIGNMENT T_LPAREN T_EQUALS T_RPAREN ;
+ */
+ public abstract void reduceByProduction1122(Parser parser);
+
+ /**
+ * Reduce by <xExternalStmt> ::= T_EXTERNAL <xExternalNameList> T_EOS ;
+ */
+ public abstract void reduceByProduction1123(Parser parser);
+
+ /**
+ * Reduce by <xExternalStmt> ::= <xLblDef> T_EXTERNAL <xExternalNameList> T_EOS ;
+ */
+ public abstract void reduceByProduction1124(Parser parser);
+
+ /**
+ * Reduce by <xExternalStmt> ::= T_EXTERNAL T_COLON T_COLON <xExternalNameList> T_EOS ;
+ */
+ public abstract void reduceByProduction1125(Parser parser);
+
+ /**
+ * Reduce by <xExternalStmt> ::= <xLblDef> T_EXTERNAL T_COLON T_COLON <xExternalNameList> T_EOS ;
+ */
+ public abstract void reduceByProduction1126(Parser parser);
+
+ /**
+ * Reduce by <xExternalNameList> ::= <xExternalName> ;
+ */
+ public abstract void reduceByProduction1127(Parser parser);
+
+ /**
+ * Reduce by <xExternalNameList> ::= <xExternalNameList> T_COMMA <xExternalName> ;
+ */
+ public abstract void reduceByProduction1128(Parser parser);
+
+ /**
+ * Reduce by <xIntrinsicStmt> ::= T_INTRINSIC <xIntrinsicList> T_EOS ;
+ */
+ public abstract void reduceByProduction1129(Parser parser);
+
+ /**
+ * Reduce by <xIntrinsicStmt> ::= <xLblDef> T_INTRINSIC <xIntrinsicList> T_EOS ;
+ */
+ public abstract void reduceByProduction1130(Parser parser);
+
+ /**
+ * Reduce by <xIntrinsicStmt> ::= T_INTRINSIC T_COLON T_COLON <xIntrinsicList> T_EOS ;
+ */
+ public abstract void reduceByProduction1131(Parser parser);
+
+ /**
+ * Reduce by <xIntrinsicStmt> ::= <xLblDef> T_INTRINSIC T_COLON T_COLON <xIntrinsicList> T_EOS ;
+ */
+ public abstract void reduceByProduction1132(Parser parser);
+
+ /**
+ * Reduce by <xIntrinsicList> ::= <xIntrinsicProcedureName> ;
+ */
+ public abstract void reduceByProduction1133(Parser parser);
+
+ /**
+ * Reduce by <xIntrinsicList> ::= <xIntrinsicList> T_COMMA <xIntrinsicProcedureName> ;
+ */
+ public abstract void reduceByProduction1134(Parser parser);
+
+ /**
+ * Reduce by <xFunctionReference> ::= <xName> T_LPAREN T_RPAREN ;
+ */
+ public abstract void reduceByProduction1135(Parser parser);
+
+ /**
+ * Reduce by <xFunctionReference> ::= <xName> T_LPAREN <xFunctionArgList> T_RPAREN ;
+ */
+ public abstract void reduceByProduction1136(Parser parser);
+
+ /**
+ * Reduce by <xCallStmt> ::= T_CALL <xSubroutineNameUse> T_EOS ;
+ */
+ public abstract void reduceByProduction1137(Parser parser);
+
+ /**
+ * Reduce by <xCallStmt> ::= <xLblDef> T_CALL <xSubroutineNameUse> T_EOS ;
+ */
+ public abstract void reduceByProduction1138(Parser parser);
+
+ /**
+ * Reduce by <xCallStmt> ::= T_CALL <xSubroutineNameUse> T_LPAREN T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction1139(Parser parser);
+
+ /**
+ * Reduce by <xCallStmt> ::= T_CALL <xSubroutineNameUse> T_LPAREN <xSubroutineArgList> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction1140(Parser parser);
+
+ /**
+ * Reduce by <xCallStmt> ::= <xLblDef> T_CALL <xSubroutineNameUse> T_LPAREN T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction1141(Parser parser);
+
+ /**
+ * Reduce by <xCallStmt> ::= <xLblDef> T_CALL <xSubroutineNameUse> T_LPAREN <xSubroutineArgList> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction1142(Parser parser);
+
+ /**
+ * Reduce by <xSubroutineArgList> ::= <xSubroutineArg> ;
+ */
+ public abstract void reduceByProduction1143(Parser parser);
+
+ /**
+ * Reduce by <xSubroutineArgList> ::= T_COMMA <xSubroutineArg> ;
+ */
+ public abstract void reduceByProduction1144(Parser parser);
+
+ /**
+ * Reduce by <xSubroutineArgList> ::= <xSubroutineArgList> T_COMMA <xSubroutineArg> ;
+ */
+ public abstract void reduceByProduction1145(Parser parser);
+
+ /**
+ * Reduce by <xFunctionArgList> ::= <xFunctionArg> ;
+ */
+ public abstract void reduceByProduction1146(Parser parser);
+
+ /**
+ * Reduce by <xFunctionArgList> ::= <xFunctionArgList> T_COMMA <xFunctionArg> ;
+ */
+ public abstract void reduceByProduction1147(Parser parser);
+
+ /**
+ * Reduce by <xFunctionArgList> ::= <xSectionSubscriptList> T_COMMA <xFunctionArg> ;
+ */
+ public abstract void reduceByProduction1148(Parser parser);
+
+ /**
+ * Reduce by <xFunctionArg> ::= <xName> T_EQUALS <xExpr> ;
+ */
+ public abstract void reduceByProduction1149(Parser parser);
+
+ /**
+ * Reduce by <xSubroutineArg> ::= <xExpr> ;
+ */
+ public abstract void reduceByProduction1150(Parser parser);
+
+ /**
+ * Reduce by <xSubroutineArg> ::= T_ASTERISK <xLblRef> ;
+ */
+ public abstract void reduceByProduction1151(Parser parser);
+
+ /**
+ * Reduce by <xSubroutineArg> ::= <xName> T_EQUALS <xExpr> ;
+ */
+ public abstract void reduceByProduction1152(Parser parser);
+
+ /**
+ * Reduce by <xSubroutineArg> ::= <xName> T_EQUALS T_ASTERISK <xLblRef> ;
+ */
+ public abstract void reduceByProduction1153(Parser parser);
+
+ /**
+ * Reduce by <xSubroutineArg> ::= T_HCON ;
+ */
+ public abstract void reduceByProduction1154(Parser parser);
+
+ /**
+ * Reduce by <xSubroutineArg> ::= <xName> T_EQUALS T_HCON ;
+ */
+ public abstract void reduceByProduction1155(Parser parser);
+
+ /**
+ * Reduce by <xFunctionStmt> ::= <xFunctionPrefix> <xFunctionName> T_LPAREN T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction1156(Parser parser);
+
+ /**
+ * Reduce by <xFunctionStmt> ::= <xFunctionPrefix> <xFunctionName> T_LPAREN T_RPAREN <xFunctionStmt@79> T_EOS ;
+ */
+ public abstract void reduceByProduction1157(Parser parser);
+
+ /**
+ * Reduce by <xFunctionStmt> ::= <xFunctionPrefix> <xFunctionName> T_LPAREN <xFunctionPars> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction1158(Parser parser);
+
+ /**
+ * Reduce by <xFunctionStmt> ::= <xFunctionPrefix> <xFunctionName> T_LPAREN <xFunctionPars> T_RPAREN <xFunctionStmt@79> T_EOS ;
+ */
+ public abstract void reduceByProduction1159(Parser parser);
+
+ /**
+ * Reduce by <xFunctionStmt> ::= <xLblDef> <xFunctionPrefix> <xFunctionName> T_LPAREN T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction1160(Parser parser);
+
+ /**
+ * Reduce by <xFunctionStmt> ::= <xLblDef> <xFunctionPrefix> <xFunctionName> T_LPAREN T_RPAREN <xFunctionStmt@79> T_EOS ;
+ */
+ public abstract void reduceByProduction1161(Parser parser);
+
+ /**
+ * Reduce by <xFunctionStmt> ::= <xLblDef> <xFunctionPrefix> <xFunctionName> T_LPAREN <xFunctionPars> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction1162(Parser parser);
+
+ /**
+ * Reduce by <xFunctionStmt> ::= <xLblDef> <xFunctionPrefix> <xFunctionName> T_LPAREN <xFunctionPars> T_RPAREN <xFunctionStmt@79> T_EOS ;
+ */
+ public abstract void reduceByProduction1163(Parser parser);
+
+ /**
+ * Reduce by <xFunctionStmt> ::= <xFunctionPrefix> <xFunctionName> %error T_EOS ;
+ */
+ public abstract void reduceByProduction1164(Parser parser);
+
+ /**
+ * Reduce by <xFunctionStmt> ::= <xLblDef> <xFunctionPrefix> <xFunctionName> %error T_EOS ;
+ */
+ public abstract void reduceByProduction1165(Parser parser);
+
+ /**
+ * Reduce by <xFunctionPars> ::= <xFunctionPar> ;
+ */
+ public abstract void reduceByProduction1166(Parser parser);
+
+ /**
+ * Reduce by <xFunctionPars> ::= T_COMMA <xFunctionPar> ;
+ */
+ public abstract void reduceByProduction1167(Parser parser);
+
+ /**
+ * Reduce by <xFunctionPars> ::= <xFunctionPars> T_COMMA <xFunctionPar> ;
+ */
+ public abstract void reduceByProduction1168(Parser parser);
+
+ /**
+ * Reduce by <xFunctionPar> ::= <xDummyArgName> ;
+ */
+ public abstract void reduceByProduction1169(Parser parser);
+
+ /**
+ * Reduce by <xFunctionPrefix> ::= T_FUNCTION ;
+ */
+ public abstract void reduceByProduction1170(Parser parser);
+
+ /**
+ * Reduce by <xFunctionPrefix> ::= <xPrefixSpecList> T_FUNCTION ;
+ */
+ public abstract void reduceByProduction1171(Parser parser);
+
+ /**
+ * Reduce by <xPrefixSpecList> ::= <xPrefixSpec> ;
+ */
+ public abstract void reduceByProduction1172(Parser parser);
+
+ /**
+ * Reduce by <xPrefixSpecList> ::= <xPrefixSpecList> <xPrefixSpec> ;
+ */
+ public abstract void reduceByProduction1173(Parser parser);
+
+ /**
+ * Reduce by <xPrefixSpec> ::= <xTypeSpec> ;
+ */
+ public abstract void reduceByProduction1174(Parser parser);
+
+ /**
+ * Reduce by <xPrefixSpec> ::= T_RECURSIVE ;
+ */
+ public abstract void reduceByProduction1175(Parser parser);
+
+ /**
+ * Reduce by <xPrefixSpec> ::= T_PURE ;
+ */
+ public abstract void reduceByProduction1176(Parser parser);
+
+ /**
+ * Reduce by <xPrefixSpec> ::= T_ELEMENTAL ;
+ */
+ public abstract void reduceByProduction1177(Parser parser);
+
+ /**
+ * Reduce by <xEndFunctionStmt> ::= T_END T_EOS ;
+ */
+ public abstract void reduceByProduction1178(Parser parser);
+
+ /**
+ * Reduce by <xEndFunctionStmt> ::= <xLblDef> T_END T_EOS ;
+ */
+ public abstract void reduceByProduction1179(Parser parser);
+
+ /**
+ * Reduce by <xEndFunctionStmt> ::= T_ENDFUNCTION T_EOS ;
+ */
+ public abstract void reduceByProduction1180(Parser parser);
+
+ /**
+ * Reduce by <xEndFunctionStmt> ::= T_ENDFUNCTION <xEndFunctionStmt@80> T_EOS ;
+ */
+ public abstract void reduceByProduction1181(Parser parser);
+
+ /**
+ * Reduce by <xEndFunctionStmt> ::= <xLblDef> T_ENDFUNCTION T_EOS ;
+ */
+ public abstract void reduceByProduction1182(Parser parser);
+
+ /**
+ * Reduce by <xEndFunctionStmt> ::= <xLblDef> T_ENDFUNCTION <xEndFunctionStmt@80> T_EOS ;
+ */
+ public abstract void reduceByProduction1183(Parser parser);
+
+ /**
+ * Reduce by <xEndFunctionStmt> ::= T_END T_FUNCTION T_EOS ;
+ */
+ public abstract void reduceByProduction1184(Parser parser);
+
+ /**
+ * Reduce by <xEndFunctionStmt> ::= T_END T_FUNCTION <xEndFunctionStmt@81> T_EOS ;
+ */
+ public abstract void reduceByProduction1185(Parser parser);
+
+ /**
+ * Reduce by <xEndFunctionStmt> ::= <xLblDef> T_END T_FUNCTION T_EOS ;
+ */
+ public abstract void reduceByProduction1186(Parser parser);
+
+ /**
+ * Reduce by <xEndFunctionStmt> ::= <xLblDef> T_END T_FUNCTION <xEndFunctionStmt@81> T_EOS ;
+ */
+ public abstract void reduceByProduction1187(Parser parser);
+
+ /**
+ * Reduce by <xSubroutineStmt> ::= <xSubroutinePrefix> <xSubroutineName> T_EOS ;
+ */
+ public abstract void reduceByProduction1188(Parser parser);
+
+ /**
+ * Reduce by <xSubroutineStmt> ::= <xSubroutinePrefix> <xSubroutineName> <xSubroutineStmt@82> T_EOS ;
+ */
+ public abstract void reduceByProduction1189(Parser parser);
+
+ /**
+ * Reduce by <xSubroutineStmt> ::= <xLblDef> <xSubroutinePrefix> <xSubroutineName> T_EOS ;
+ */
+ public abstract void reduceByProduction1190(Parser parser);
+
+ /**
+ * Reduce by <xSubroutineStmt> ::= <xLblDef> <xSubroutinePrefix> <xSubroutineName> <xSubroutineStmt@82> T_EOS ;
+ */
+ public abstract void reduceByProduction1191(Parser parser);
+
+ /**
+ * Reduce by <xSubroutineStmt> ::= <xSubroutinePrefix> <xSubroutineName> %error T_EOS ;
+ */
+ public abstract void reduceByProduction1192(Parser parser);
+
+ /**
+ * Reduce by <xSubroutineStmt> ::= <xLblDef> <xSubroutinePrefix> <xSubroutineName> %error T_EOS ;
+ */
+ public abstract void reduceByProduction1193(Parser parser);
+
+ /**
+ * Reduce by <xSubroutinePrefix> ::= T_SUBROUTINE ;
+ */
+ public abstract void reduceByProduction1194(Parser parser);
+
+ /**
+ * Reduce by <xSubroutinePrefix> ::= <xPrefixSpecList> T_SUBROUTINE ;
+ */
+ public abstract void reduceByProduction1195(Parser parser);
+
+ /**
+ * Reduce by <xSubroutinePars> ::= <xSubroutinePar> ;
+ */
+ public abstract void reduceByProduction1196(Parser parser);
+
+ /**
+ * Reduce by <xSubroutinePars> ::= T_COMMA <xSubroutinePar> ;
+ */
+ public abstract void reduceByProduction1197(Parser parser);
+
+ /**
+ * Reduce by <xSubroutinePars> ::= <xSubroutinePars> T_COMMA <xSubroutinePar> ;
+ */
+ public abstract void reduceByProduction1198(Parser parser);
+
+ /**
+ * Reduce by <xSubroutinePar> ::= <xDummyArgName> ;
+ */
+ public abstract void reduceByProduction1199(Parser parser);
+
+ /**
+ * Reduce by <xSubroutinePar> ::= T_ASTERISK ;
+ */
+ public abstract void reduceByProduction1200(Parser parser);
+
+ /**
+ * Reduce by <xEndSubroutineStmt> ::= T_END T_EOS ;
+ */
+ public abstract void reduceByProduction1201(Parser parser);
+
+ /**
+ * Reduce by <xEndSubroutineStmt> ::= <xLblDef> T_END T_EOS ;
+ */
+ public abstract void reduceByProduction1202(Parser parser);
+
+ /**
+ * Reduce by <xEndSubroutineStmt> ::= T_ENDSUBROUTINE T_EOS ;
+ */
+ public abstract void reduceByProduction1203(Parser parser);
+
+ /**
+ * Reduce by <xEndSubroutineStmt> ::= T_ENDSUBROUTINE <xEndSubroutineStmt@83> T_EOS ;
+ */
+ public abstract void reduceByProduction1204(Parser parser);
+
+ /**
+ * Reduce by <xEndSubroutineStmt> ::= <xLblDef> T_ENDSUBROUTINE T_EOS ;
+ */
+ public abstract void reduceByProduction1205(Parser parser);
+
+ /**
+ * Reduce by <xEndSubroutineStmt> ::= <xLblDef> T_ENDSUBROUTINE <xEndSubroutineStmt@83> T_EOS ;
+ */
+ public abstract void reduceByProduction1206(Parser parser);
+
+ /**
+ * Reduce by <xEndSubroutineStmt> ::= T_END T_SUBROUTINE T_EOS ;
+ */
+ public abstract void reduceByProduction1207(Parser parser);
+
+ /**
+ * Reduce by <xEndSubroutineStmt> ::= T_END T_SUBROUTINE <xEndSubroutineStmt@84> T_EOS ;
+ */
+ public abstract void reduceByProduction1208(Parser parser);
+
+ /**
+ * Reduce by <xEndSubroutineStmt> ::= <xLblDef> T_END T_SUBROUTINE T_EOS ;
+ */
+ public abstract void reduceByProduction1209(Parser parser);
+
+ /**
+ * Reduce by <xEndSubroutineStmt> ::= <xLblDef> T_END T_SUBROUTINE <xEndSubroutineStmt@84> T_EOS ;
+ */
+ public abstract void reduceByProduction1210(Parser parser);
+
+ /**
+ * Reduce by <xEntryStmt> ::= T_ENTRY <xEntryName> T_EOS ;
+ */
+ public abstract void reduceByProduction1211(Parser parser);
+
+ /**
+ * Reduce by <xEntryStmt> ::= T_ENTRY <xEntryName> <xEntryStmt@85> T_EOS ;
+ */
+ public abstract void reduceByProduction1212(Parser parser);
+
+ /**
+ * Reduce by <xEntryStmt> ::= <xLblDef> T_ENTRY <xEntryName> T_EOS ;
+ */
+ public abstract void reduceByProduction1213(Parser parser);
+
+ /**
+ * Reduce by <xEntryStmt> ::= <xLblDef> T_ENTRY <xEntryName> <xEntryStmt@85> T_EOS ;
+ */
+ public abstract void reduceByProduction1214(Parser parser);
+
+ /**
+ * Reduce by <xReturnStmt> ::= T_RETURN T_EOS ;
+ */
+ public abstract void reduceByProduction1215(Parser parser);
+
+ /**
+ * Reduce by <xReturnStmt> ::= <xLblDef> T_RETURN T_EOS ;
+ */
+ public abstract void reduceByProduction1216(Parser parser);
+
+ /**
+ * Reduce by <xReturnStmt> ::= T_RETURN <xExpr> T_EOS ;
+ */
+ public abstract void reduceByProduction1217(Parser parser);
+
+ /**
+ * Reduce by <xReturnStmt> ::= <xLblDef> T_RETURN <xExpr> T_EOS ;
+ */
+ public abstract void reduceByProduction1218(Parser parser);
+
+ /**
+ * Reduce by <xContainsStmt> ::= T_CONTAINS T_EOS ;
+ */
+ public abstract void reduceByProduction1219(Parser parser);
+
+ /**
+ * Reduce by <xContainsStmt> ::= <xLblDef> T_CONTAINS T_EOS ;
+ */
+ public abstract void reduceByProduction1220(Parser parser);
+
+ /**
+ * Reduce by <xStmtFunctionStmt> ::= <xName> <xStmtFunctionRange> ;
+ */
+ public abstract void reduceByProduction1221(Parser parser);
+
+ /**
+ * Reduce by <xStmtFunctionStmt> ::= <xLblDef> <xName> <xStmtFunctionRange> ;
+ */
+ public abstract void reduceByProduction1222(Parser parser);
+
+ /**
+ * Reduce by <xStmtFunctionRange> ::= T_LPAREN T_RPAREN T_EQUALS <xExpr> T_EOS ;
+ */
+ public abstract void reduceByProduction1223(Parser parser);
+
+ /**
+ * Reduce by <xStmtFunctionRange> ::= T_LPAREN <xSFDummyArgNameList> T_RPAREN T_EQUALS <xExpr> T_EOS ;
+ */
+ public abstract void reduceByProduction1224(Parser parser);
+
+ /**
+ * Reduce by <xSFDummyArgNameList> ::= <xSFDummyArgName> ;
+ */
+ public abstract void reduceByProduction1225(Parser parser);
+
+ /**
+ * Reduce by <xSFDummyArgNameList> ::= <xSFDummyArgNameList> T_COMMA <xSFDummyArgName> ;
+ */
+ public abstract void reduceByProduction1226(Parser parser);
+
+ /**
+ * Reduce by <xArrayName> ::= T_IDENT ;
+ */
+ public abstract void reduceByProduction1227(Parser parser);
+
+ /**
+ * Reduce by <xBlockDataName> ::= T_IDENT ;
+ */
+ public abstract void reduceByProduction1228(Parser parser);
+
+ /**
+ * Reduce by <xCommonBlockName> ::= T_IDENT ;
+ */
+ public abstract void reduceByProduction1229(Parser parser);
+
+ /**
+ * Reduce by <xComponentName> ::= T_IDENT ;
+ */
+ public abstract void reduceByProduction1230(Parser parser);
+
+ /**
+ * Reduce by <xDummyArgName> ::= T_IDENT ;
+ */
+ public abstract void reduceByProduction1231(Parser parser);
+
+ /**
+ * Reduce by <xEndName> ::= T_IDENT ;
+ */
+ public abstract void reduceByProduction1232(Parser parser);
+
+ /**
+ * Reduce by <xEntryName> ::= T_IDENT ;
+ */
+ public abstract void reduceByProduction1233(Parser parser);
+
+ /**
+ * Reduce by <xExternalName> ::= T_IDENT ;
+ */
+ public abstract void reduceByProduction1234(Parser parser);
+
+ /**
+ * Reduce by <xFunctionName> ::= T_IDENT ;
+ */
+ public abstract void reduceByProduction1235(Parser parser);
+
+ /**
+ * Reduce by <xGenericName> ::= T_IDENT ;
+ */
+ public abstract void reduceByProduction1236(Parser parser);
+
+ /**
+ * Reduce by <T_xImpliedDoVariable> ::= T_IDENT ;
+ */
+ public abstract void reduceByProduction1237(Parser parser);
+
+ /**
+ * Reduce by <xIntrinsicProcedureName> ::= T_IDENT ;
+ */
+ public abstract void reduceByProduction1238(Parser parser);
+
+ /**
+ * Reduce by <xModuleName> ::= T_IDENT ;
+ */
+ public abstract void reduceByProduction1239(Parser parser);
+
+ /**
+ * Reduce by <xNamelistGroupName> ::= T_IDENT ;
+ */
+ public abstract void reduceByProduction1240(Parser parser);
+
+ /**
+ * Reduce by <xObjectName> ::= T_IDENT ;
+ */
+ public abstract void reduceByProduction1241(Parser parser);
+
+ /**
+ * Reduce by <xProgramName> ::= T_IDENT ;
+ */
+ public abstract void reduceByProduction1242(Parser parser);
+
+ /**
+ * Reduce by <xSFDummyArgName> ::= <xName> ;
+ */
+ public abstract void reduceByProduction1243(Parser parser);
+
+ /**
+ * Reduce by <xSFVarName> ::= <xName> ;
+ */
+ public abstract void reduceByProduction1244(Parser parser);
+
+ /**
+ * Reduce by <xSubroutineName> ::= T_IDENT ;
+ */
+ public abstract void reduceByProduction1245(Parser parser);
+
+ /**
+ * Reduce by <xSubroutineNameUse> ::= T_IDENT ;
+ */
+ public abstract void reduceByProduction1246(Parser parser);
+
+ /**
+ * Reduce by <xTypeName> ::= T_IDENT ;
+ */
+ public abstract void reduceByProduction1247(Parser parser);
+
+ /**
+ * Reduce by <xUseName> ::= T_IDENT ;
+ */
+ public abstract void reduceByProduction1248(Parser parser);
+
+ /**
+ * Reduce by <xLblDef> ::= <xLabel> ;
+ */
+ public abstract void reduceByProduction1249(Parser parser);
+
+ /**
+ * Reduce by <xActionStmt> ::= <xAssignStmt> ;
+ */
+ public abstract void reduceByProduction1250(Parser parser);
+
+ /**
+ * Reduce by <xActionStmt> ::= <xAssignedGotoStmt> ;
+ */
+ public abstract void reduceByProduction1251(Parser parser);
+
+ /**
+ * Reduce by <xActionStmt> ::= <xPauseStmt> ;
+ */
+ public abstract void reduceByProduction1252(Parser parser);
+
+ /**
+ * Reduce by <xPauseStmt> ::= T_PAUSE T_EOS ;
+ */
+ public abstract void reduceByProduction1253(Parser parser);
+
+ /**
+ * Reduce by <xPauseStmt> ::= <xLblDef> T_PAUSE T_EOS ;
+ */
+ public abstract void reduceByProduction1254(Parser parser);
+
+ /**
+ * Reduce by <xPauseStmt> ::= T_PAUSE T_ICON T_EOS ;
+ */
+ public abstract void reduceByProduction1255(Parser parser);
+
+ /**
+ * Reduce by <xPauseStmt> ::= <xLblDef> T_PAUSE T_ICON T_EOS ;
+ */
+ public abstract void reduceByProduction1256(Parser parser);
+
+ /**
+ * Reduce by <xPauseStmt> ::= T_PAUSE T_SCON T_EOS ;
+ */
+ public abstract void reduceByProduction1257(Parser parser);
+
+ /**
+ * Reduce by <xPauseStmt> ::= <xLblDef> T_PAUSE T_SCON T_EOS ;
+ */
+ public abstract void reduceByProduction1258(Parser parser);
+
+ /**
+ * Reduce by <xAssignStmt> ::= T_ASSIGN <xLblRef> T_TO <xVariableName> T_EOS ;
+ */
+ public abstract void reduceByProduction1259(Parser parser);
+
+ /**
+ * Reduce by <xAssignStmt> ::= <xLblDef> T_ASSIGN <xLblRef> T_TO <xVariableName> T_EOS ;
+ */
+ public abstract void reduceByProduction1260(Parser parser);
+
+ /**
+ * Reduce by <xAssignedGotoStmt> ::= <GoToKw> <xVariableName> T_EOS ;
+ */
+ public abstract void reduceByProduction1261(Parser parser);
+
+ /**
+ * Reduce by <xAssignedGotoStmt> ::= <xLblDef> <GoToKw> <xVariableName> T_EOS ;
+ */
+ public abstract void reduceByProduction1262(Parser parser);
+
+ /**
+ * Reduce by <xAssignedGotoStmt> ::= <GoToKw> <xVariableName> T_LPAREN <xLblRefList> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction1263(Parser parser);
+
+ /**
+ * Reduce by <xAssignedGotoStmt> ::= <xLblDef> <GoToKw> <xVariableName> T_LPAREN <xLblRefList> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction1264(Parser parser);
+
+ /**
+ * Reduce by <xAssignedGotoStmt> ::= <GoToKw> <xVariableComma> T_LPAREN <xLblRefList> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction1265(Parser parser);
+
+ /**
+ * Reduce by <xAssignedGotoStmt> ::= <xLblDef> <GoToKw> <xVariableComma> T_LPAREN <xLblRefList> T_RPAREN T_EOS ;
+ */
+ public abstract void reduceByProduction1266(Parser parser);
+
+ /**
+ * Reduce by <xVariableComma> ::= <xVariableName> T_COMMA ;
+ */
+ public abstract void reduceByProduction1267(Parser parser);
+
+ /**
+ * Reduce by <xEndTypeStmt@1> ::= <xTypeName> ;
+ */
+ public abstract void reduceByProduction1268(Parser parser);
+
+ /**
+ * Reduce by <xEndTypeStmt@2> ::= <xTypeName> ;
+ */
+ public abstract void reduceByProduction1269(Parser parser);
+
+ /**
+ * Reduce by <xEntityDecl@3> ::= T_LPAREN <xArraySpec> T_RPAREN ;
+ */
+ public abstract void reduceByProduction1270(Parser parser);
+
+ /**
+ * Reduce by <xEntityDecl@4> ::= T_ASTERISK <xCharLength> ;
+ */
+ public abstract void reduceByProduction1271(Parser parser);
+
+ /**
+ * Reduce by <xEntityDecl@5> ::= <xInitialization> ;
+ */
+ public abstract void reduceByProduction1272(Parser parser);
+
+ /**
+ * Reduce by <xInvalidEntityDecl@6> ::= <xInitialization> ;
+ */
+ public abstract void reduceByProduction1273(Parser parser);
+
+ /**
+ * Reduce by <xIntentStmt@7> ::= T_COLON T_COLON ;
+ */
+ public abstract void reduceByProduction1274(Parser parser);
+
+ /**
+ * Reduce by <xOptionalStmt@8> ::= T_COLON T_COLON ;
+ */
+ public abstract void reduceByProduction1275(Parser parser);
+
+ /**
+ * Reduce by <xAccessStmt@9> ::= T_COLON T_COLON ;
+ */
+ public abstract void reduceByProduction1276(Parser parser);
+
+ /**
+ * Reduce by <xSaveStmt@10> ::= T_COLON T_COLON ;
+ */
+ public abstract void reduceByProduction1277(Parser parser);
+
+ /**
+ * Reduce by <xDimensionStmt@11> ::= T_COLON T_COLON ;
+ */
+ public abstract void reduceByProduction1278(Parser parser);
+
+ /**
+ * Reduce by <xAllocatableStmt@12> ::= T_COLON T_COLON ;
+ */
+ public abstract void reduceByProduction1279(Parser parser);
+
+ /**
+ * Reduce by <xPointerStmt@13> ::= T_COLON T_COLON ;
+ */
+ public abstract void reduceByProduction1280(Parser parser);
+
+ /**
+ * Reduce by <xTargetStmt@14> ::= T_COLON T_COLON ;
+ */
+ public abstract void reduceByProduction1281(Parser parser);
+
+ /**
+ * Reduce by <xVariable@15> ::= T_LPAREN <xSectionSubscriptList> T_RPAREN ;
+ */
+ public abstract void reduceByProduction1282(Parser parser);
+
+ /**
+ * Reduce by <xVariable@15> ::= T_LPAREN <xSectionSubscriptList> T_RPAREN <xVariable@16> ;
+ */
+ public abstract void reduceByProduction1283(Parser parser);
+
+ /**
+ * Reduce by <xVariable@16> ::= <xSubstringRange> ;
+ */
+ public abstract void reduceByProduction1284(Parser parser);
+
+ /**
+ * Reduce by <xDataRef@17> ::= T_LPAREN <xSectionSubscriptList> T_RPAREN ;
+ */
+ public abstract void reduceByProduction1285(Parser parser);
+
+ /**
+ * Reduce by <xSFDataRef@18> ::= T_LPAREN <xSectionSubscriptList> T_RPAREN ;
+ */
+ public abstract void reduceByProduction1286(Parser parser);
+
+ /**
+ * Reduce by <xPrimary@19> ::= T_LPAREN <xSectionSubscriptList> T_RPAREN ;
+ */
+ public abstract void reduceByProduction1287(Parser parser);
+
+ /**
+ * Reduce by <xPrimary@19> ::= T_LPAREN <xSectionSubscriptList> T_RPAREN <xPrimary@20> ;
+ */
+ public abstract void reduceByProduction1288(Parser parser);
+
+ /**
+ * Reduce by <xPrimary@20> ::= <xSubstringRange> ;
+ */
+ public abstract void reduceByProduction1289(Parser parser);
+
+ /**
+ * Reduce by <xPrimary@21> ::= T_LPAREN <xSectionSubscriptList> T_RPAREN ;
+ */
+ public abstract void reduceByProduction1290(Parser parser);
+
+ /**
+ * Reduce by <xPrimary@21> ::= T_LPAREN <xSectionSubscriptList> T_RPAREN <xPrimary@22> ;
+ */
+ public abstract void reduceByProduction1291(Parser parser);
+
+ /**
+ * Reduce by <xPrimary@22> ::= <xSubstringRange> ;
+ */
+ public abstract void reduceByProduction1292(Parser parser);
+
+ /**
+ * Reduce by <xPrimary@23> ::= T_LPAREN <xSectionSubscriptList> T_RPAREN ;
+ */
+ public abstract void reduceByProduction1293(Parser parser);
+
+ /**
+ * Reduce by <xPrimary@23> ::= T_LPAREN <xSectionSubscriptList> T_RPAREN <xPrimary@24> ;
+ */
+ public abstract void reduceByProduction1294(Parser parser);
+
+ /**
+ * Reduce by <xPrimary@24> ::= <xSubstringRange> ;
+ */
+ public abstract void reduceByProduction1295(Parser parser);
+
+ /**
+ * Reduce by <xPrimary@25> ::= <xSubstringRange> ;
+ */
+ public abstract void reduceByProduction1296(Parser parser);
+
+ /**
+ * Reduce by <xPrimary@26> ::= T_LPAREN <xSectionSubscriptList> T_RPAREN ;
+ */
+ public abstract void reduceByProduction1297(Parser parser);
+
+ /**
+ * Reduce by <xPrimary@26> ::= T_LPAREN <xSectionSubscriptList> T_RPAREN <xPrimary@27> ;
+ */
+ public abstract void reduceByProduction1298(Parser parser);
+
+ /**
+ * Reduce by <xPrimary@27> ::= <xSubstringRange> ;
+ */
+ public abstract void reduceByProduction1299(Parser parser);
+
+ /**
+ * Reduce by <xCOperand@28> ::= T_LPAREN <xSectionSubscriptList> T_RPAREN ;
+ */
+ public abstract void reduceByProduction1300(Parser parser);
+
+ /**
+ * Reduce by <xCOperand@29> ::= T_LPAREN <xSectionSubscriptList> T_RPAREN ;
+ */
+ public abstract void reduceByProduction1301(Parser parser);
+
+ /**
+ * Reduce by <xCOperand@30> ::= T_LPAREN <xSectionSubscriptList> T_RPAREN ;
+ */
+ public abstract void reduceByProduction1302(Parser parser);
+
+ /**
+ * Reduce by <xUFPrimary@31> ::= T_LPAREN <xSectionSubscriptList> T_RPAREN ;
+ */
+ public abstract void reduceByProduction1303(Parser parser);
+
+ /**
+ * Reduce by <xUFPrimary@31> ::= T_LPAREN <xSectionSubscriptList> T_RPAREN <xUFPrimary@32> ;
+ */
+ public abstract void reduceByProduction1304(Parser parser);
+
+ /**
+ * Reduce by <xUFPrimary@32> ::= <xSubstringRange> ;
+ */
+ public abstract void reduceByProduction1305(Parser parser);
+
+ /**
+ * Reduce by <xUFPrimary@33> ::= T_LPAREN <xSectionSubscriptList> T_RPAREN ;
+ */
+ public abstract void reduceByProduction1306(Parser parser);
+
+ /**
+ * Reduce by <xUFPrimary@34> ::= T_LPAREN <xSectionSubscriptList> T_RPAREN ;
+ */
+ public abstract void reduceByProduction1307(Parser parser);
+
+ /**
+ * Reduce by <xUFPrimary@34> ::= T_LPAREN <xSectionSubscriptList> T_RPAREN <xUFPrimary@35> ;
+ */
+ public abstract void reduceByProduction1308(Parser parser);
+
+ /**
+ * Reduce by <xUFPrimary@35> ::= <xSubstringRange> ;
+ */
+ public abstract void reduceByProduction1309(Parser parser);
+
+ /**
+ * Reduce by <xMultOperand@36> ::= <xPowerOp> <xMultOperand> ;
+ */
+ public abstract void reduceByProduction1310(Parser parser);
+
+ /**
+ * Reduce by <xUFFactor@37> ::= <xPowerOp> <xUFFactor> ;
+ */
+ public abstract void reduceByProduction1311(Parser parser);
+
+ /**
+ * Reduce by <xAddOperand@38> ::= <xAddOperand> <xMultOp> ;
+ */
+ public abstract void reduceByProduction1312(Parser parser);
+
+ /**
+ * Reduce by <xLevel2Expr@39> ::= <xLevel2Expr> <xAddOp> ;
+ */
+ public abstract void reduceByProduction1313(Parser parser);
+
+ /**
+ * Reduce by <xLevel3Expr@40> ::= <xLevel3Expr> <xConcatOp> ;
+ */
+ public abstract void reduceByProduction1314(Parser parser);
+
+ /**
+ * Reduce by <xCExpr@41> ::= <xCExpr> <xConcatOp> ;
+ */
+ public abstract void reduceByProduction1315(Parser parser);
+
+ /**
+ * Reduce by <xLevel4Expr@42> ::= <xLevel3Expr> <xRelOp> ;
+ */
+ public abstract void reduceByProduction1316(Parser parser);
+
+ /**
+ * Reduce by <xAndOperand@43> ::= <xNotOp> ;
+ */
+ public abstract void reduceByProduction1317(Parser parser);
+
+ /**
+ * Reduce by <xOrOperand@44> ::= <xOrOperand> <xAndOp> ;
+ */
+ public abstract void reduceByProduction1318(Parser parser);
+
+ /**
+ * Reduce by <xEquivOperand@45> ::= <xEquivOperand> <xOrOp> ;
+ */
+ public abstract void reduceByProduction1319(Parser parser);
+
+ /**
+ * Reduce by <xLevel5Expr@46> ::= <xLevel5Expr> <xEquivOp> ;
+ */
+ public abstract void reduceByProduction1320(Parser parser);
+
+ /**
+ * Reduce by <xAssignmentStmt@47> ::= T_LPAREN <xSectionSubscriptList> T_RPAREN ;
+ */
+ public abstract void reduceByProduction1321(Parser parser);
+
+ /**
+ * Reduce by <xAssignmentStmt@47> ::= T_LPAREN <xSectionSubscriptList> T_RPAREN <xAssignmentStmt@48> ;
+ */
+ public abstract void reduceByProduction1322(Parser parser);
+
+ /**
+ * Reduce by <xAssignmentStmt@48> ::= <xSubstringRange> ;
+ */
+ public abstract void reduceByProduction1323(Parser parser);
+
+ /**
+ * Reduce by <xAssignmentStmt@49> ::= T_LPAREN <xSectionSubscriptList> T_RPAREN ;
+ */
+ public abstract void reduceByProduction1324(Parser parser);
+
+ /**
+ * Reduce by <xAssignmentStmt@49> ::= T_LPAREN <xSectionSubscriptList> T_RPAREN <xAssignmentStmt@50> ;
+ */
+ public abstract void reduceByProduction1325(Parser parser);
+
+ /**
+ * Reduce by <xAssignmentStmt@50> ::= <xSubstringRange> ;
+ */
+ public abstract void reduceByProduction1326(Parser parser);
+
+ /**
+ * Reduce by <xAssignmentStmt@51> ::= T_LPAREN <xSectionSubscriptList> T_RPAREN ;
+ */
+ public abstract void reduceByProduction1327(Parser parser);
+
+ /**
+ * Reduce by <xAssignmentStmt@51> ::= T_LPAREN <xSectionSubscriptList> T_RPAREN <xAssignmentStmt@52> ;
+ */
+ public abstract void reduceByProduction1328(Parser parser);
+
+ /**
+ * Reduce by <xAssignmentStmt@52> ::= <xSubstringRange> ;
+ */
+ public abstract void reduceByProduction1329(Parser parser);
+
+ /**
+ * Reduce by <xMaskedElsewhereStmt@53> ::= <xEndName> ;
+ */
+ public abstract void reduceByProduction1330(Parser parser);
+
+ /**
+ * Reduce by <xElsewhereStmt@54> ::= <xEndName> ;
+ */
+ public abstract void reduceByProduction1331(Parser parser);
+
+ /**
+ * Reduce by <xEndWhereStmt@55> ::= <xEndName> ;
+ */
+ public abstract void reduceByProduction1332(Parser parser);
+
+ /**
+ * Reduce by <xEndWhereStmt@56> ::= <xEndName> ;
+ */
+ public abstract void reduceByProduction1333(Parser parser);
+
+ /**
+ * Reduce by <xEndForallStmt@57> ::= <xEndName> ;
+ */
+ public abstract void reduceByProduction1334(Parser parser);
+
+ /**
+ * Reduce by <xEndForallStmt@58> ::= <xEndName> ;
+ */
+ public abstract void reduceByProduction1335(Parser parser);
+
+ /**
+ * Reduce by <xEndIfStmt@59> ::= <xEndName> ;
+ */
+ public abstract void reduceByProduction1336(Parser parser);
+
+ /**
+ * Reduce by <xEndIfStmt@60> ::= <xEndName> ;
+ */
+ public abstract void reduceByProduction1337(Parser parser);
+
+ /**
+ * Reduce by <xEndSelectStmt@61> ::= <xEndName> ;
+ */
+ public abstract void reduceByProduction1338(Parser parser);
+
+ /**
+ * Reduce by <xEndSelectStmt@62> ::= <xEndName> ;
+ */
+ public abstract void reduceByProduction1339(Parser parser);
+
+ /**
+ * Reduce by <xEndDoStmt@63> ::= <xEndName> ;
+ */
+ public abstract void reduceByProduction1340(Parser parser);
+
+ /**
+ * Reduce by <xEndDoStmt@64> ::= <xEndName> ;
+ */
+ public abstract void reduceByProduction1341(Parser parser);
+
+ /**
+ * Reduce by <xCycleStmt@65> ::= <xName> ;
+ */
+ public abstract void reduceByProduction1342(Parser parser);
+
+ /**
+ * Reduce by <xExitStmt@66> ::= <xName> ;
+ */
+ public abstract void reduceByProduction1343(Parser parser);
+
+ /**
+ * Reduce by <xFormatStmt@67> ::= <xFmtSpec> ;
+ */
+ public abstract void reduceByProduction1344(Parser parser);
+
+ /**
+ * Reduce by <xEndProgramStmt@68> ::= <xEndName> ;
+ */
+ public abstract void reduceByProduction1345(Parser parser);
+
+ /**
+ * Reduce by <xEndProgramStmt@69> ::= <xEndName> ;
+ */
+ public abstract void reduceByProduction1346(Parser parser);
+
+ /**
+ * Reduce by <xEndModuleStmt@70> ::= <xEndName> ;
+ */
+ public abstract void reduceByProduction1347(Parser parser);
+
+ /**
+ * Reduce by <xEndModuleStmt@71> ::= <xEndName> ;
+ */
+ public abstract void reduceByProduction1348(Parser parser);
+
+ /**
+ * Reduce by <xUseStmt@72> ::= <xOnlyList> ;
+ */
+ public abstract void reduceByProduction1349(Parser parser);
+
+ /**
+ * Reduce by <xEndBlockDataStmt@73> ::= <xEndName> ;
+ */
+ public abstract void reduceByProduction1350(Parser parser);
+
+ /**
+ * Reduce by <xEndBlockDataStmt@74> ::= <xEndName> ;
+ */
+ public abstract void reduceByProduction1351(Parser parser);
+
+ /**
+ * Reduce by <xEndBlockDataStmt@75> ::= <xEndName> ;
+ */
+ public abstract void reduceByProduction1352(Parser parser);
+
+ /**
+ * Reduce by <xEndBlockDataStmt@76> ::= <xEndName> ;
+ */
+ public abstract void reduceByProduction1353(Parser parser);
+
+ /**
+ * Reduce by <xEndInterfaceStmt@77> ::= <xEndName> ;
+ */
+ public abstract void reduceByProduction1354(Parser parser);
+
+ /**
+ * Reduce by <xEndInterfaceStmt@78> ::= <xEndName> ;
+ */
+ public abstract void reduceByProduction1355(Parser parser);
+
+ /**
+ * Reduce by <xFunctionStmt@79> ::= T_RESULT T_LPAREN <xName> T_RPAREN ;
+ */
+ public abstract void reduceByProduction1356(Parser parser);
+
+ /**
+ * Reduce by <xEndFunctionStmt@80> ::= <xEndName> ;
+ */
+ public abstract void reduceByProduction1357(Parser parser);
+
+ /**
+ * Reduce by <xEndFunctionStmt@81> ::= <xEndName> ;
+ */
+ public abstract void reduceByProduction1358(Parser parser);
+
+ /**
+ * Reduce by <xSubroutineStmt@82> ::= T_LPAREN T_RPAREN ;
+ */
+ public abstract void reduceByProduction1359(Parser parser);
+
+ /**
+ * Reduce by <xSubroutineStmt@82> ::= T_LPAREN <xSubroutinePars> T_RPAREN ;
+ */
+ public abstract void reduceByProduction1360(Parser parser);
+
+ /**
+ * Reduce by <xEndSubroutineStmt@83> ::= <xEndName> ;
+ */
+ public abstract void reduceByProduction1361(Parser parser);
+
+ /**
+ * Reduce by <xEndSubroutineStmt@84> ::= <xEndName> ;
+ */
+ public abstract void reduceByProduction1362(Parser parser);
+
+ /**
+ * Reduce by <xEntryStmt@85> ::= T_LPAREN T_RPAREN ;
+ */
+ public abstract void reduceByProduction1363(Parser parser);
+
+ /**
+ * Reduce by <xEntryStmt@85> ::= T_LPAREN <xSubroutinePars> T_RPAREN ;
+ */
+ public abstract void reduceByProduction1364(Parser parser);
+}
diff --git a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95parser/BuildModelParserAction.java b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/BuildModelParserAction.java
index 5c0f0525..720c6c97 100644
--- a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95parser/BuildModelParserAction.java
+++ b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/BuildModelParserAction.java
@@ -1,15 +1,15 @@
// Generated by Rex version 1.0 alpha 5
-package org.eclipse.photran.internal.core.f95parser;
+package org.eclipse.photran.internal.core.f95modelparser;
+import java.util.HashMap;
+import java.util.Iterator;
import java.util.LinkedList;
-import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-import java.util.HashMap;
-import java.util.Iterator;
-import org.eclipse.photran.internal.core.model.FortranElement;
+
import org.eclipse.cdt.core.model.CModelException;
+import org.eclipse.photran.internal.core.model.FortranElement;
/**
@@ -128,6 +128,14 @@ private class M
}
/**
+ * This method is called when a syntax error is found and could not be recovered from
+ */
+ public void syntaxError() throws Exception
+ {
+ ;
+ }
+
+ /**
* This method is called when the parser is about to reduce by
* <xExecutableProgram> ::= <xProgramUnit> ;
*/
diff --git a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/ErrorRecovery.java b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/ErrorRecovery.java
new file mode 100644
index 00000000..16603f35
--- /dev/null
+++ b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/ErrorRecovery.java
@@ -0,0 +1,257 @@
+// Generated by Rex version 1.0 alpha 5
+
+package org.eclipse.photran.internal.core.f95modelparser;
+
+import java.util.LinkedList;
+
+/**
+ * The methods in this class use the error productions specified
+ * in the grammar to attempt to recover from syntax errors.
+ */
+public class ErrorRecovery
+{
+
+ private abstract class AbstractErrorProduction
+ {
+ public abstract boolean applies(Parser parser);
+
+ public abstract boolean attemptRecovery(Parser parser, LinkedList recoveryList) throws Exception;
+ }
+ protected Parser parser;
+ protected ErrorRecovery.AbstractErrorProduction[] errorProductions;
+ protected LinkedList recoveryList;
+
+ public ErrorRecovery(Parser parserToRecover)
+ {
+ parser = parserToRecover;
+ errorProductions = new ErrorRecovery.AbstractErrorProduction[6];
+ errorProductions[0] = new ErrorRecovery.ErrorProduction0();
+ errorProductions[1] = new ErrorRecovery.ErrorProduction1();
+ errorProductions[2] = new ErrorRecovery.ErrorProduction2();
+ errorProductions[3] = new ErrorRecovery.ErrorProduction3();
+ errorProductions[4] = new ErrorRecovery.ErrorProduction4();
+ errorProductions[5] = new ErrorRecovery.ErrorProduction5();
+ }
+
+ boolean recover() throws Exception
+ {
+ recoveryList = new LinkedList();
+ while (!parser.getSymbolStack().isEmpty())
+ {
+ int errorProductionToUse = getRecoveryProductionForCurrentState();
+ if (errorProductionToUse > -1) return errorProductions[errorProductionToUse].attemptRecovery(parser, recoveryList);
+
+ // No error production applied, so pop the stacks and try again
+
+ // Determine how many values on the parser's valueStack correspond to
+ // the symbol on top of its symbolStack, and pop them off the valueStack, saving them
+ // in the recoveryList
+ TerminalOrNonterminal symOnTop = (TerminalOrNonterminal)parser.getSymbolStack().get(parser.getSymbolStack().size()-1);
+ int symsToPop = symOnTop.getNumberOfSymbolsOnValueStack();
+ for (int i = 0; i < symsToPop; i++)
+ {
+ recoveryList.add(0, (Object)parser.getValueStack().get(parser.getValueStack().size()-1));
+ parser.getValueStack().remove(parser.getValueStack().size() - 1);
+ }
+
+ // Only one symbol needs to be popped from the state and symbol stacks
+ parser.getStateStack().remove(parser.getStateStack().size() - 1);
+ parser.getSymbolStack().remove(parser.getSymbolStack().size() - 1);
+ }
+ return false;
+ }
+
+ protected int getRecoveryProductionForCurrentState()
+ {
+ // Try each of the 6 error productions
+ for (int i = 0; i < 6; i++)
+ if (errorProductions[i].applies(parser)) return i;
+ return -1;
+ }
+
+ /**
+ * <xFormatStmt> ::= T_FORMAT %error T_EOS ;
+ */
+ private class ErrorProduction0 extends AbstractErrorProduction
+ {
+ public boolean applies(Parser parser)
+ {
+ return parser.getSymbolStack().size() >= 1 && (TerminalOrNonterminal)parser.getSymbolStack().get(parser.getSymbolStack().size()-1) == Terminal.TFormatTerminal.getInstance();
+ }
+
+ public boolean attemptRecovery(Parser parser, LinkedList recoveryList) throws Exception
+ {
+ // Discard tokens until we reach a token which successfully terminates this error production
+ while (parser.getLookaheadToken().getTerminal() != Terminal.T_EOS)
+ {
+ if (parser.getLookaheadToken().getTerminal() == Terminal.END_OF_INPUT) return false;
+ recoveryList.add(parser.getLookaheadToken());
+ parser.readNextToken();
+ }
+
+ // Now push a %stack token and associate it with the recoveryList and no particular state
+ parser.getSymbolStack().add(Terminal.ERROR);
+ parser.getValueStack().add(recoveryList);
+ parser.getStateStack().add(new Integer(-999));
+
+ // Finally, shift the resume token and go to a state where the parser will reduce by this error production
+ parser.shiftAndGoToState(1200);
+ return true;
+ }
+ }
+
+ /**
+ * <xFormatStmt> ::= <xLblDef> T_FORMAT %error T_EOS ;
+ */
+ private class ErrorProduction1 extends AbstractErrorProduction
+ {
+ public boolean applies(Parser parser)
+ {
+ return parser.getSymbolStack().size() >= 2 && (TerminalOrNonterminal)parser.getSymbolStack().get(parser.getSymbolStack().size()-1) == Terminal.TFormatTerminal.getInstance() && (TerminalOrNonterminal)parser.getSymbolStack().get(parser.getSymbolStack().size()-2) == Nonterminal.XlbldefNonterminal.getInstance();
+ }
+
+ public boolean attemptRecovery(Parser parser, LinkedList recoveryList) throws Exception
+ {
+ // Discard tokens until we reach a token which successfully terminates this error production
+ while (parser.getLookaheadToken().getTerminal() != Terminal.T_EOS)
+ {
+ if (parser.getLookaheadToken().getTerminal() == Terminal.END_OF_INPUT) return false;
+ recoveryList.add(parser.getLookaheadToken());
+ parser.readNextToken();
+ }
+
+ // Now push a %stack token and associate it with the recoveryList and no particular state
+ parser.getSymbolStack().add(Terminal.ERROR);
+ parser.getValueStack().add(recoveryList);
+ parser.getStateStack().add(new Integer(-999));
+
+ // Finally, shift the resume token and go to a state where the parser will reduce by this error production
+ parser.shiftAndGoToState(1586);
+ return true;
+ }
+ }
+
+ /**
+ * <xFunctionStmt> ::= <xFunctionPrefix> <xFunctionName> %error T_EOS ;
+ */
+ private class ErrorProduction2 extends AbstractErrorProduction
+ {
+ public boolean applies(Parser parser)
+ {
+ return parser.getSymbolStack().size() >= 2 && (TerminalOrNonterminal)parser.getSymbolStack().get(parser.getSymbolStack().size()-1) == Nonterminal.XfunctionnameNonterminal.getInstance() && (TerminalOrNonterminal)parser.getSymbolStack().get(parser.getSymbolStack().size()-2) == Nonterminal.XfunctionprefixNonterminal.getInstance();
+ }
+
+ public boolean attemptRecovery(Parser parser, LinkedList recoveryList) throws Exception
+ {
+ // Discard tokens until we reach a token which successfully terminates this error production
+ while (parser.getLookaheadToken().getTerminal() != Terminal.T_EOS)
+ {
+ if (parser.getLookaheadToken().getTerminal() == Terminal.END_OF_INPUT) return false;
+ recoveryList.add(parser.getLookaheadToken());
+ parser.readNextToken();
+ }
+
+ // Now push a %stack token and associate it with the recoveryList and no particular state
+ parser.getSymbolStack().add(Terminal.ERROR);
+ parser.getValueStack().add(recoveryList);
+ parser.getStateStack().add(new Integer(-999));
+
+ // Finally, shift the resume token and go to a state where the parser will reduce by this error production
+ parser.shiftAndGoToState(1488);
+ return true;
+ }
+ }
+
+ /**
+ * <xFunctionStmt> ::= <xLblDef> <xFunctionPrefix> <xFunctionName> %error T_EOS ;
+ */
+ private class ErrorProduction3 extends AbstractErrorProduction
+ {
+ public boolean applies(Parser parser)
+ {
+ return parser.getSymbolStack().size() >= 3 && (TerminalOrNonterminal)parser.getSymbolStack().get(parser.getSymbolStack().size()-1) == Nonterminal.XfunctionnameNonterminal.getInstance() && (TerminalOrNonterminal)parser.getSymbolStack().get(parser.getSymbolStack().size()-2) == Nonterminal.XfunctionprefixNonterminal.getInstance() && (TerminalOrNonterminal)parser.getSymbolStack().get(parser.getSymbolStack().size()-3) == Nonterminal.XlbldefNonterminal.getInstance();
+ }
+
+ public boolean attemptRecovery(Parser parser, LinkedList recoveryList) throws Exception
+ {
+ // Discard tokens until we reach a token which successfully terminates this error production
+ while (parser.getLookaheadToken().getTerminal() != Terminal.T_EOS)
+ {
+ if (parser.getLookaheadToken().getTerminal() == Terminal.END_OF_INPUT) return false;
+ recoveryList.add(parser.getLookaheadToken());
+ parser.readNextToken();
+ }
+
+ // Now push a %stack token and associate it with the recoveryList and no particular state
+ parser.getSymbolStack().add(Terminal.ERROR);
+ parser.getValueStack().add(recoveryList);
+ parser.getStateStack().add(new Integer(-999));
+
+ // Finally, shift the resume token and go to a state where the parser will reduce by this error production
+ parser.shiftAndGoToState(2062);
+ return true;
+ }
+ }
+
+ /**
+ * <xSubroutineStmt> ::= <xSubroutinePrefix> <xSubroutineName> %error T_EOS ;
+ */
+ private class ErrorProduction4 extends AbstractErrorProduction
+ {
+ public boolean applies(Parser parser)
+ {
+ return parser.getSymbolStack().size() >= 2 && (TerminalOrNonterminal)parser.getSymbolStack().get(parser.getSymbolStack().size()-1) == Nonterminal.XsubroutinenameNonterminal.getInstance() && (TerminalOrNonterminal)parser.getSymbolStack().get(parser.getSymbolStack().size()-2) == Nonterminal.XsubroutineprefixNonterminal.getInstance();
+ }
+
+ public boolean attemptRecovery(Parser parser, LinkedList recoveryList) throws Exception
+ {
+ // Discard tokens until we reach a token which successfully terminates this error production
+ while (parser.getLookaheadToken().getTerminal() != Terminal.T_EOS)
+ {
+ if (parser.getLookaheadToken().getTerminal() == Terminal.END_OF_INPUT) return false;
+ recoveryList.add(parser.getLookaheadToken());
+ parser.readNextToken();
+ }
+
+ // Now push a %stack token and associate it with the recoveryList and no particular state
+ parser.getSymbolStack().add(Terminal.ERROR);
+ parser.getValueStack().add(recoveryList);
+ parser.getStateStack().add(new Integer(-999));
+
+ // Finally, shift the resume token and go to a state where the parser will reduce by this error production
+ parser.shiftAndGoToState(1434);
+ return true;
+ }
+ }
+
+ /**
+ * <xSubroutineStmt> ::= <xLblDef> <xSubroutinePrefix> <xSubroutineName> %error T_EOS ;
+ */
+ private class ErrorProduction5 extends AbstractErrorProduction
+ {
+ public boolean applies(Parser parser)
+ {
+ return parser.getSymbolStack().size() >= 3 && (TerminalOrNonterminal)parser.getSymbolStack().get(parser.getSymbolStack().size()-1) == Nonterminal.XsubroutinenameNonterminal.getInstance() && (TerminalOrNonterminal)parser.getSymbolStack().get(parser.getSymbolStack().size()-2) == Nonterminal.XsubroutineprefixNonterminal.getInstance() && (TerminalOrNonterminal)parser.getSymbolStack().get(parser.getSymbolStack().size()-3) == Nonterminal.XlbldefNonterminal.getInstance();
+ }
+
+ public boolean attemptRecovery(Parser parser, LinkedList recoveryList) throws Exception
+ {
+ // Discard tokens until we reach a token which successfully terminates this error production
+ while (parser.getLookaheadToken().getTerminal() != Terminal.T_EOS)
+ {
+ if (parser.getLookaheadToken().getTerminal() == Terminal.END_OF_INPUT) return false;
+ recoveryList.add(parser.getLookaheadToken());
+ parser.readNextToken();
+ }
+
+ // Now push a %stack token and associate it with the recoveryList and no particular state
+ parser.getSymbolStack().add(Terminal.ERROR);
+ parser.getValueStack().add(recoveryList);
+ parser.getStateStack().add(new Integer(-999));
+
+ // Finally, shift the resume token and go to a state where the parser will reduce by this error production
+ parser.shiftAndGoToState(2060);
+ return true;
+ }
+ }
+}
diff --git a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FixedFormLexerPhase1.flex b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FixedFormLexerPhase1.flex
new file mode 100644
index 00000000..fb318433
--- /dev/null
+++ b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FixedFormLexerPhase1.flex
@@ -0,0 +1,436 @@
+/*
+ * First phase of fixed form lexical analysis for Fortran 95 parser
+ *
+ * FixedFormLexerPhase1 acts as a "token stream" feeding FreeFormLexerPhase2
+ * and is feeded by FixedFormLexerPrepass
+ * (See FixedFormLexerPrepass and FixedFormLexerPhase2.java and f95t.bnf)
+ *
+ * @author Jeffrey Overbey and Dirk Rossow
+ *
+ * @see FixedFormLexerPrepass
+ * @see FixedFormLexerPhase2
+ * @see Parser
+ *
+ * NOTE: Get rid of (space out) "yybegin(YYSTANDARD);" in the lines
+ * for any tokens that can appear in an IMPLICIT statement
+ * (It was also omitted in the lines for T_SLASH so that
+ * INTERFACE OPERATOR (/) would tokenize correctly.)
+ *
+ * Changes:
+ * 29.06.2005 Jeff Overbey: Added Fortran INCLUDE and CPP directives
+ */
+
+package org.eclipse.photran.internal.core.f95parser;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+import java.util.LinkedList;
+
+%%
+
+%class FixedFormLexerPhase1
+%throws Exception
+%char
+%line
+%column
+%ignorecase
+%8bit
+%implements ILexer
+%type Token
+
+%{
+ private FixedFormLexerPrepass prepass;
+
+ public FixedFormLexerPhase1(InputStream in, FixedFormLexerPrepass _prepass) {
+ this(in);
+ prepass=_prepass;
+ }
+
+ //unset start of line state
+ private void unsetSOL() {
+ if (yystate()==YYINITIAL) yybegin(YYSTANDARD);
+ }
+
+ public int getLine() {
+ return prepass.getLine(yychar);
+ }
+ public int getCol() {
+ return prepass.getColumn(yychar);
+ }
+
+ private Token token(Terminal terminal)
+ {
+ Token t = new Token();
+ t.setTerminal(terminal);
+ t.setFilename(this.filename);
+ t.setOffset(prepass.getOffset(yychar));
+ t.setLength(prepass.getOffset(yychar+yylength()-1)-prepass.getOffset(yychar)+1);
+ t.setText(terminal == Terminal.T_SCON || terminal == Terminal.T_HCON
+ ? stringBuffer.toString()
+ : yytext());
+ t.setStartLine(prepass.getLine(yychar)+1);
+ t.setStartCol(prepass.getColumn(yychar)+1);
+ t.setEndLine(prepass.getLine(yychar+yylength()-1)+1);
+ t.setEndCol(prepass.getColumn(yychar+yylength()-1)+1);
+
+ return t;
+ }
+
+ private StringBuffer stringBuffer = null;
+ private int hollerithLength = 0;
+
+ private boolean wantEos = false;
+
+ private String filename = "<stdin>";
+ public void setFilename(String fn)
+ {
+ filename = fn;
+ }
+
+ private List/*<NonTreeToken>*/ nonTreeTokens = new LinkedList();
+ public List/*<NonTreeToken>*/ getNonTreeTokens()
+ {
+ return nonTreeTokens;
+ }
+
+ private void storeNonTreeToken()
+ {
+ nonTreeTokens.add(new NonTreeToken(this.filename,
+ prepass.getOffset(yychar), // int offset
+ prepass.getLine(yychar)+1, // int row
+ prepass.getColumn(yychar)+1, // int col
+ yytext()));
+ }
+%}
+
+LineTerminator = \r\n|\n|\r
+
+
+StarredType = ("*"[0-9]+)?
+
+Dig = [0-9]+
+EExp = ("E"|"e")("+"|"-")?{Dig}
+DExp = ("D"|"d")("+"|"-")?{Dig}
+Sig1 = ({Dig} "." [0-9]+ | "." {Dig})
+Sig2 = {Dig} "."
+Sig = {Sig1} | {Sig2}
+DdotD = {Dig} "." {Dig}
+Efw = [Ee] {Dig}
+Range = [a-zA-Z](-[a-zA-Z])?
+
+Bcon = ( B ' [0-1]+ ' | B \" [0-1]+ \" )
+Ocon = ( O ' [0-7]+ ' | O \" [0-7]+ \" )
+Zcon = ( Z ' [0-9A-Fa-f]+ ' | Z \" [0-9A-Fa-f]+ \" )
+Hcon = {Dig}(H|h)
+
+Dcon1 = {Dig}{DExp} | {Sig}{DExp} | {Sig1}
+Dcon2 = {Sig2}
+Fcon = [IiBbOoZzFfDd] {DdotD} | (E [NnSs]? | e [NnSs]? | G | g) {DdotD} {Efw}?
+Icon = ( {Dig} | {Dig} ("E"|"e") {Dig} "." {Dig} )
+Pcon = ("+"|"-")? {Dig} (P|p)
+Rcon1 = {Dig}{EExp} | {Sig}{EExp} | {Sig1}
+Rcon2 = {Sig2}
+Xcon = {Dig} (X|x)
+Xdop = \. [A-Za-z]+ \.
+Ident = [A-Za-z][A-Za-z0-9_]*
+xImpl = "(" {Range} ("," {Range})* ")"
+xImplLkahead = (","|";"|{LineTerminator}|"!")
+
+NumDotLkahead = [^A-Za-z]
+
+CppIfdef="#ifdef"[^\r\n]*{LineTerminator}
+CppIfndef="#ifndef"[^\r\n]*{LineTerminator}
+CppIf="#if"[^\r\n]*{LineTerminator}
+CppElse="#else"[^\r\n]*{LineTerminator}
+CppElif="#elif"[^\r\n]*{LineTerminator}
+CppInclude="#include"[^\r\n]*{LineTerminator}
+CppDefine="#define"[^\r\n]*{LineTerminator}
+CppUndef="#undef"[^\r\n]*{LineTerminator}
+CppLine="#line"[^\r\n]*{LineTerminator}
+CppError="#error"[^\r\n]*{LineTerminator}
+CppPragma="#pragma"[^\r\n]*{LineTerminator}
+CppDirective={CppIfdef}|{CppIfndef}|{CppIf}|{CppElse}|{CppElif}|{CppInclude}|{CppDefine}|{CppUndef}|{CppLine}|{CppError}|{CppPragma}
+
+FortranInclude="INCLUDE"[^\r\n]*{LineTerminator}
+
+%state IMPLICIT
+%state QUOTED
+%state DBLQUOTED
+%state HOLLERITH
+%state YYSTANDARD
+%state OPERATORorFORMAT
+%state IDENT
+
+%%
+
+/* Lexical rules */
+
+
+/* ignore some tokens on start of line*/
+<YYSTANDARD,IMPLICIT,OPERATORorFORMAT> {
+{Hcon} { stringBuffer = new StringBuffer();
+ String text = yytext();
+ stringBuffer.append(text);
+ hollerithLength=Integer.parseInt(text.substring(0,text.length()-1));
+ if (hollerithLength==0) throw new Exception("Lexer Error (line " + (getLine()+1) + ", col " + (getCol()+1) + "): Invalid length of hollerith literal: 0");
+ yybegin(HOLLERITH);
+ }
+{Dcon1} { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_DCON); }
+{Dcon2}/{NumDotLkahead} { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_DCON); }
+{Fcon} { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_FCON); }
+{Pcon} { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PCON); }
+{Rcon1} { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_RCON); }
+{Rcon2}/{NumDotLkahead} { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_RCON); }
+{Xcon} { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_XCON); }
+}
+
+<IDENT> {
+{Ident} { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_IDENT); }
+}
+
+
+<YYSTANDARD,YYINITIAL,IMPLICIT,OPERATORorFORMAT> {
+"ACCESS=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ACCESSEQ); }
+"ACTION=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ACTIONEQ); }
+"ADVANCE=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ADVANCEEQ); }
+"ALLOCATABLE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ALLOCATABLE); }
+"ALLOCATE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ALLOCATE); }
+"ASSIGNMENT" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ASSIGNMENT); }
+"BACKSPACE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_BACKSPACE); }
+"BLANK=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_BLANKEQ); }
+"BLOCK" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_BLOCK); }
+"BLOCKDATA" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_BLOCKDATA); }
+"CALL" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_CALL); }
+"CASE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_CASE); }
+"CHARACTER"{StarredType} { wantEos = true; unsetSOL(); ; return token(Terminal.T_CHARACTER); }
+"CLOSE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_CLOSE); }
+"COMMON" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_COMMON); }
+"COMPLEX"{StarredType} { wantEos = true; unsetSOL(); ; return token(Terminal.T_COMPLEX); }
+"CONTAINS" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_CONTAINS); }
+"CONTINUE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_CONTINUE); }
+"CYCLE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_CYCLE); }
+"DATA" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_DATA); }
+"DEALLOCATE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_DEALLOCATE); }
+"DEFAULT" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_DEFAULT); }
+"DELIM=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_DELIMEQ); }
+"DIMENSION" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_DIMENSION); }
+"DIRECT=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_DIRECTEQ); }
+"DO" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_DO); }
+"DOUBLE"{StarredType} { wantEos = true; unsetSOL(); ; return token(Terminal.T_DOUBLE); }
+"DOUBLEPRECISION"{StarredType} { wantEos = true; unsetSOL(); ; return token(Terminal.T_DOUBLEPRECISION); }
+"ELEMENTAL" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ELEMENTAL); }
+"ELSE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ELSE); }
+"ELSEIF" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ELSEIF); }
+"ELSEWHERE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ELSEWHERE); }
+"END" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_END); }
+"ENDBLOCK" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDBLOCK); }
+"ENDBLOCKDATA" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDBLOCKDATA); }
+"ENDDO" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDDO); }
+"END=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDEQ); }
+"ENDFILE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDFILE); }
+"ENDFORALL" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDFORALL); }
+"ENDFUNCTION" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDFUNCTION); }
+"ENDIF" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDIF); }
+"ENDINTERFACE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDINTERFACE); }
+"ENDMODULE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDMODULE); }
+"ENDPROGRAM" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDPROGRAM); }
+"ENDSELECT" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDSELECT); }
+"ENDSUBROUTINE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDSUBROUTINE); }
+"ENDTYPE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDTYPE); }
+"ENDWHERE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDWHERE); }
+"ENTRY" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENTRY); }
+"EQUIVALENCE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_EQUIVALENCE); }
+"ERR=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ERREQ); }
+"EXIST=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_EXISTEQ); }
+"EXIT" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_EXIT); }
+"EXTERNAL" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_EXTERNAL); }
+"FILE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_FILE); }
+"FILE=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_FILEEQ); }
+"FMT=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_FMTEQ); }
+"FORALL" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_FORALL); }
+"FORMAT" { wantEos = true; yybegin(OPERATORorFORMAT); return token(Terminal.T_FORMAT); }
+"FORMATTED=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_FORMATTEDEQ); }
+"FORM=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_FORMEQ); }
+"FUNCTION" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_FUNCTION); }
+"GO" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_GO); }
+"GOTO" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_GOTO); }
+"IF" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_IF); }
+"IMPLICIT" { wantEos = true; yybegin(IMPLICIT); return token(Terminal.T_IMPLICIT); }
+"IN" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_IN); }
+"INOUT" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_INOUT); }
+"INQUIRE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_INQUIRE); }
+"INTEGER"{StarredType} { wantEos = true; unsetSOL(); return token(Terminal.T_INTEGER); }
+"INTENT" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_INTENT); }
+"INTERFACE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_INTERFACE); }
+"INTRINSIC" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_INTRINSIC); }
+"IOLENGTH=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_IOLENGTHEQ); }
+"IOSTAT=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_IOSTATEQ); }
+"KIND=" { wantEos = true; unsetSOL(); return token(Terminal.T_KINDEQ); }
+"LEN=" { wantEos = true; unsetSOL(); return token(Terminal.T_LENEQ); }
+"LOGICAL"{StarredType} { wantEos = true; unsetSOL(); return token(Terminal.T_LOGICAL); }
+"MODULE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_MODULE); }
+"NAMED=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_NAMEDEQ); }
+"NAME=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_NAMEEQ); }
+"NAMELIST" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_NAMELIST); }
+"NEXTREC=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_NEXTRECEQ); }
+"NML=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_NMLEQ); }
+"NONE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_NONE); }
+"NULL" { wantEos = true; unsetSOL(); return token(Terminal.T_NULL); }
+"NULLIFY" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_NULLIFY); }
+"NUMBER=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_NUMBEREQ); }
+"ONLY" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ONLY); }
+"OPEN" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_OPEN); }
+"OPENED=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_OPENEDEQ); }
+"OPERATOR" { wantEos = true; yybegin(OPERATORorFORMAT); return token(Terminal.T_OPERATOR); }
+"OPTIONAL" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_OPTIONAL); }
+"OUT" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_OUT); }
+"PAD=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PADEQ); }
+"PARAMETER" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PARAMETER); }
+"PAUSE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PAUSE); }
+"POINTER" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_POINTER); }
+"POSITION=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_POSITIONEQ); }
+"PRECISION" { wantEos = true; unsetSOL(); return token(Terminal.T_PRECISION); }
+"PRINT" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PRINT); }
+"PRIVATE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PRIVATE); }
+"PROCEDURE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PROCEDURE); }
+"PROGRAM" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PROGRAM); }
+"PUBLIC" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PUBLIC); }
+"PURE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PURE); }
+"READ" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_READ); }
+"READ=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_READEQ); }
+"READWRITE=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_READWRITEEQ); }
+"REAL"{StarredType} { wantEos = true; unsetSOL(); return token(Terminal.T_REAL); }
+"REC=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_RECEQ); }
+"RECL=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_RECLEQ); }
+"RECURSIVE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_RECURSIVE); }
+"RESULT" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_RESULT); }
+"RETURN" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_RETURN); }
+"REWIND" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_REWIND); }
+"SAVE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_SAVE); }
+"SELECT" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_SELECT); }
+"SELECTCASE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_SELECTCASE); }
+"SEQUENCE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_SEQUENCE); }
+"SEQUENTIAL=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_SEQUENTIALEQ); }
+"SIZE=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_SIZEEQ); }
+"STAT=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_STATEQ); }
+"STATUS=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_STATUSEQ); }
+"STOP" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_STOP); }
+"SUBROUTINE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_SUBROUTINE); }
+"TARGET" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_TARGET); }
+"THEN" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_THEN); }
+"TO" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_TO); }
+".TRUE." { wantEos = true; unsetSOL(); return token(Terminal.T_TRUE); }
+"TYPE" { wantEos = true; unsetSOL(); return token(Terminal.T_TYPE); }
+"UNFORMATTED=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_UNFORMATTEDEQ); }
+"UNIT=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_UNITEQ); }
+"USE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_USE); }
+"WHERE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_WHERE); }
+"WHILE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_WHILE); }
+"WRITE" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_WRITE); }
+"WRITE=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_WRITEEQ); }
+"*" { wantEos = true; unsetSOL(); return token(Terminal.T_ASTERISK); }
+".AND." { wantEos = true; unsetSOL(); return token(Terminal.T_AND); }
+":" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_COLON); }
+"," { wantEos = true; unsetSOL(); return token(Terminal.T_COMMA); }
+".EQ." { wantEos = true; unsetSOL(); return token(Terminal.T_EQ); }
+"==" { wantEos = true; unsetSOL(); return token(Terminal.T_EQEQ); }
+"=>" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_EQGREATERTHAN); }
+"=" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_EQUALS); }
+".EQV." { wantEos = true; unsetSOL(); return token(Terminal.T_EQV); }
+".FALSE." { wantEos = true; unsetSOL(); return token(Terminal.T_FALSE); }
+".GE." { wantEos = true; unsetSOL(); return token(Terminal.T_GE); }
+">" { wantEos = true; unsetSOL(); return token(Terminal.T_GREATERTHAN); }
+">=" { wantEos = true; unsetSOL(); return token(Terminal.T_GREATERTHANEQ); }
+".GT." { wantEos = true; unsetSOL(); return token(Terminal.T_GT); }
+".LE." { wantEos = true; unsetSOL(); return token(Terminal.T_LE); }
+"<" { wantEos = true; unsetSOL(); return token(Terminal.T_LESSTHAN); }
+"<=" { wantEos = true; unsetSOL(); return token(Terminal.T_LESSTHANEQ); }
+"(" { wantEos = true; unsetSOL(); return token(Terminal.T_LPAREN); }
+".LT." { wantEos = true; unsetSOL(); return token(Terminal.T_LT); }
+"-" { wantEos = true; unsetSOL(); return token(Terminal.T_MINUS); }
+".NE." { wantEos = true; unsetSOL(); return token(Terminal.T_NE); }
+".NEQV." { wantEos = true; unsetSOL(); return token(Terminal.T_NEQV); }
+".NOT." { wantEos = true; unsetSOL(); return token(Terminal.T_NOT); }
+".OR." { wantEos = true; unsetSOL(); return token(Terminal.T_OR); }
+"%" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PERCENT); }
+"+" { wantEos = true; unsetSOL(); return token(Terminal.T_PLUS); }
+"**" { wantEos = true; unsetSOL(); return token(Terminal.T_POW); }
+")" { wantEos = true; unsetSOL(); return token(Terminal.T_RPAREN); }
+"/" { wantEos = true; unsetSOL(); return token(Terminal.T_SLASH); }
+"/=" { wantEos = true; unsetSOL(); return token(Terminal.T_SLASHEQ); }
+"//" { wantEos = true; unsetSOL(); return token(Terminal.T_SLASHSLASH); }
+"_" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_UNDERSCORE); }
+{Bcon} { wantEos = true; unsetSOL(); return token(Terminal.T_BCON); }
+{Icon} { wantEos = true; unsetSOL(); return token(Terminal.T_ICON); }
+{Ocon} { wantEos = true; unsetSOL(); return token(Terminal.T_OCON); }
+{Xdop} { wantEos = true; unsetSOL(); return token(Terminal.T_XDOP); }
+{Zcon} { wantEos = true; unsetSOL(); return token(Terminal.T_ZCON); }
+"'" { stringBuffer = new StringBuffer();
+ stringBuffer.append('\'');
+ yybegin(QUOTED); }
+\" { stringBuffer = new StringBuffer();
+ stringBuffer.append('\"');
+ yybegin(DBLQUOTED);
+ }
+{CppDirective} { storeNonTreeToken(); }
+{FortranInclude} { storeNonTreeToken(); }
+{LineTerminator} { yybegin(YYINITIAL); boolean b = wantEos; wantEos = false; if (b) return token(Terminal.T_EOS); }
+<<EOF>> { wantEos = false; yybegin(YYSTANDARD); return token(Terminal.END_OF_INPUT); }
+. { yypushback(1);
+ int state=yystate();
+ yybegin(IDENT);
+ Token token = yylex();
+ yybegin(state);
+ return token;
+ }
+}
+
+
+<IMPLICIT> {
+{xImpl}/{xImplLkahead} { wantEos = true; return token(Terminal.T_XIMPL); }
+{xImpl}$ { wantEos = true; return token(Terminal.T_XIMPL); }
+}
+
+<YYSTANDARD,IMPLICIT> {
+"(/" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_LPARENSLASH); }
+"/)" { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_SLASHRPAREN); }
+}
+
+<QUOTED> {
+"''" { stringBuffer.append('\''); }
+"'" { stringBuffer.append('\'');
+ yybegin(YYSTANDARD);
+ wantEos = true;
+ return token(Terminal.T_SCON); }
+[^\n\r']+ { stringBuffer.append( yytext() ); }
+[\n\r] { throw new Exception("Lexer Error (line " + (getLine()+1) + ", col " + (getCol()+1) + "): String literal spans multiple lines without continuation"); }
+<<EOF>> { throw new Exception("Lexer Error (line " + (getLine()+1) + ", col " + (getCol()+1) + "): End of file encountered before string literal terminated"); }
+}
+
+<DBLQUOTED> {
+\"\" { stringBuffer.append('\"'); }
+\" { stringBuffer.append('\"');
+ yybegin(YYSTANDARD);
+ wantEos = true;
+ return token(Terminal.T_SCON); }
+[^\n\r\"]+ { stringBuffer.append( yytext() ); }
+[\n\r] { throw new Exception("Lexer Error (line " + (getLine()+1) + ", col " + (getCol()+1) + "): String literal spans multiple lines without continuation"); }
+<<EOF>> { throw new Exception("Lexer Error (line " + (getLine()+1) + ", col " + (getCol()+1) + "): End of file encountered before string literal terminated"); }
+}
+
+<HOLLERITH> {
+[^\n\r] { hollerithLength--;
+ stringBuffer.append(yytext());
+ if (hollerithLength==0) {
+ yybegin(YYSTANDARD);
+ wantEos = true;
+ return token(Terminal.T_HCON);
+ }
+ }
+[\n\r] { throw new Exception("Lexer Error (line " + (getLine()+1) + ", col " + (getCol()+1) + "): Hollerith literal spans multiple lines without continuation"); }
+<<EOF>> { throw new Exception("Lexer Error (line " + (getLine()+1) + ", col " + (getCol()+1) + "): End of file encountered before hollerith literal terminated"); }
+}
+
+
+/* Error */
+. { throw new Exception("Lexer Error (line " + (getLine()+1) + ", col " + (getCol()+1) + "): Unexpected character " + yytext()); }
diff --git a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FixedFormLexerPhase1.java b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FixedFormLexerPhase1.java
new file mode 100644
index 00000000..3e1311d6
--- /dev/null
+++ b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FixedFormLexerPhase1.java
@@ -0,0 +1,2008 @@
+/* The following code was generated by JFlex 1.4.1 on 10/6/05 7:34 PM */
+
+/*
+ * First phase of fixed form lexical analysis for Fortran 95 parser
+ *
+ * FixedFormLexerPhase1 acts as a "token stream" feeding FreeFormLexerPhase2
+ * and is feeded by FixedFormLexerPrepass
+ * (See FixedFormLexerPrepass and FixedFormLexerPhase2.java and f95t.bnf)
+ *
+ * @author Jeffrey Overbey and Dirk Rossow
+ *
+ * @see FixedFormLexerPrepass
+ * @see FixedFormLexerPhase2
+ * @see Parser
+ *
+ * NOTE: Get rid of (space out) "yybegin(YYSTANDARD);" in the lines
+ * for any tokens that can appear in an IMPLICIT statement
+ * (It was also omitted in the lines for T_SLASH so that
+ * INTERFACE OPERATOR (/) would tokenize correctly.)
+ *
+ * Changes:
+ * 29.06.2005 Jeff Overbey: Added Fortran INCLUDE and CPP directives
+ */
+
+package org.eclipse.photran.internal.core.f95modelparser;
+import java.io.InputStream;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.photran.internal.core.f95modelparser.Terminal;
+import org.eclipse.photran.internal.core.f95modelparser.Token;
+
+
+/**
+ * This class is a scanner generated by
+ * <a href="http://www.jflex.de/">JFlex</a> 1.4.1
+ * on 10/6/05 7:34 PM from the specification file
+ * <tt>FixedFormLexerPhase1.flex</tt>
+ */
+class FixedFormLexerPhase1 implements ILexer {
+
+ /** This character denotes the end of file */
+ public static final int YYEOF = -1;
+
+ /** initial size of the lookahead buffer */
+ private static final int ZZ_BUFFERSIZE = 16384;
+
+ /** lexical states */
+ public static final int OPERATORorFORMAT = 6;
+ public static final int DBLQUOTED = 3;
+ public static final int QUOTED = 2;
+ public static final int YYINITIAL = 0;
+ public static final int IDENT = 7;
+ public static final int HOLLERITH = 4;
+ public static final int YYSTANDARD = 5;
+ public static final int IMPLICIT = 1;
+
+ /**
+ * Translates characters to character classes
+ */
+ private static final char [] ZZ_CMAP = {
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30, 30, 1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 30, 14, 31, 0, 48, 0, 12, 27, 29, 3, 6, 28, 7, 9, 49,
+ 13, 13, 16, 16, 16, 16, 16, 16, 4, 4, 45, 30, 47, 38, 46, 0,
+ 0, 18, 11, 34, 8, 5, 21, 23, 19, 20, 10, 41, 33, 37, 32, 15,
+ 24, 44, 36, 22, 39, 35, 40, 43, 25, 42, 17, 0, 0, 0, 0, 26,
+ 0, 18, 11, 34, 8, 5, 21, 23, 19, 20, 10, 41, 33, 37, 32, 15,
+ 24, 44, 36, 22, 39, 35, 40, 43, 25, 42, 17, 0, 0, 0, 0, 0,
+ 0, 0, 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, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ };
+
+ /**
+ * Translates DFA states to action switch labels.
+ */
+ private static final int [] ZZ_ACTION = zzUnpackAction();
+
+ private static final String ZZ_ACTION_PACKED_0 =
+ "\10\0\1\1\2\2\1\3\1\4\1\1\1\5\1\6"+
+ "\3\1\1\7\1\10\10\1\1\11\1\12\1\13\1\14"+
+ "\7\1\1\15\3\1\1\16\1\17\1\20\1\21\1\22"+
+ "\1\4\1\1\1\5\1\6\10\1\1\12\1\22\1\23"+
+ "\1\24\1\25\1\23\1\26\1\27\1\30\1\12\1\31"+
+ "\1\32\1\33\7\0\1\34\33\0\1\35\1\36\12\0"+
+ "\1\37\32\0\1\40\1\41\1\42\6\0\1\43\1\44"+
+ "\1\45\1\46\3\0\1\47\1\50\1\51\5\0\1\52"+
+ "\1\0\1\53\1\54\1\55\1\56\3\0\1\57\14\0"+
+ "\1\60\25\0\1\61\73\0\1\62\17\0\1\63\1\0"+
+ "\1\52\1\0\1\52\10\0\1\64\10\0\1\65\4\0"+
+ "\1\66\1\67\5\0\1\70\2\0\1\71\1\0\1\72"+
+ "\2\0\1\73\1\74\1\75\2\0\1\76\1\77\1\0"+
+ "\1\100\3\0\1\101\1\102\2\0\1\103\1\104\17\0"+
+ "\1\105\1\0\1\106\2\0\1\107\2\0\1\110\1\0"+
+ "\1\111\2\0\1\112\3\0\1\113\10\0\2\114\3\0"+
+ "\1\115\1\0\1\116\1\0\1\117\1\120\4\0\1\121"+
+ "\1\122\5\0\1\123\1\124\3\0\1\125\4\0\1\126"+
+ "\1\127\4\0\1\63\2\130\1\0\2\131\1\4\2\0"+
+ "\1\132\1\0\1\133\12\0\1\134\12\0\1\135\1\136"+
+ "\2\0\1\137\2\0\1\140\13\0\1\141\11\0\1\142"+
+ "\1\143\3\0\1\144\2\0\1\145\2\0\1\146\5\0"+
+ "\1\147\6\0\1\150\10\0\1\151\1\152\1\153\1\0"+
+ "\1\154\3\0\1\155\5\0\1\156\1\157\1\160\1\161"+
+ "\1\162\15\0\1\163\4\0\1\164\1\165\3\0\1\166"+
+ "\1\167\2\0\1\170\13\0\1\171\4\0\1\172\1\173"+
+ "\1\0\1\174\6\0\1\175\6\0\1\176\7\0\1\177"+
+ "\3\0\1\124\1\200\1\0\1\201\1\202\1\203\1\204"+
+ "\1\205\4\0\1\206\5\0\1\207\5\0\1\210\2\0"+
+ "\1\211\1\0\1\212\2\0\1\213\5\0\1\214\1\215"+
+ "\1\216\1\0\1\217\2\0\1\220\7\0\1\221\1\222"+
+ "\3\0\1\223\1\0\1\224\2\0\1\225\1\226\1\227"+
+ "\2\0\1\230\4\0\1\231\1\232\7\0\1\233\4\0"+
+ "\1\165\4\0\1\234\1\235\1\236\1\0\1\237\5\0"+
+ "\1\240\1\0\1\241\1\0\1\242\6\0\1\243\1\244"+
+ "\1\0\1\245\1\246\7\0\1\247\1\0\1\250\2\0"+
+ "\1\251\1\252\1\253\3\0\1\254\1\255\1\256\2\0"+
+ "\1\257\1\217\1\260\1\261\4\0\1\262\1\263\1\264"+
+ "\1\265\1\227\1\230\1\266\2\0\1\267\4\0\1\270"+
+ "\1\0\1\271\1\0\1\272\1\0\1\273\1\274\1\0"+
+ "\1\275\2\0\1\276\2\0\1\277\1\0\1\300\1\0"+
+ "\1\301\1\302\1\266\1\0\1\303\1\304\2\0\1\305"+
+ "\1\306\2\0\1\307\1\0\1\307";
+
+ private static int [] zzUnpackAction() {
+ int [] result = new int[815];
+ int offset = 0;
+ offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackAction(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ do result[j++] = value; while (--count > 0);
+ }
+ return j;
+ }
+
+
+ /**
+ * Translates a state to a row index in the transition table
+ */
+ private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
+
+ private static final String ZZ_ROWMAP_PACKED_0 =
+ "\0\0\0\62\0\144\0\226\0\310\0\372\0\u012c\0\u015e"+
+ "\0\u0190\0\u01c2\0\u0190\0\u01f4\0\u0226\0\u0258\0\u0190\0\u0190"+
+ "\0\u028a\0\u02bc\0\u02ee\0\u0190\0\u0190\0\u0320\0\u0352\0\u0384"+
+ "\0\u03b6\0\u03e8\0\u041a\0\u044c\0\u047e\0\u0190\0\u0190\0\u0190"+
+ "\0\u0190\0\u04b0\0\u04e2\0\u0514\0\u0546\0\u0578\0\u05aa\0\u05dc"+
+ "\0\u060e\0\u0640\0\u0672\0\u06a4\0\u0190\0\u06d6\0\u0708\0\u0190"+
+ "\0\u073a\0\u076c\0\u079e\0\u07d0\0\u07d0\0\u0802\0\u0834\0\u0866"+
+ "\0\u0898\0\u08ca\0\u08fc\0\u092e\0\u0960\0\u0992\0\u09c4\0\u09f6"+
+ "\0\u0190\0\u0a28\0\u0a5a\0\u0a8c\0\u0190\0\u0190\0\u0abe\0\u0190"+
+ "\0\u0af0\0\u0190\0\u0b22\0\u0b54\0\u0b86\0\u0bb8\0\u0bea\0\u0c1c"+
+ "\0\u0c4e\0\u0c80\0\u0cb2\0\u0ce4\0\u0d16\0\u0d48\0\u0d7a\0\u0dac"+
+ "\0\u0dde\0\u0e10\0\u0e42\0\u0e74\0\u0ea6\0\u0ed8\0\u0f0a\0\u0f3c"+
+ "\0\u0f6e\0\u0fa0\0\u0fd2\0\u1004\0\u1036\0\u1068\0\u109a\0\u10cc"+
+ "\0\u10fe\0\u1130\0\u1162\0\u1194\0\u11c6\0\u0190\0\u11f8\0\u122a"+
+ "\0\u125c\0\u128e\0\u12c0\0\u12f2\0\u1324\0\u1356\0\u1388\0\u13ba"+
+ "\0\u13ec\0\u141e\0\u1450\0\u1482\0\u14b4\0\u14e6\0\u1518\0\u154a"+
+ "\0\u157c\0\u15ae\0\u15e0\0\u1612\0\u1644\0\u1676\0\u16a8\0\u16da"+
+ "\0\u170c\0\u173e\0\u1770\0\u17a2\0\u17d4\0\u1806\0\u1838\0\u186a"+
+ "\0\u189c\0\u18ce\0\u1900\0\u1932\0\u0190\0\u0190\0\u0190\0\u1964"+
+ "\0\u1996\0\u19c8\0\u19fa\0\u1a2c\0\u1a5e\0\u0190\0\u0190\0\u0190"+
+ "\0\u0190\0\u1a90\0\u1ac2\0\u1af4\0\u0190\0\u0190\0\u0190\0\u1b26"+
+ "\0\u1b58\0\u1b8a\0\u1bbc\0\u1bee\0\u1c20\0\u1c52\0\u0190\0\u0190"+
+ "\0\u0190\0\u0190\0\u1c84\0\u1cb6\0\u1ce8\0\u1d1a\0\u1d4c\0\u1d7e"+
+ "\0\u1db0\0\u1de2\0\u1e14\0\u1e46\0\u1e78\0\u1eaa\0\u1edc\0\u1f0e"+
+ "\0\u1f40\0\u1f72\0\u0190\0\u1fa4\0\u1fd6\0\u2008\0\u203a\0\u206c"+
+ "\0\u209e\0\u20d0\0\u2102\0\u2134\0\u2166\0\u2198\0\u21ca\0\u21fc"+
+ "\0\u222e\0\u2260\0\u2292\0\u22c4\0\u22f6\0\u2328\0\u235a\0\u238c"+
+ "\0\u0190\0\u23be\0\u23f0\0\u2422\0\u2454\0\u2486\0\u24b8\0\u24ea"+
+ "\0\u251c\0\u254e\0\u2580\0\u25b2\0\u25e4\0\u2616\0\u2648\0\u267a"+
+ "\0\u26ac\0\u26de\0\u2710\0\u2742\0\u2774\0\u27a6\0\u27d8\0\u280a"+
+ "\0\u283c\0\u286e\0\u28a0\0\u28d2\0\u2904\0\u2936\0\u2968\0\u299a"+
+ "\0\u29cc\0\u29fe\0\u2a30\0\u2a62\0\u2a94\0\u2ac6\0\u2af8\0\u2b2a"+
+ "\0\u2b5c\0\u2b8e\0\u2bc0\0\u2bf2\0\u2c24\0\u2c56\0\u2c88\0\u2cba"+
+ "\0\u2cec\0\u2d1e\0\u2d50\0\u2d82\0\u2db4\0\u2de6\0\u2e18\0\u2e4a"+
+ "\0\u2e7c\0\u2eae\0\u2ee0\0\u2f12\0\u0190\0\u2f44\0\u2f76\0\u2fa8"+
+ "\0\u2fda\0\u300c\0\u303e\0\u3070\0\u30a2\0\u30d4\0\u3106\0\u3138"+
+ "\0\u316a\0\u319c\0\u31ce\0\u3200\0\u3232\0\u3264\0\u3296\0\u3296"+
+ "\0\u0190\0\u32c8\0\u32fa\0\u332c\0\u335e\0\u3390\0\u33c2\0\u33f4"+
+ "\0\u3426\0\u0190\0\u3458\0\u348a\0\u34bc\0\u34ee\0\u3520\0\u3552"+
+ "\0\u3584\0\u35b6\0\u0190\0\u35e8\0\u361a\0\u364c\0\u367e\0\u36b0"+
+ "\0\u0190\0\u36e2\0\u3714\0\u3746\0\u3778\0\u37aa\0\u0190\0\u37dc"+
+ "\0\u380e\0\u0190\0\u3840\0\u0190\0\u3872\0\u38a4\0\u0190\0\u0190"+
+ "\0\u0190\0\u38d6\0\u3908\0\u0190\0\u0190\0\u393a\0\u0190\0\u396c"+
+ "\0\u399e\0\u39d0\0\u0190\0\u3a02\0\u3a34\0\u3a66\0\u0190\0\u0190"+
+ "\0\u3a98\0\u3aca\0\u3afc\0\u3b2e\0\u3b60\0\u3b92\0\u3bc4\0\u3bf6"+
+ "\0\u3c28\0\u3c5a\0\u3c8c\0\u3cbe\0\u3cf0\0\u3d22\0\u3d54\0\u3d86"+
+ "\0\u3db8\0\u0190\0\u3dea\0\u3e1c\0\u0190\0\u3e4e\0\u3e80\0\u0190"+
+ "\0\u3eb2\0\u0190\0\u3ee4\0\u3f16\0\u0190\0\u3f48\0\u3f7a\0\u3fac"+
+ "\0\u0190\0\u3fde\0\u4010\0\u4042\0\u4074\0\u40a6\0\u40d8\0\u410a"+
+ "\0\u413c\0\u416e\0\u0190\0\u41a0\0\u41d2\0\u4204\0\u0190\0\u4236"+
+ "\0\u4268\0\u429a\0\u0190\0\u0190\0\u42cc\0\u42fe\0\u4330\0\u4362"+
+ "\0\u0190\0\u0190\0\u4394\0\u43c6\0\u43f8\0\u442a\0\u445c\0\u448e"+
+ "\0\u44c0\0\u44f2\0\u4524\0\u4556\0\u0190\0\u4588\0\u45ba\0\u45ec"+
+ "\0\u461e\0\u0190\0\u0190\0\u4650\0\u4682\0\u46b4\0\u46e6\0\u3264"+
+ "\0\u4718\0\u332c\0\u474a\0\u477c\0\u0190\0\u33f4\0\u47ae\0\u47e0"+
+ "\0\u0190\0\u4812\0\u0190\0\u4844\0\u4876\0\u48a8\0\u48da\0\u490c"+
+ "\0\u493e\0\u4970\0\u49a2\0\u49d4\0\u4a06\0\u0190\0\u4a38\0\u4a6a"+
+ "\0\u4a9c\0\u4ace\0\u4b00\0\u4b32\0\u4b64\0\u4b96\0\u4bc8\0\u4bfa"+
+ "\0\u0190\0\u0190\0\u4c2c\0\u4c5e\0\u0190\0\u4c90\0\u4cc2\0\u4cf4"+
+ "\0\u4d26\0\u4d58\0\u4d8a\0\u4dbc\0\u4dee\0\u4e20\0\u4e52\0\u4e84"+
+ "\0\u4eb6\0\u4ee8\0\u4f1a\0\u0190\0\u4f4c\0\u4f7e\0\u4fb0\0\u4fe2"+
+ "\0\u5014\0\u5046\0\u5078\0\u50aa\0\u50dc\0\u0190\0\u0190\0\u510e"+
+ "\0\u5140\0\u5172\0\u0190\0\u51a4\0\u51d6\0\u0190\0\u5208\0\u523a"+
+ "\0\u0190\0\u526c\0\u529e\0\u52d0\0\u5302\0\u5334\0\u0190\0\u5366"+
+ "\0\u5398\0\u53ca\0\u53fc\0\u542e\0\u5460\0\u0190\0\u5492\0\u54c4"+
+ "\0\u54f6\0\u5528\0\u555a\0\u558c\0\u55be\0\u55f0\0\u0190\0\u0190"+
+ "\0\u0190\0\u5622\0\u0190\0\u5654\0\u5686\0\u56b8\0\u0190\0\u56ea"+
+ "\0\u571c\0\u574e\0\u5780\0\u57b2\0\u0190\0\u0190\0\u0190\0\u57e4"+
+ "\0\u0190\0\u5816\0\u5848\0\u587a\0\u58ac\0\u58de\0\u5910\0\u5942"+
+ "\0\u5974\0\u59a6\0\u59d8\0\u5a0a\0\u5a3c\0\u5a6e\0\u0190\0\u5aa0"+
+ "\0\u5ad2\0\u5b04\0\u5b36\0\u0190\0\u5b68\0\u5b9a\0\u5bcc\0\u5bfe"+
+ "\0\u0190\0\u0190\0\u5c30\0\u5c62\0\u0190\0\u5c94\0\u5cc6\0\u5cf8"+
+ "\0\u5d2a\0\u5d5c\0\u5d8e\0\u5dc0\0\u5df2\0\u5e24\0\u5e56\0\u5e88"+
+ "\0\u0190\0\u5eba\0\u5eec\0\u5f1e\0\u5f50\0\u0190\0\u5f82\0\u5fb4"+
+ "\0\u5fe6\0\u6018\0\u604a\0\u607c\0\u60ae\0\u60e0\0\u6112\0\u0190"+
+ "\0\u6144\0\u6176\0\u61a8\0\u61da\0\u620c\0\u623e\0\u0190\0\u6270"+
+ "\0\u62a2\0\u62d4\0\u6306\0\u6338\0\u636a\0\u639c\0\u0190\0\u63ce"+
+ "\0\u6400\0\u6432\0\u5686\0\u0190\0\u6464\0\u0190\0\u0190\0\u0190"+
+ "\0\u0190\0\u0190\0\u6496\0\u64c8\0\u64fa\0\u652c\0\u0190\0\u655e"+
+ "\0\u6590\0\u65c2\0\u65f4\0\u6626\0\u0190\0\u6658\0\u668a\0\u66bc"+
+ "\0\u66ee\0\u6720\0\u0190\0\u6752\0\u6784\0\u0190\0\u67b6\0\u0190"+
+ "\0\u67e8\0\u681a\0\u0190\0\u684c\0\u687e\0\u68b0\0\u68e2\0\u6914"+
+ "\0\u0190\0\u0190\0\u0190\0\u6946\0\u6978\0\u69aa\0\u69dc\0\u0190"+
+ "\0\u6a0e\0\u6a40\0\u6a72\0\u6aa4\0\u6ad6\0\u6b08\0\u6b3a\0\u0190"+
+ "\0\u0190\0\u6b6c\0\u6b9e\0\u6bd0\0\u0190\0\u6c02\0\u0190\0\u6c34"+
+ "\0\u6c66\0\u0190\0\u0190\0\u6c98\0\u6cca\0\u6cfc\0\u6d2e\0\u6d60"+
+ "\0\u6d92\0\u6dc4\0\u6df6\0\u0190\0\u6e28\0\u6e5a\0\u6e8c\0\u6ebe"+
+ "\0\u6ef0\0\u6f22\0\u6f54\0\u6f86\0\u0190\0\u6fb8\0\u6fea\0\u701c"+
+ "\0\u704e\0\u6752\0\u7080\0\u70b2\0\u70e4\0\u7116\0\u0190\0\u0190"+
+ "\0\u0190\0\u7148\0\u0190\0\u717a\0\u71ac\0\u71de\0\u7210\0\u7242"+
+ "\0\u0190\0\u7274\0\u0190\0\u72a6\0\u0190\0\u72d8\0\u730a\0\u733c"+
+ "\0\u736e\0\u73a0\0\u73d2\0\u0190\0\u0190\0\u7404\0\u0190\0\u0190"+
+ "\0\u7436\0\u7468\0\u749a\0\u74cc\0\u74fe\0\u7530\0\u7562\0\u0190"+
+ "\0\u7594\0\u0190\0\u75c6\0\u75f8\0\u0190\0\u0190\0\u0190\0\u762a"+
+ "\0\u765c\0\u768e\0\u0190\0\u0190\0\u0190\0\u76c0\0\u76f2\0\u0190"+
+ "\0\u71de\0\u0190\0\u0190\0\u7724\0\u7756\0\u7788\0\u77ba\0\u0190"+
+ "\0\u0190\0\u0190\0\u0190\0\u7404\0\u7436\0\u77ec\0\u781e\0\u7850"+
+ "\0\u0190\0\u7882\0\u78b4\0\u78e6\0\u7918\0\u0190\0\u794a\0\u0190"+
+ "\0\u797c\0\u0190\0\u79ae\0\u0190\0\u0190\0\u79e0\0\u0190\0\u7a12"+
+ "\0\u7a44\0\u0190\0\u7a76\0\u7aa8\0\u0190\0\u7ada\0\u0190\0\u7b0c"+
+ "\0\u0190\0\u0190\0\u7a12\0\u7b3e\0\u0190\0\u0190\0\u7b70\0\u7ba2"+
+ "\0\u0190\0\u0190\0\u7bd4\0\u7c06\0\u7c38\0\u7c6a\0\u7c6a";
+
+ private static int [] zzUnpackRowMap() {
+ int [] result = new int[815];
+ int offset = 0;
+ offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackRowMap(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int high = packed.charAt(i++) << 16;
+ result[j++] = high | packed.charAt(i++);
+ }
+ return j;
+ }
+
+ /**
+ * The transition table of the DFA
+ */
+ private static final int [] ZZ_TRANS = zzUnpackTrans();
+
+ private static final String ZZ_TRANS_PACKED_0 =
+ "\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1\20"+
+ "\1\21\1\22\1\11\1\23\1\24\1\15\1\25\1\26"+
+ "\1\15\1\27\1\30\1\11\1\31\1\32\1\33\1\34"+
+ "\1\35\1\11\1\36\1\37\1\40\1\41\1\11\1\42"+
+ "\1\43\1\44\1\45\1\46\1\47\1\50\1\51\1\52"+
+ "\1\11\1\53\1\11\1\54\1\11\1\55\1\56\1\57"+
+ "\1\60\1\61\1\11\1\12\1\13\1\14\1\62\1\63"+
+ "\1\64\1\65\1\66\1\67\1\11\1\70\1\24\1\62"+
+ "\1\25\1\71\1\62\1\72\1\30\1\11\1\73\1\74"+
+ "\1\33\1\75\1\35\1\11\1\36\1\76\1\40\1\41"+
+ "\1\11\1\42\1\43\1\44\1\45\1\46\1\47\1\50"+
+ "\1\51\1\52\1\11\1\53\1\11\1\54\1\11\1\55"+
+ "\1\56\1\57\1\60\1\77\1\100\2\101\11\100\1\102"+
+ "\45\100\1\103\2\101\13\103\1\104\43\103\1\105\2\106"+
+ "\57\105\1\11\1\12\1\13\1\14\1\62\1\63\1\64"+
+ "\1\65\1\66\1\67\1\11\1\70\1\24\1\62\1\25"+
+ "\1\71\1\62\1\72\1\30\1\11\1\73\1\74\1\33"+
+ "\1\75\1\35\1\11\1\36\1\107\1\40\1\41\1\11"+
+ "\1\42\1\43\1\44\1\45\1\46\1\47\1\50\1\51"+
+ "\1\52\1\11\1\53\1\11\1\54\1\11\1\55\1\56"+
+ "\1\57\1\60\1\77\1\11\1\12\1\13\1\14\1\62"+
+ "\1\63\1\64\1\65\1\66\1\67\1\11\1\70\1\24"+
+ "\1\62\1\25\1\71\1\62\1\72\1\30\1\11\1\73"+
+ "\1\74\1\33\1\75\1\35\1\11\1\36\1\37\1\40"+
+ "\1\41\1\11\1\42\1\43\1\44\1\45\1\46\1\47"+
+ "\1\50\1\51\1\52\1\11\1\53\1\11\1\54\1\11"+
+ "\1\55\1\56\1\57\1\60\1\61\2\110\1\0\2\110"+
+ "\1\111\2\110\1\111\1\110\2\111\3\110\1\111\1\110"+
+ "\11\111\6\110\6\111\1\110\6\111\5\110\64\0\1\13"+
+ "\62\0\1\112\62\0\1\15\1\113\7\0\1\15\2\0"+
+ "\1\15\72\0\1\114\6\0\1\115\1\116\2\0\1\117"+
+ "\7\0\1\120\12\0\1\121\11\0\1\122\2\0\1\123"+
+ "\1\0\1\124\42\0\1\125\2\0\1\126\1\0\2\126"+
+ "\3\0\1\127\1\0\1\126\1\130\2\126\1\131\1\126"+
+ "\1\132\2\126\6\0\1\133\1\134\4\126\1\0\1\135"+
+ "\5\126\21\0\1\136\1\0\1\137\3\0\1\140\16\0"+
+ "\1\141\34\0\1\142\1\0\1\143\11\0\1\144\7\0"+
+ "\1\145\2\0\1\146\32\0\1\147\1\0\1\150\53\0"+
+ "\1\151\15\0\1\152\12\0\1\153\1\154\36\0\1\155"+
+ "\5\0\1\156\12\0\1\157\4\0\1\160\33\0\1\161"+
+ "\4\0\1\162\16\0\1\163\1\0\1\164\21\0\1\165"+
+ "\14\0\1\166\1\0\1\167\16\0\1\170\3\0\1\171"+
+ "\31\0\1\172\61\0\1\173\2\0\1\174\20\0\1\175"+
+ "\1\176\22\0\1\177\2\0\1\200\13\0\1\201\3\0"+
+ "\1\202\10\0\1\203\1\0\1\204\23\0\1\205\11\0"+
+ "\1\206\2\0\1\207\20\0\1\210\1\0\1\211\21\0"+
+ "\1\212\11\0\1\213\61\0\1\214\2\0\1\215\1\216"+
+ "\15\0\1\217\10\0\1\220\35\0\1\221\11\0\1\222"+
+ "\26\0\1\223\73\0\1\224\110\0\1\225\7\0\1\226"+
+ "\22\0\1\227\2\0\1\230\1\231\26\0\1\232\33\0"+
+ "\1\233\60\0\1\234\20\0\1\235\63\0\1\236\61\0"+
+ "\1\237\61\0\1\240\12\0\1\241\4\0\1\62\1\242"+
+ "\2\0\1\243\1\244\3\0\1\62\2\0\1\62\2\0"+
+ "\1\245\4\0\1\246\1\247\34\0\1\250\10\0\1\250"+
+ "\2\0\1\250\5\0\1\251\2\0\1\114\6\0\1\252"+
+ "\1\116\2\0\1\117\7\0\1\120\11\0\1\253\10\0"+
+ "\1\253\2\0\1\253\45\0\1\254\1\121\7\0\1\254"+
+ "\1\0\1\122\1\254\1\0\1\123\1\0\1\124\41\0"+
+ "\1\255\1\125\2\0\1\126\1\0\2\126\1\0\1\255"+
+ "\1\0\1\127\1\255\1\126\1\130\2\126\1\131\1\126"+
+ "\1\132\2\126\6\0\1\133\1\134\4\126\1\0\1\135"+
+ "\5\126\11\0\1\254\7\0\1\136\1\254\1\137\1\0"+
+ "\1\254\1\0\1\140\16\0\1\141\24\0\1\254\7\0"+
+ "\1\142\1\254\1\143\1\0\1\254\7\0\1\144\7\0"+
+ "\1\145\2\0\1\146\22\0\1\254\7\0\1\147\1\254"+
+ "\1\150\1\0\1\254\45\0\1\254\10\0\1\254\1\0"+
+ "\1\155\1\254\4\0\1\156\12\0\1\157\4\0\1\160"+
+ "\20\0\1\254\10\0\1\254\1\0\1\161\1\254\3\0"+
+ "\1\162\16\0\1\163\1\0\1\164\20\0\1\250\10\0"+
+ "\1\250\1\0\1\172\1\250\46\0\1\256\2\0\1\256"+
+ "\1\0\2\256\3\0\1\256\1\0\11\256\6\0\6\256"+
+ "\1\0\6\256\4\0\1\257\35\0\1\260\10\0\1\240"+
+ "\12\0\1\241\1\100\2\0\11\100\1\0\45\100\14\0"+
+ "\1\261\45\0\1\103\2\0\13\103\1\0\43\103\16\0"+
+ "\1\262\124\0\1\257\4\0\2\111\2\0\1\111\1\0"+
+ "\2\111\1\0\1\111\1\0\14\111\5\0\6\111\1\0"+
+ "\6\111\11\0\1\263\10\0\1\263\2\0\1\263\65\0"+
+ "\1\264\22\0\1\265\22\0\1\266\36\0\1\267\17\0"+
+ "\1\270\20\0\1\271\77\0\1\272\60\0\1\273\40\0"+
+ "\1\274\2\0\1\275\13\0\1\276\63\0\1\277\65\0"+
+ "\1\300\56\0\1\301\1\302\21\0\1\126\2\0\1\126"+
+ "\1\303\2\126\3\0\1\126\1\0\11\126\6\0\6\126"+
+ "\1\0\5\126\1\304\12\0\1\126\2\0\1\126\1\303"+
+ "\2\126\3\0\1\126\1\0\11\126\6\0\6\126\1\0"+
+ "\6\126\12\0\1\126\2\0\1\126\1\303\2\126\3\0"+
+ "\1\126\1\0\11\126\6\0\4\126\1\305\1\126\1\0"+
+ "\6\126\12\0\1\126\2\0\1\126\1\303\2\126\3\0"+
+ "\1\126\1\0\11\126\6\0\1\306\5\126\1\0\6\126"+
+ "\12\0\1\126\2\0\1\126\1\303\2\126\3\0\1\126"+
+ "\1\0\1\126\1\307\7\126\6\0\6\126\1\0\6\126"+
+ "\12\0\1\310\2\0\1\126\1\303\2\126\3\0\1\126"+
+ "\1\0\11\126\6\0\6\126\1\0\1\311\5\126\12\0"+
+ "\1\312\2\0\1\126\1\303\2\126\3\0\1\313\1\0"+
+ "\11\126\6\0\6\126\1\0\6\126\12\0\1\314\2\0"+
+ "\1\126\1\303\2\126\3\0\1\126\1\0\11\126\6\0"+
+ "\6\126\1\0\1\315\5\126\12\0\1\126\2\0\1\126"+
+ "\1\303\2\126\3\0\1\126\1\0\11\126\6\0\4\126"+
+ "\1\316\1\126\1\0\6\126\22\0\1\317\61\0\1\320"+
+ "\106\0\1\321\36\0\1\322\2\0\1\323\54\0\1\324"+
+ "\2\0\1\324\56\0\1\325\2\0\1\325\46\0\1\326"+
+ "\41\0\1\327\53\0\1\330\67\0\1\331\16\0\2\332"+
+ "\2\0\1\332\2\0\1\332\1\0\1\332\2\0\1\332"+
+ "\1\0\1\332\2\0\1\332\14\0\1\332\23\0\2\333"+
+ "\2\0\1\333\2\0\1\333\1\0\1\333\2\0\1\333"+
+ "\1\0\1\333\2\0\1\333\14\0\1\333\67\0\1\334"+
+ "\37\0\1\335\74\0\1\336\62\0\1\337\4\0\1\340"+
+ "\40\0\1\341\12\0\1\342\37\0\1\343\22\0\1\344"+
+ "\4\0\1\345\4\0\1\346\35\0\1\347\75\0\1\350"+
+ "\56\0\1\351\60\0\1\352\70\0\1\353\53\0\1\354"+
+ "\12\0\1\355\55\0\1\356\32\0\1\357\53\0\1\360"+
+ "\65\0\1\361\2\0\1\362\106\0\1\363\36\0\1\364"+
+ "\1\0\1\365\43\0\1\366\32\0\1\367\1\370\30\0"+
+ "\1\371\30\0\1\372\22\0\1\373\11\0\1\374\4\0"+
+ "\1\375\76\0\1\376\2\0\1\377\22\0\1\u0100\101\0"+
+ "\1\u0101\12\0\1\u0102\65\0\1\u0103\41\0\1\u0104\75\0"+
+ "\1\u0105\52\0\1\u0106\70\0\1\u0107\66\0\1\u0108\55\0"+
+ "\1\u0109\3\0\1\u010a\55\0\1\u010b\60\0\1\u010c\50\0"+
+ "\1\u010d\72\0\1\u010e\4\0\1\u010f\42\0\1\u0110\12\0"+
+ "\1\u0111\42\0\1\u0112\56\0\1\u0113\104\0\1\u0114\24\0"+
+ "\1\u0115\100\0\1\u0116\1\u0117\56\0\1\u0118\3\0\1\u0119"+
+ "\13\0\1\u011a\4\0\1\u011b\3\0\1\u011c\16\0\1\u011d"+
+ "\115\0\1\u011e\22\0\1\u011f\104\0\1\u0120\71\0\1\u0121"+
+ "\26\0\1\u0122\16\0\1\u0123\61\0\1\u0124\41\0\1\u0125"+
+ "\1\0\2\u0126\5\0\1\u0125\2\0\1\u0125\45\0\1\u0127"+
+ "\1\0\2\u0128\5\0\1\u0127\2\0\1\u0127\41\0\4\u0129"+
+ "\1\255\1\u012a\2\u0129\1\243\1\u0129\2\0\1\u0129\1\255"+
+ "\1\u0129\1\0\1\255\11\0\6\u0129\6\0\1\u0129\6\0"+
+ "\5\u0129\4\0\1\250\4\0\1\u012b\3\0\1\250\2\0"+
+ "\1\250\45\0\1\250\10\0\1\250\2\0\1\250\45\0"+
+ "\1\250\3\0\1\266\4\0\1\250\2\0\1\250\26\0"+
+ "\1\267\16\0\1\253\10\0\1\253\2\0\1\253\7\0"+
+ "\1\246\35\0\1\254\4\0\1\u012c\3\0\1\254\2\0"+
+ "\1\254\45\0\1\255\1\u012a\2\0\1\243\4\0\1\255"+
+ "\2\0\1\255\50\0\1\u012d\24\0\1\u012e\1\u012f\30\0"+
+ "\1\263\4\0\1\u0130\3\0\1\263\2\0\1\263\67\0"+
+ "\1\u0131\20\0\1\u0132\17\0\1\u0133\64\0\1\u0134\2\0"+
+ "\1\u0135\10\0\1\u0136\1\u0137\1\u0138\1\0\1\u0139\14\0"+
+ "\1\u013a\1\u013b\1\u013c\3\0\1\u013d\52\0\1\u013e\62\0"+
+ "\1\u013f\21\0\1\u0140\122\0\1\u0141\37\0\1\u0142\76\0"+
+ "\1\u0143\42\0\1\u0144\63\0\1\u0145\50\0\1\u0146\70\0"+
+ "\1\u0147\44\0\1\u0148\61\0\1\u0149\61\0\1\126\2\0"+
+ "\1\126\1\u014a\2\126\3\0\1\126\1\0\11\126\6\0"+
+ "\6\126\1\0\1\126\1\u014b\4\126\12\0\1\126\2\0"+
+ "\1\126\1\u014c\2\126\3\0\1\126\1\0\11\126\6\0"+
+ "\6\126\1\0\6\126\12\0\1\126\2\0\1\u014d\1\303"+
+ "\2\126\3\0\1\126\1\0\11\126\6\0\6\126\1\0"+
+ "\6\126\12\0\1\126\2\0\1\126\1\303\2\126\3\0"+
+ "\1\126\1\0\11\126\6\0\1\126\1\u014e\4\126\1\0"+
+ "\6\126\12\0\1\126\2\0\1\126\1\u014f\2\126\3\0"+
+ "\1\126\1\0\11\126\6\0\6\126\1\0\6\126\12\0"+
+ "\1\126\2\0\1\126\1\u0150\2\126\3\0\1\126\1\0"+
+ "\11\126\6\0\6\126\1\0\6\126\12\0\1\126\2\0"+
+ "\1\126\1\u0151\2\126\3\0\1\126\1\0\11\126\6\0"+
+ "\6\126\1\0\5\126\1\u0152\12\0\1\126\2\0\1\126"+
+ "\1\303\2\126\3\0\1\126\1\0\11\126\6\0\6\126"+
+ "\1\0\1\u0153\5\126\12\0\1\126\2\0\1\126\1\u0154"+
+ "\2\126\3\0\1\126\1\0\11\126\6\0\6\126\1\0"+
+ "\6\126\12\0\1\126\2\0\1\126\1\u0155\2\126\3\0"+
+ "\1\126\1\0\11\126\6\0\6\126\1\0\6\126\12\0"+
+ "\1\126\2\0\1\126\1\303\2\126\3\0\1\126\1\0"+
+ "\11\126\6\0\3\126\1\u0156\2\126\1\0\6\126\21\0"+
+ "\1\u0157\1\317\61\0\1\320\1\u0157\114\0\1\u0158\52\0"+
+ "\1\u0159\57\0\1\u015a\35\0\1\u015b\1\324\2\0\1\324"+
+ "\56\0\1\325\1\u015b\1\0\1\325\101\0\1\u015c\3\0"+
+ "\1\u015d\41\0\1\u015e\107\0\1\u015f\13\0\2\332\2\0"+
+ "\1\332\2\0\1\332\1\u0160\1\332\2\0\1\332\1\0"+
+ "\1\332\2\0\1\332\14\0\1\332\23\0\2\333\2\0"+
+ "\1\333\2\0\1\333\1\0\1\333\1\u0160\1\0\1\333"+
+ "\1\0\1\333\2\0\1\333\14\0\1\333\41\0\1\u0161"+
+ "\63\0\1\u0162\54\0\1\u0163\47\0\1\u0164\100\0\1\u0165"+
+ "\104\0\1\u0166\17\0\1\u0167\117\0\1\u0168\57\0\1\u0169"+
+ "\25\0\1\u016a\36\0\1\u016b\60\0\1\u016c\57\0\1\u016d"+
+ "\42\0\1\u016e\22\0\1\u016f\21\0\1\u0170\116\0\1\u0171"+
+ "\65\0\1\u0172\20\0\1\u0173\117\0\1\u0174\23\0\1\u0175"+
+ "\61\0\1\u0176\120\0\1\u0177\45\0\1\u0178\100\0\1\u0179"+
+ "\31\0\1\u017a\102\0\1\u017b\45\0\1\u017c\103\0\1\u017d"+
+ "\41\0\1\u017e\55\0\1\u017f\100\0\1\u0180\25\0\1\u0181"+
+ "\116\0\1\u0182\46\0\1\u0183\12\0\1\u0184\57\0\1\u0185"+
+ "\7\0\1\u0186\35\0\1\u0187\1\0\1\u0188\77\0\1\u0189"+
+ "\42\0\1\203\34\0\1\u0101\1\u018a\1\u018b\57\u0101\42\0"+
+ "\1\344\41\0\1\u018c\77\0\1\u0188\31\0\1\u018d\120\0"+
+ "\1\u018e\17\0\1\u018f\61\0\1\u0190\115\0\1\u0191\33\0"+
+ "\1\u0192\114\0\1\u0193\61\0\1\u0194\37\0\1\u0195\104\0"+
+ "\1\u0196\42\0\1\u0197\14\0\1\u0198\21\0\1\u0199\115\0"+
+ "\1\u019a\64\0\1\u019b\43\0\1\u019c\74\0\1\u019d\67\0"+
+ "\1\u019e\31\0\1\u019f\52\0\1\u01a0\30\0\1\u01a1\63\0"+
+ "\1\u01a2\57\0\1\u01a3\1\0\1\u01a4\2\0\1\u01a5\56\0"+
+ "\1\u01a6\42\0\1\u01a7\100\0\1\u01a8\45\0\1\u01a9\72\0"+
+ "\1\u01aa\26\0\1\u01ab\64\0\1\u01ac\115\0\1\u01ad\56\0"+
+ "\1\u01ae\67\0\1\u01af\16\0\1\u0125\4\0\1\u0130\3\0"+
+ "\1\u0125\2\0\1\u0125\45\0\1\u01b0\10\0\1\u01b0\2\0"+
+ "\1\u01b0\45\0\1\u0127\10\0\1\u0127\2\0\1\u0127\45\0"+
+ "\1\u01b0\1\0\2\u0126\5\0\1\u01b0\2\0\1\u01b0\45\0"+
+ "\1\u01b1\10\0\1\u01b1\2\0\1\u01b1\45\0\1\u01b2\10\0"+
+ "\1\u01b2\2\0\1\u01b2\46\0\1\u01b3\2\0\1\u01b3\1\0"+
+ "\2\u01b3\3\0\1\u01b3\1\0\11\u01b3\6\0\6\u01b3\1\0"+
+ "\6\u01b3\12\0\1\256\2\0\1\256\1\0\2\256\3\0"+
+ "\1\256\1\0\11\256\6\0\6\256\1\0\6\256\6\0"+
+ "\1\u01b4\1\u01b5\31\0\1\u01b5\1\0\1\u01b5\27\0\1\u01b6"+
+ "\10\0\1\u01b6\2\0\1\u01b6\110\0\1\u01b7\56\0\1\u01b8"+
+ "\34\0\1\u01b9\103\0\1\u01ba\45\0\1\u01bb\12\0\1\u01bc"+
+ "\40\0\1\u01bd\4\0\1\u01be\16\0\1\u01bf\23\0\1\u01c0"+
+ "\35\0\1\u01c1\62\0\1\u01c2\34\0\1\u01c3\114\0\1\u01c4"+
+ "\32\0\1\u01c5\110\0\1\u01c6\14\0\1\u01c7\100\0\1\u01c8"+
+ "\26\0\1\u01c9\56\0\1\u01ca\52\0\1\u01cb\63\0\1\u01cc"+
+ "\63\0\1\u01cd\55\0\1\u01ce\62\0\1\u01cf\57\0\1\u01d0"+
+ "\26\0\1\126\2\0\1\126\1\u01d1\2\126\3\0\1\126"+
+ "\1\0\11\126\6\0\6\126\1\0\6\126\12\0\1\126"+
+ "\2\0\1\126\1\u01d2\2\126\3\0\1\126\1\0\11\126"+
+ "\6\0\6\126\1\0\6\126\12\0\1\126\2\0\1\126"+
+ "\1\303\2\126\3\0\1\126\1\0\5\126\1\u01d3\3\126"+
+ "\6\0\6\126\1\0\6\126\12\0\1\126\2\0\1\126"+
+ "\1\303\2\126\3\0\1\126\1\0\11\126\6\0\6\126"+
+ "\1\0\1\126\1\u01d4\4\126\12\0\1\126\2\0\1\126"+
+ "\1\u01d5\2\126\3\0\1\126\1\0\11\126\6\0\6\126"+
+ "\1\0\6\126\12\0\1\u01d6\2\0\1\126\1\303\2\126"+
+ "\3\0\1\126\1\0\11\126\6\0\6\126\1\0\6\126"+
+ "\33\0\1\u01d7\104\0\1\u01d8\61\0\1\u01d9\15\0\1\u01da"+
+ "\76\0\1\u01db\56\0\1\u01dc\102\0\1\u01dd\50\0\1\u01de"+
+ "\74\0\1\u01df\45\0\1\u01e0\52\0\1\u01e1\64\0\1\u01e2"+
+ "\77\0\1\u01e3\70\0\1\u01e4\55\0\1\u01e5\45\0\1\u01e6"+
+ "\10\0\1\u01e7\3\0\1\u01e8\41\0\1\u01e9\61\0\1\u01ea"+
+ "\61\0\1\u01eb\76\0\1\u01ec\42\0\1\u01ed\23\0\1\u01ee"+
+ "\61\0\1\u01ef\62\0\1\u01f0\54\0\1\u01f1\24\0\1\u01f2"+
+ "\122\0\1\u01f3\32\0\1\u01f4\105\0\1\u01f5\2\0\1\u01f6"+
+ "\62\0\1\u01f7\61\0\1\u01f8\17\0\1\u01f9\121\0\1\u01fa"+
+ "\40\0\1\u01fb\61\0\1\u01fc\101\0\1\u01fd\22\0\1\u01fe"+
+ "\123\0\1\u01ff\34\0\1\u0200\64\0\1\u0101\41\0\1\u0101"+
+ "\73\0\1\u0201\44\0\1\u018b\106\0\1\u0202\37\0\1\u0187"+
+ "\120\0\1\u0203\25\0\1\u0204\30\0\1\u0205\4\0\1\u0206"+
+ "\37\0\1\u0207\42\0\1\u0208\116\0\1\u0209\41\0\1\u020a"+
+ "\1\0\1\u020b\76\0\1\u020c\37\0\1\u020d\64\0\1\u020e"+
+ "\44\0\1\u020f\61\0\1\u0210\122\0\1\u0211\57\0\1\u0212"+
+ "\63\0\1\u0213\4\0\1\u0214\11\0\1\u0215\117\0\1\u0216"+
+ "\66\0\1\u0217\57\0\1\u0218\61\0\1\u0219\55\0\1\u021a"+
+ "\62\0\1\u021b\25\0\1\u021c\122\0\1\u021d\20\0\1\u021e"+
+ "\61\0\1\u021f\61\0\1\u0220\60\0\1\u01b1\1\u012c\7\0"+
+ "\1\u01b1\2\0\1\u01b1\75\0\1\u012e\1\u012f\26\0\1\u01b5"+
+ "\125\0\1\u0221\53\0\1\u0222\40\0\1\u0223\111\0\1\u0224"+
+ "\56\0\1\u0225\56\0\1\u0226\60\0\1\u0227\62\0\1\u0228"+
+ "\33\0\1\u0229\65\0\1\u022a\52\0\1\u022b\101\0\1\u022c"+
+ "\36\0\1\u022d\114\0\1\u022e\46\0\1\u022f\57\0\1\u0230"+
+ "\60\0\1\u0231\56\0\1\u0232\103\0\1\u0233\66\0\1\u0234"+
+ "\20\0\1\u0235\123\0\1\u0236\40\0\1\u0237\40\0\1\u0238"+
+ "\2\0\1\126\1\303\2\126\3\0\1\126\1\0\11\126"+
+ "\6\0\6\126\1\0\6\126\12\0\1\126\2\0\1\126"+
+ "\1\u0239\2\126\3\0\1\126\1\0\11\126\6\0\6\126"+
+ "\1\0\6\126\12\0\1\126\2\0\1\126\1\u023a\2\126"+
+ "\3\0\1\126\1\0\11\126\6\0\6\126\1\0\6\126"+
+ "\35\0\1\u023b\41\0\1\u023c\117\0\1\u023d\23\0\1\u023e"+
+ "\120\0\1\u023f\52\0\1\u0240\63\0\1\u0241\57\0\1\u0242"+
+ "\43\0\1\u0243\65\0\1\u0244\73\0\1\u0245\70\0\1\u0246"+
+ "\41\0\1\u0247\42\0\1\u0188\56\0\1\u0248\123\0\1\u0249"+
+ "\37\0\1\u024a\74\0\1\u024b\65\0\1\u024c\57\0\1\u024d"+
+ "\60\0\1\u024e\67\0\1\u024f\36\0\1\u0250\104\0\1\u0251"+
+ "\52\0\1\u0252\64\0\1\u0253\44\0\1\u0254\40\0\1\u0255"+
+ "\100\0\1\u0256\42\0\1\u0257\116\0\1\u0258\45\0\1\u0259"+
+ "\55\0\1\u025a\47\0\1\u025b\120\0\1\u025c\56\0\1\u0101"+
+ "\62\0\1\u025d\21\0\1\u025e\122\0\1\u025f\37\0\1\u0260"+
+ "\62\0\1\u0261\100\0\1\u0262\37\0\1\u0263\63\0\1\u0264"+
+ "\75\0\1\u0265\26\0\1\u0266\114\0\1\u0267\63\0\1\u0268"+
+ "\64\0\1\u0269\60\0\1\u026a\21\0\1\u026b\10\0\1\u026b"+
+ "\2\0\1\u026b\110\0\1\u026c\40\0\1\u026d\73\0\1\u026e"+
+ "\31\0\1\u026f\56\0\1\u0270\123\0\1\u0271\60\0\1\u0272"+
+ "\35\0\1\u0273\101\0\1\u0274\24\0\1\u0275\76\0\1\u0276"+
+ "\44\0\1\u0277\116\0\1\u0278\24\0\1\u0279\120\0\1\u027a"+
+ "\44\0\1\u027b\75\0\1\u027c\23\0\1\u027d\120\0\1\u027e"+
+ "\64\0\1\u027f\17\0\1\u0280\115\0\1\u0281\62\0\1\u0282"+
+ "\66\0\1\u0283\15\0\1\u0284\24\0\1\u0285\77\0\1\u0286"+
+ "\37\0\1\u0287\42\0\1\126\2\0\1\126\1\u0288\2\126"+
+ "\3\0\1\126\1\0\11\126\6\0\6\126\1\0\6\126"+
+ "\27\0\1\u0289\61\0\1\u028a\105\0\1\u028b\32\0\1\u028c"+
+ "\64\0\1\u028d\44\0\1\u028e\121\0\1\u028f\63\0\1\u0290"+
+ "\60\0\1\u0291\61\0\1\u0292\61\0\1\u0293\62\0\1\u0294"+
+ "\56\0\1\u0295\37\0\1\u0296\65\0\1\u0297\40\0\1\u0298"+
+ "\100\0\1\u0299\104\0\1\u029a\31\0\1\u029b\104\0\1\u029c"+
+ "\61\0\1\u029d\4\0\1\u029e\61\0\1\u029f\60\0\1\u02a0"+
+ "\57\0\1\u02a1\34\0\1\u02a2\111\0\1\u02a3\36\0\1\u02a4"+
+ "\102\0\1\u02a5\57\0\1\u02a6\23\0\1\u02a7\76\0\1\u0101"+
+ "\101\0\1\u02a8\45\0\1\u02a9\105\0\1\u02aa\55\0\1\u02ab"+
+ "\54\0\1\u02ac\60\0\1\u02ad\64\0\1\u02ae\47\0\1\u02af"+
+ "\77\0\1\u02b0\34\0\1\u02b1\63\0\1\u02b2\61\0\1\u02b3"+
+ "\76\0\1\u02b4\71\0\1\u02b5\54\0\1\u02b6\56\0\1\u02b7"+
+ "\67\0\1\u02b8\54\0\1\u02b9\36\0\1\u02ba\106\0\1\u02bb"+
+ "\56\0\1\u02bc\25\0\1\u02bd\76\0\1\u02be\103\0\1\u02bf"+
+ "\22\0\1\u02c0\76\0\1\u02c1\43\0\1\u02c2\10\0\1\u02c2"+
+ "\2\0\1\u02c2\105\0\1\u02c3\34\0\1\u02c4\104\0\1\u02c5"+
+ "\66\0\1\u02c6\56\0\1\u02c7\56\0\1\u02c8\66\0\1\u02c9"+
+ "\20\0\1\u02ca\61\0\1\u02cb\14\0\1\u02cc\62\0\1\u02cd"+
+ "\41\0\1\u02ce\120\0\1\u02cf\43\0\1\u02d0\104\0\1\u02d1"+
+ "\17\0\1\u02d2\114\0\1\u02d3\43\0\1\u02d4\44\0\1\u02d5"+
+ "\100\0\1\u02d6\61\0\1\u02d7\75\0\1\u02d8\26\0\1\u02d9"+
+ "\73\0\1\u02da\106\0\1\u02db\63\0\1\u02dc\62\0\1\u02dd"+
+ "\15\0\1\u02de\104\0\1\u02df\40\0\1\u02e0\57\0\1\u02e1"+
+ "\63\0\1\u02e2\123\0\1\u02e3\61\0\1\u02e4\62\0\1\u02e5"+
+ "\21\0\1\u02e6\76\0\1\u02e7\75\0\1\u02e8\44\0\1\u02e9"+
+ "\104\0\1\u02ea\55\0\1\u02eb\40\0\1\u02ec\44\0\1\u02ed"+
+ "\115\0\1\u02ee\25\0\1\u02ef\114\0\1\u02f0\70\0\1\u02f1"+
+ "\17\0\1\u02f2\114\0\1\u02f3\26\0\1\u02f4\76\0\1\u02f5"+
+ "\77\0\1\u02f6\34\0\1\u02f7\114\0\1\u02f8\17\0\1\u02f9"+
+ "\10\0\1\u02f9\2\0\1\u02f9\46\0\1\u02fa\116\0\1\u02fb"+
+ "\27\0\1\u02fc\77\0\1\u02fd\55\0\1\u02fe\77\0\1\u02ff"+
+ "\67\0\1\u0300\57\0\1\u0301\55\0\1\u0302\26\0\1\u0303"+
+ "\60\0\1\u0304\10\0\1\u0304\2\0\1\u0304\45\0\1\u0305"+
+ "\10\0\1\u0305\2\0\1\u0305\105\0\1\u0306\64\0\1\u0307"+
+ "\17\0\1\u0308\61\0\1\u0309\76\0\1\u030a\61\0\1\u030b"+
+ "\56\0\1\u030c\111\0\1\u030d\57\0\1\u030e\56\0\1\u030f"+
+ "\24\0\1\u0310\116\0\1\u0311\66\0\1\u0312\53\0\1\u0313"+
+ "\66\0\1\u0314\20\0\1\u0315\115\0\1\u0316\25\0\1\u0317"+
+ "\57\0\1\u0318\63\0\1\u0319\122\0\1\u031a\62\0\1\u031b"+
+ "\54\0\1\u031c\57\0\1\u031d\45\0\1\u031e\42\0\1\u031f"+
+ "\100\0\1\u0320\42\0\1\u0321\122\0\1\u0322\17\0\1\u0323"+
+ "\10\0\1\u0323\2\0\1\u0323\51\0\1\u0324\73\0\1\u0325"+
+ "\44\0\1\u0326\114\0\1\u0327\47\0\1\u0328\101\0\1\u0329"+
+ "\20\0\1\u032a\100\0\1\u032b\54\0\1\u032c\102\0\1\u032d"+
+ "\24\0\1\u032e\62\0\1\u032f\10\0\1\u032f\2\0\1\u032f"+
+ "\41\0";
+
+ private static int [] zzUnpackTrans() {
+ int [] result = new int[31900];
+ int offset = 0;
+ offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackTrans(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ value--;
+ do result[j++] = value; while (--count > 0);
+ }
+ return j;
+ }
+
+
+ /* error codes */
+ private static final int ZZ_UNKNOWN_ERROR = 0;
+ private static final int ZZ_NO_MATCH = 1;
+ private static final int ZZ_PUSHBACK_2BIG = 2;
+
+ /* error messages for the codes above */
+ private static final String ZZ_ERROR_MSG[] = {
+ "Unkown internal scanner error",
+ "Error: could not match input",
+ "Error: pushback value was too large"
+ };
+
+ /**
+ * ZZ_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>
+ */
+ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
+
+ private static final String ZZ_ATTRIBUTE_PACKED_0 =
+ "\10\0\1\11\1\1\1\11\3\1\2\11\3\1\2\11"+
+ "\10\1\4\11\13\1\1\11\2\1\1\11\20\1\1\11"+
+ "\3\1\2\11\1\1\1\11\1\1\1\11\7\0\1\1"+
+ "\33\0\1\11\1\1\12\0\1\1\32\0\3\11\6\0"+
+ "\4\11\2\0\1\2\3\11\5\0\1\1\1\0\4\11"+
+ "\3\0\1\1\14\0\1\11\25\0\1\11\73\0\1\11"+
+ "\17\0\1\1\1\0\1\1\1\0\1\15\5\0\1\2"+
+ "\2\0\1\11\10\0\1\11\4\0\1\1\1\11\5\0"+
+ "\1\11\2\0\1\11\1\0\1\11\2\0\3\11\2\0"+
+ "\2\11\1\0\1\11\3\0\1\11\1\1\2\0\2\11"+
+ "\17\0\1\1\1\0\1\11\2\0\1\11\2\0\1\11"+
+ "\1\0\1\11\2\0\1\11\3\0\1\11\10\0\1\1"+
+ "\1\11\3\0\1\11\1\0\1\1\1\0\2\11\4\0"+
+ "\2\11\5\0\2\1\3\0\1\11\4\0\2\11\4\0"+
+ "\3\1\1\0\1\5\1\15\1\1\2\0\1\11\1\0"+
+ "\1\11\12\0\1\11\12\0\2\11\2\0\1\11\2\0"+
+ "\1\1\13\0\1\11\11\0\2\11\3\0\1\11\2\0"+
+ "\1\11\2\0\1\11\5\0\1\11\6\0\1\11\10\0"+
+ "\3\11\1\0\1\11\3\0\1\11\5\0\3\11\1\1"+
+ "\1\11\15\0\1\11\4\0\1\11\1\1\3\0\2\11"+
+ "\2\0\1\11\13\0\1\11\4\0\1\11\1\1\1\0"+
+ "\1\1\6\0\1\11\6\0\1\11\7\0\1\11\3\0"+
+ "\1\1\1\11\1\0\5\11\4\0\1\11\5\0\1\11"+
+ "\5\0\1\11\2\0\1\11\1\0\1\11\2\0\1\11"+
+ "\5\0\3\11\1\0\1\1\2\0\1\11\7\0\2\11"+
+ "\3\0\1\11\1\0\1\11\2\0\2\11\1\1\2\0"+
+ "\1\1\4\0\1\11\1\1\7\0\1\11\4\0\1\1"+
+ "\4\0\3\11\1\0\1\11\5\0\1\11\1\0\1\11"+
+ "\1\0\1\11\6\0\2\11\1\0\2\11\7\0\1\11"+
+ "\1\0\1\11\2\0\3\11\3\0\3\11\2\0\1\11"+
+ "\1\1\2\11\4\0\4\11\3\1\2\0\1\11\4\0"+
+ "\1\11\1\0\1\11\1\0\1\11\1\0\2\11\1\0"+
+ "\1\11\2\0\1\11\2\0\1\11\1\0\1\11\1\0"+
+ "\2\11\1\1\1\0\2\11\2\0\2\11\2\0\1\1"+
+ "\1\0\1\1";
+
+ private static int [] zzUnpackAttribute() {
+ int [] result = new int[815];
+ int offset = 0;
+ offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackAttribute(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ do result[j++] = value; while (--count > 0);
+ }
+ return j;
+ }
+
+ /** the input device */
+ private java.io.Reader zzReader;
+
+ /** the current state of the DFA */
+ private int zzState;
+
+ /** the current lexical state */
+ private int zzLexicalState = YYINITIAL;
+
+ /** this buffer contains the current text to be matched and is
+ the source of the yytext() string */
+ private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
+
+ /** the textposition at the last accepting state */
+ private int zzMarkedPos;
+
+ /** the textposition at the last state to be included in yytext */
+ private int zzPushbackPos;
+
+ /** the current text position in the buffer */
+ private int zzCurrentPos;
+
+ /** startRead marks the beginning of the yytext() string in the buffer */
+ private int zzStartRead;
+
+ /** endRead marks the last character in the buffer, that has been read
+ from input */
+ private int zzEndRead;
+
+ /** number of newlines encountered up to the start of the matched text */
+ private int yyline;
+
+ /** the number of characters up to the start of the matched text */
+ private int yychar;
+
+ /**
+ * the number of characters from the last newline up to the start of the
+ * matched text
+ */
+ private int yycolumn;
+
+ /**
+ * zzAtBOL == true <=> the scanner is currently at the beginning of a line
+ */
+ private boolean zzAtBOL = true;
+
+ /** zzAtEOF == true <=> the scanner is at the EOF */
+ private boolean zzAtEOF;
+
+ /* user code: */
+ private FixedFormLexerPrepass prepass;
+
+ public FixedFormLexerPhase1(InputStream in, FixedFormLexerPrepass _prepass) {
+ this(in);
+ prepass=_prepass;
+ }
+
+ //unset start of line state
+ private void unsetSOL() {
+ if (yystate()==YYINITIAL) yybegin(YYSTANDARD);
+ }
+
+ public int getLine() {
+ return prepass.getLine(yychar);
+ }
+ public int getCol() {
+ return prepass.getColumn(yychar);
+ }
+
+ private Token token(Terminal terminal)
+ {
+ Token t = new Token();
+ t.setTerminal(terminal);
+ t.setFilename(this.filename);
+ t.setOffset(prepass.getOffset(yychar));
+ t.setLength(prepass.getOffset(yychar+yylength()-1)-prepass.getOffset(yychar)+1);
+ t.setText(terminal == Terminal.T_SCON || terminal == Terminal.T_HCON
+ ? stringBuffer.toString()
+ : yytext());
+ t.setStartLine(prepass.getLine(yychar)+1);
+ t.setStartCol(prepass.getColumn(yychar)+1);
+ t.setEndLine(prepass.getLine(yychar+yylength()-1)+1);
+ t.setEndCol(prepass.getColumn(yychar+yylength()-1)+1);
+
+ return t;
+ }
+
+ private StringBuffer stringBuffer = null;
+ private int hollerithLength = 0;
+
+ private boolean wantEos = false;
+
+ private String filename = "<stdin>";
+ public void setFilename(String fn)
+ {
+ filename = fn;
+ }
+
+ private List/*<NonTreeToken>*/ nonTreeTokens = new LinkedList();
+ public List/*<NonTreeToken>*/ getNonTreeTokens()
+ {
+ return nonTreeTokens;
+ }
+
+ private void storeNonTreeToken()
+ {
+ nonTreeTokens.add(new NonTreeToken(this.filename,
+ prepass.getOffset(yychar), // int offset
+ prepass.getLine(yychar)+1, // int row
+ prepass.getColumn(yychar)+1, // int col
+ yytext()));
+ }
+
+
+ /**
+ * Creates a new scanner
+ * There is also a java.io.InputStream version of this constructor.
+ *
+ * @param in the java.io.Reader to read input from.
+ */
+ FixedFormLexerPhase1(java.io.Reader in) {
+ this.zzReader = in;
+ }
+
+ /**
+ * Creates a new scanner.
+ * There is also java.io.Reader version of this constructor.
+ *
+ * @param in the java.io.Inputstream to read input from.
+ */
+ FixedFormLexerPhase1(java.io.InputStream in) {
+ this(new java.io.InputStreamReader(in));
+ }
+
+
+ /**
+ * Refills the input buffer.
+ *
+ * @return <code>false</code>, iff there was new input.
+ *
+ * @exception java.io.IOException if any I/O-Error occurs
+ */
+ private boolean zzRefill() throws java.io.IOException {
+
+ /* first: make room (if you can) */
+ if (zzStartRead > 0) {
+ System.arraycopy(zzBuffer, zzStartRead,
+ zzBuffer, 0,
+ zzEndRead-zzStartRead);
+
+ /* translate stored positions */
+ zzEndRead-= zzStartRead;
+ zzCurrentPos-= zzStartRead;
+ zzMarkedPos-= zzStartRead;
+ zzPushbackPos-= zzStartRead;
+ zzStartRead = 0;
+ }
+
+ /* is the buffer big enough? */
+ if (zzCurrentPos >= zzBuffer.length) {
+ /* if not: blow it up */
+ char newBuffer[] = new char[zzCurrentPos*2];
+ System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
+ zzBuffer = newBuffer;
+ }
+
+ /* finally: fill the buffer with new input */
+ int numRead = zzReader.read(zzBuffer, zzEndRead,
+ zzBuffer.length-zzEndRead);
+
+ if (numRead < 0) {
+ return true;
+ }
+ else {
+ zzEndRead+= numRead;
+ return false;
+ }
+ }
+
+
+ /**
+ * Closes the input stream.
+ */
+ public final void yyclose() throws java.io.IOException {
+ zzAtEOF = true; /* indicate end of file */
+ zzEndRead = zzStartRead; /* invalidate buffer */
+
+ if (zzReader != null)
+ zzReader.close();
+ }
+
+
+ /**
+ * Resets the scanner to read from a new input stream.
+ * Does not close the old reader.
+ *
+ * All internal variables are reset, the old input stream
+ * <b>cannot</b> be reused (internal buffer is discarded and lost).
+ * Lexical state is set to <tt>ZZ_INITIAL</tt>.
+ *
+ * @param reader the new input stream
+ */
+ public final void yyreset(java.io.Reader reader) {
+ zzReader = reader;
+ zzAtBOL = true;
+ zzAtEOF = false;
+ zzEndRead = zzStartRead = 0;
+ zzCurrentPos = zzMarkedPos = zzPushbackPos = 0;
+ yyline = yychar = yycolumn = 0;
+ zzLexicalState = YYINITIAL;
+ }
+
+
+ /**
+ * Returns the current lexical state.
+ */
+ public final int yystate() {
+ return zzLexicalState;
+ }
+
+
+ /**
+ * Enters a new lexical state
+ *
+ * @param newState the new lexical state
+ */
+ public final void yybegin(int newState) {
+ zzLexicalState = newState;
+ }
+
+
+ /**
+ * Returns the text matched by the current regular expression.
+ */
+ public final String yytext() {
+ return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead );
+ }
+
+
+ /**
+ * Returns the character at position <tt>pos</tt> from the
+ * matched text.
+ *
+ * It is equivalent to yytext().charAt(pos), but faster
+ *
+ * @param pos the position of the character to fetch.
+ * A value from 0 to yylength()-1.
+ *
+ * @return the character at position pos
+ */
+ public final char yycharat(int pos) {
+ return zzBuffer[zzStartRead+pos];
+ }
+
+
+ /**
+ * Returns the length of the matched text region.
+ */
+ public final int yylength() {
+ return zzMarkedPos-zzStartRead;
+ }
+
+
+ /**
+ * Reports an error that occured while scanning.
+ *
+ * In a wellformed scanner (no or only correct usage of
+ * yypushback(int) and a match-all fallback rule) this method
+ * will only be called with things that "Can't Possibly Happen".
+ * If this method is called, something is seriously wrong
+ * (e.g. a JFlex bug producing a faulty scanner etc.).
+ *
+ * Usual syntax/scanner level error handling should be done
+ * in error fallback rules.
+ *
+ * @param errorCode the code of the errormessage to display
+ */
+ private void zzScanError(int errorCode) {
+ String message;
+ try {
+ message = ZZ_ERROR_MSG[errorCode];
+ }
+ catch (ArrayIndexOutOfBoundsException e) {
+ message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
+ }
+
+ throw new Error(message);
+ }
+
+
+ /**
+ * Pushes the specified amount of characters back into the input stream.
+ *
+ * They will be read again by then next call of the scanning method
+ *
+ * @param number the number of characters to be read again.
+ * This number must not be greater than yylength()!
+ */
+ public void yypushback(int number) {
+ if ( number > yylength() )
+ zzScanError(ZZ_PUSHBACK_2BIG);
+
+ zzMarkedPos -= number;
+ }
+
+
+ /**
+ * Resumes scanning until the next regular expression is matched,
+ * the end of input is encountered or an I/O-Error occurs.
+ *
+ * @return the next token
+ * @exception java.io.IOException if any I/O-Error occurs
+ */
+ public Token yylex() throws java.io.IOException, Exception {
+ int zzInput;
+ int zzAction;
+
+ // cached fields:
+ int zzCurrentPosL;
+ int zzMarkedPosL;
+ int zzEndReadL = zzEndRead;
+ char [] zzBufferL = zzBuffer;
+ char [] zzCMapL = ZZ_CMAP;
+
+ int [] zzTransL = ZZ_TRANS;
+ int [] zzRowMapL = ZZ_ROWMAP;
+ int [] zzAttrL = ZZ_ATTRIBUTE;
+ int zzPushbackPosL = zzPushbackPos = -1;
+ boolean zzWasPushback;
+
+ while (true) {
+ zzMarkedPosL = zzMarkedPos;
+
+ yychar+= zzMarkedPosL-zzStartRead;
+
+ boolean zzR = false;
+ for (zzCurrentPosL = zzStartRead; zzCurrentPosL < zzMarkedPosL;
+ zzCurrentPosL++) {
+ switch (zzBufferL[zzCurrentPosL]) {
+ case '\u000B':
+ case '\u000C':
+ case '\u0085':
+ case '\u2028':
+ case '\u2029':
+ yyline++;
+ yycolumn = 0;
+ zzR = false;
+ break;
+ case '\r':
+ yyline++;
+ yycolumn = 0;
+ zzR = true;
+ break;
+ case '\n':
+ if (zzR)
+ zzR = false;
+ else {
+ yyline++;
+ yycolumn = 0;
+ }
+ break;
+ default:
+ zzR = false;
+ yycolumn++;
+ }
+ }
+
+ if (zzR) {
+ // peek one character ahead if it is \n (if we have counted one line too much)
+ boolean zzPeek;
+ if (zzMarkedPosL < zzEndReadL)
+ zzPeek = zzBufferL[zzMarkedPosL] == '\n';
+ else if (zzAtEOF)
+ zzPeek = false;
+ else {
+ boolean eof = zzRefill();
+ zzEndReadL = zzEndRead;
+ zzMarkedPosL = zzMarkedPos;
+ zzBufferL = zzBuffer;
+ if (eof)
+ zzPeek = false;
+ else
+ zzPeek = zzBufferL[zzMarkedPosL] == '\n';
+ }
+ if (zzPeek) yyline--;
+ }
+ zzAction = -1;
+
+ zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
+
+ zzState = zzLexicalState;
+
+ zzWasPushback = false;
+
+ zzForAction: {
+ while (true) {
+
+ if (zzCurrentPosL < zzEndReadL)
+ zzInput = zzBufferL[zzCurrentPosL++];
+ else if (zzAtEOF) {
+ zzInput = YYEOF;
+ break zzForAction;
+ }
+ else {
+ // store back cached positions
+ zzCurrentPos = zzCurrentPosL;
+ zzMarkedPos = zzMarkedPosL;
+ zzPushbackPos = zzPushbackPosL;
+ boolean eof = zzRefill();
+ // get translated positions and possibly new buffer
+ zzCurrentPosL = zzCurrentPos;
+ zzMarkedPosL = zzMarkedPos;
+ zzBufferL = zzBuffer;
+ zzEndReadL = zzEndRead;
+ zzPushbackPosL = zzPushbackPos;
+ if (eof) {
+ zzInput = YYEOF;
+ break zzForAction;
+ }
+ else {
+ zzInput = zzBufferL[zzCurrentPosL++];
+ }
+ }
+ int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
+ if (zzNext == -1) break zzForAction;
+ zzState = zzNext;
+
+ int zzAttributes = zzAttrL[zzState];
+ if ( (zzAttributes & 2) == 2 )
+ zzPushbackPosL = zzCurrentPosL;
+
+ if ( (zzAttributes & 1) == 1 ) {
+ zzWasPushback = (zzAttributes & 4) == 4;
+ zzAction = zzState;
+ zzMarkedPosL = zzCurrentPosL;
+ if ( (zzAttributes & 8) == 8 ) break zzForAction;
+ }
+
+ }
+ }
+
+ // store back cached position
+ zzMarkedPos = zzMarkedPosL;
+ if (zzWasPushback)
+ zzMarkedPos = zzPushbackPosL;
+
+ switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
+ case 47:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_END);
+ }
+ case 200: break;
+ case 98:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_FORMEQ);
+ }
+ case 201: break;
+ case 174:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_BLOCKDATA);
+ }
+ case 202: break;
+ case 71:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_SAVE);
+ }
+ case 203: break;
+ case 146:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_POINTER);
+ }
+ case 204: break;
+ case 20:
+ { throw new Exception("Lexer Error (line " + (getLine()+1) + ", col " + (getCol()+1) + "): String literal spans multiple lines without continuation");
+ }
+ case 205: break;
+ case 86:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_THEN);
+ }
+ case 206: break;
+ case 108:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_READEQ);
+ }
+ case 207: break;
+ case 76:
+ { storeNonTreeToken();
+ }
+ case 208: break;
+ case 137:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_DIRECTEQ);
+ }
+ case 209: break;
+ case 77:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_NONE);
+ }
+ case 210: break;
+ case 177:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_INTRINSIC);
+ }
+ case 211: break;
+ case 55:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ERREQ);
+ }
+ case 212: break;
+ case 50:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_USE);
+ }
+ case 213: break;
+ case 94:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_AND);
+ }
+ case 214: break;
+ case 125:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PUBLIC);
+ }
+ case 215: break;
+ case 10:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_LPAREN);
+ }
+ case 216: break;
+ case 22:
+ { stringBuffer.append('\"');
+ yybegin(YYSTANDARD);
+ wantEos = true;
+ return token(Terminal.T_SCON);
+ }
+ case 217: break;
+ case 24:
+ { throw new Exception("Lexer Error (line " + (getLine()+1) + ", col " + (getCol()+1) + "): Hollerith literal spans multiple lines without continuation");
+ }
+ case 218: break;
+ case 152:
+ { wantEos = true; unsetSOL(); ; return token(Terminal.T_COMPLEX);
+ }
+ case 219: break;
+ case 136:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_DEFAULT);
+ }
+ case 220: break;
+ case 51:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_RCON);
+ }
+ case 221: break;
+ case 195:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDBLOCKDATA);
+ }
+ case 222: break;
+ case 23:
+ { hollerithLength--;
+ stringBuffer.append(yytext());
+ if (hollerithLength==0) {
+ yybegin(YYSTANDARD);
+ wantEos = true;
+ return token(Terminal.T_HCON);
+ }
+ }
+ case 223: break;
+ case 28:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_DO);
+ }
+ case 224: break;
+ case 96:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_BLOCK);
+ }
+ case 225: break;
+ case 18:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_SLASH);
+ }
+ case 226: break;
+ case 121:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_INTENT);
+ }
+ case 227: break;
+ case 2:
+ { yybegin(YYINITIAL); boolean b = wantEos; wantEos = false; if (b) return token(Terminal.T_EOS);
+ }
+ case 228: break;
+ case 3:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_ASTERISK);
+ }
+ case 229: break;
+ case 156:
+ { wantEos = true; yybegin(OPERATORorFORMAT); return token(Terminal.T_OPERATOR);
+ }
+ case 230: break;
+ case 141:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ACTIONEQ);
+ }
+ case 231: break;
+ case 82:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_CALL);
+ }
+ case 232: break;
+ case 161:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_FUNCTION);
+ }
+ case 233: break;
+ case 175:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_IOLENGTHEQ);
+ }
+ case 234: break;
+ case 8:
+ { stringBuffer = new StringBuffer();
+ stringBuffer.append('\"');
+ yybegin(DBLQUOTED);
+ }
+ case 235: break;
+ case 11:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_COMMA);
+ }
+ case 236: break;
+ case 59:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_GE);
+ }
+ case 237: break;
+ case 166:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_CONTINUE);
+ }
+ case 238: break;
+ case 17:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PERCENT);
+ }
+ case 239: break;
+ case 46:
+ { stringBuffer.append('\"');
+ }
+ case 240: break;
+ case 80:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_LENEQ);
+ }
+ case 241: break;
+ case 4:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_ICON);
+ }
+ case 242: break;
+ case 182:
+ { wantEos = true; unsetSOL(); ; return token(Terminal.T_CHARACTER);
+ }
+ case 243: break;
+ case 92:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENTRY);
+ }
+ case 244: break;
+ case 1:
+ { yypushback(1);
+ int state=yystate();
+ yybegin(IDENT);
+ Token token = yylex();
+ yybegin(state);
+ return token;
+ }
+ case 245: break;
+ case 191:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDFUNCTION);
+ }
+ case 246: break;
+ case 70:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_FMTEQ);
+ }
+ case 247: break;
+ case 151:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_LOGICAL);
+ }
+ case 248: break;
+ case 5:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_PLUS);
+ }
+ case 249: break;
+ case 160:
+ { wantEos = true; yybegin(IMPLICIT); return token(Terminal.T_IMPLICIT);
+ }
+ case 250: break;
+ case 81:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_CASE);
+ }
+ case 251: break;
+ case 69:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_FILE);
+ }
+ case 252: break;
+ case 37:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_SLASHEQ);
+ }
+ case 253: break;
+ case 116:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_DELIMEQ);
+ }
+ case 254: break;
+ case 62:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_LE);
+ }
+ case 255: break;
+ case 148:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PRIVATE);
+ }
+ case 256: break;
+ case 45:
+ { stringBuffer.append('\'');
+ }
+ case 257: break;
+ case 25:
+ { throw new Exception("Lexer Error (line " + (getLine()+1) + ", col " + (getCol()+1) + "): Unexpected character " + yytext());
+ }
+ case 258: break;
+ case 112:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_WHILE);
+ }
+ case 259: break;
+ case 58:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_OR);
+ }
+ case 260: break;
+ case 171:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ELSEWHERE);
+ }
+ case 261: break;
+ case 118:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_NEQV);
+ }
+ case 262: break;
+ case 117:
+ { wantEos = true; unsetSOL(); ; return token(Terminal.T_DOUBLE);
+ }
+ case 263: break;
+ case 109:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_RECLEQ);
+ }
+ case 264: break;
+ case 147:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PROGRAM);
+ }
+ case 265: break;
+ case 38:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_SLASHSLASH);
+ }
+ case 266: break;
+ case 143:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_INTEGER);
+ }
+ case 267: break;
+ case 107:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_UNITEQ);
+ }
+ case 268: break;
+ case 79:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_NMLEQ);
+ }
+ case 269: break;
+ case 13:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_EQUALS);
+ }
+ case 270: break;
+ case 179:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PARAMETER);
+ }
+ case 271: break;
+ case 184:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDPROGRAM);
+ }
+ case 272: break;
+ case 190:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_READWRITEEQ);
+ }
+ case 273: break;
+ case 139:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_OPENEDEQ);
+ }
+ case 274: break;
+ case 27:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_POW);
+ }
+ case 275: break;
+ case 100:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_SIZEEQ);
+ }
+ case 276: break;
+ case 64:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_BCON);
+ }
+ case 277: break;
+ case 169:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDMODULE);
+ }
+ case 278: break;
+ case 168:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDSELECT);
+ }
+ case 279: break;
+ case 39:
+ { stringBuffer = new StringBuffer();
+ String text = yytext();
+ stringBuffer.append(text);
+ hollerithLength=Integer.parseInt(text.substring(0,text.length()-1));
+ if (hollerithLength==0) throw new Exception("Lexer Error (line " + (getLine()+1) + ", col " + (getCol()+1) + "): Invalid length of hollerith literal: 0");
+ yybegin(HOLLERITH);
+ }
+ case 280: break;
+ case 16:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_LESSTHAN);
+ }
+ case 281: break;
+ case 163:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_NEXTRECEQ);
+ }
+ case 282: break;
+ case 159:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ALLOCATE);
+ }
+ case 283: break;
+ case 74:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PADEQ);
+ }
+ case 284: break;
+ case 149:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_NULLIFY);
+ }
+ case 285: break;
+ case 93:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_EQV);
+ }
+ case 286: break;
+ case 135:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDTYPE);
+ }
+ case 287: break;
+ case 157:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_OPTIONAL);
+ }
+ case 288: break;
+ case 162:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_SEQUENCE);
+ }
+ case 289: break;
+ case 91:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDIF);
+ }
+ case 290: break;
+ case 73:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_GOTO);
+ }
+ case 291: break;
+ case 134:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDFILE);
+ }
+ case 292: break;
+ case 122:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_FORALL);
+ }
+ case 293: break;
+ case 52:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_EXIT);
+ }
+ case 294: break;
+ case 187:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_FORMATTEDEQ);
+ }
+ case 295: break;
+ case 95:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_NOT);
+ }
+ case 296: break;
+ case 42:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_DCON);
+ }
+ case 297: break;
+ case 180:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_PRECISION);
+ }
+ case 298: break;
+ case 66:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_OPEN);
+ }
+ case 299: break;
+ case 101:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_STATEQ);
+ }
+ case 300: break;
+ case 26:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_IDENT);
+ }
+ case 301: break;
+ case 129:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_RETURN);
+ }
+ case 302: break;
+ case 36:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_LESSTHANEQ);
+ }
+ case 303: break;
+ case 188:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_SELECTCASE);
+ }
+ case 304: break;
+ case 186:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ASSIGNMENT);
+ }
+ case 305: break;
+ case 32:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_EQEQ);
+ }
+ case 306: break;
+ case 60:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_GT);
+ }
+ case 307: break;
+ case 72:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_STOP);
+ }
+ case 308: break;
+ case 133:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_WRITEEQ);
+ }
+ case 309: break;
+ case 123:
+ { wantEos = true; yybegin(OPERATORorFORMAT); return token(Terminal.T_FORMAT);
+ }
+ case 310: break;
+ case 49:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_OUT);
+ }
+ case 311: break;
+ case 127:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_COMMON);
+ }
+ case 312: break;
+ case 105:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_CLOSE);
+ }
+ case 313: break;
+ case 34:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_TO);
+ }
+ case 314: break;
+ case 145:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_STATUSEQ);
+ }
+ case 315: break;
+ case 40:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PCON);
+ }
+ case 316: break;
+ case 19:
+ { stringBuffer.append( yytext() );
+ }
+ case 317: break;
+ case 155:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDWHERE);
+ }
+ case 318: break;
+ case 89:
+ { wantEos = true; return token(Terminal.T_XIMPL);
+ }
+ case 319: break;
+ case 9:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_UNDERSCORE);
+ }
+ case 320: break;
+ case 83:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_READ);
+ }
+ case 321: break;
+ case 113:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_WRITE);
+ }
+ case 322: break;
+ case 68:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_ZCON);
+ }
+ case 323: break;
+ case 193:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ALLOCATABLE);
+ }
+ case 324: break;
+ case 6:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_MINUS);
+ }
+ case 325: break;
+ case 170:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ELEMENTAL);
+ }
+ case 326: break;
+ case 189:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_SUBROUTINE);
+ }
+ case 327: break;
+ case 173:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_BACKSPACE);
+ }
+ case 328: break;
+ case 35:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_GREATERTHANEQ);
+ }
+ case 329: break;
+ case 63:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_LT);
+ }
+ case 330: break;
+ case 57:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_EQ);
+ }
+ case 331: break;
+ case 87:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_TYPE);
+ }
+ case 332: break;
+ case 144:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_INQUIRE);
+ }
+ case 333: break;
+ case 176:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_INTERFACE);
+ }
+ case 334: break;
+ case 54:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ELSE);
+ }
+ case 335: break;
+ case 41:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_XCON);
+ }
+ case 336: break;
+ case 150:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_NUMBEREQ);
+ }
+ case 337: break;
+ case 110:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_KINDEQ);
+ }
+ case 338: break;
+ case 197:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_UNFORMATTEDEQ);
+ }
+ case 339: break;
+ case 85:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_RECEQ);
+ }
+ case 340: break;
+ case 172:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_DIMENSION);
+ }
+ case 341: break;
+ case 61:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_NE);
+ }
+ case 342: break;
+ case 43:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_LPARENSLASH);
+ }
+ case 343: break;
+ case 199:
+ { wantEos = true; unsetSOL(); ; return token(Terminal.T_DOUBLEPRECISION);
+ }
+ case 344: break;
+ case 30:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_IN);
+ }
+ case 345: break;
+ case 119:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_TRUE);
+ }
+ case 346: break;
+ case 111:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_WHERE);
+ }
+ case 347: break;
+ case 140:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ACCESSEQ);
+ }
+ case 348: break;
+ case 178:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_POSITIONEQ);
+ }
+ case 349: break;
+ case 21:
+ { stringBuffer.append('\'');
+ yybegin(YYSTANDARD);
+ wantEos = true;
+ return token(Terminal.T_SCON);
+ }
+ case 350: break;
+ case 196:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDINTERFACE);
+ }
+ case 351: break;
+ case 14:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_COLON);
+ }
+ case 352: break;
+ case 75:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PURE);
+ }
+ case 353: break;
+ case 181:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PROCEDURE);
+ }
+ case 354: break;
+ case 7:
+ { stringBuffer = new StringBuffer();
+ stringBuffer.append('\'');
+ yybegin(QUOTED);
+ }
+ case 355: break;
+ case 56:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_DATA);
+ }
+ case 356: break;
+ case 132:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_TARGET);
+ }
+ case 357: break;
+ case 31:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_GO);
+ }
+ case 358: break;
+ case 65:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_OCON);
+ }
+ case 359: break;
+ case 115:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ELSEIF);
+ }
+ case 360: break;
+ case 104:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_NAMEEQ);
+ }
+ case 361: break;
+ case 102:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PAUSE);
+ }
+ case 362: break;
+ case 29:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_IF);
+ }
+ case 363: break;
+ case 90:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDDO);
+ }
+ case 364: break;
+ case 97:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_INOUT);
+ }
+ case 365: break;
+ case 48:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_XDOP);
+ }
+ case 366: break;
+ case 78:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_NULL);
+ }
+ case 367: break;
+ case 106:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_CYCLE);
+ }
+ case 368: break;
+ case 120:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_BLANKEQ);
+ }
+ case 369: break;
+ case 103:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PRINT);
+ }
+ case 370: break;
+ case 185:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_DEALLOCATE);
+ }
+ case 371: break;
+ case 164:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_NAMELIST);
+ }
+ case 372: break;
+ case 126:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_NAMEDEQ);
+ }
+ case 373: break;
+ case 44:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_SLASHRPAREN);
+ }
+ case 374: break;
+ case 153:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_EXTERNAL);
+ }
+ case 375: break;
+ case 12:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_RPAREN);
+ }
+ case 376: break;
+ case 165:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_CONTAINS);
+ }
+ case 377: break;
+ case 130:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_REWIND);
+ }
+ case 378: break;
+ case 128:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_RESULT);
+ }
+ case 379: break;
+ case 99:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_FILEEQ);
+ }
+ case 380: break;
+ case 194:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_SEQUENTIALEQ);
+ }
+ case 381: break;
+ case 183:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_RECURSIVE);
+ }
+ case 382: break;
+ case 198:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDSUBROUTINE);
+ }
+ case 383: break;
+ case 33:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_EQGREATERTHAN);
+ }
+ case 384: break;
+ case 192:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_EQUIVALENCE);
+ }
+ case 385: break;
+ case 124:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_SELECT);
+ }
+ case 386: break;
+ case 131:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_MODULE);
+ }
+ case 387: break;
+ case 167:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDFORALL);
+ }
+ case 388: break;
+ case 84:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_REAL);
+ }
+ case 389: break;
+ case 138:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_FALSE);
+ }
+ case 390: break;
+ case 67:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ONLY);
+ }
+ case 391: break;
+ case 53:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDEQ);
+ }
+ case 392: break;
+ case 15:
+ { wantEos = true; unsetSOL(); return token(Terminal.T_GREATERTHAN);
+ }
+ case 393: break;
+ case 142:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_IOSTATEQ);
+ }
+ case 394: break;
+ case 158:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ADVANCEEQ);
+ }
+ case 395: break;
+ case 154:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDBLOCK);
+ }
+ case 396: break;
+ case 88:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_FCON);
+ }
+ case 397: break;
+ case 114:
+ { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_EXISTEQ);
+ }
+ case 398: break;
+ default:
+ if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
+ zzAtEOF = true;
+ switch (zzLexicalState) {
+ case OPERATORorFORMAT: {
+ wantEos = false; yybegin(YYSTANDARD); return token(Terminal.END_OF_INPUT);
+ }
+ case 816: break;
+ case DBLQUOTED: {
+ throw new Exception("Lexer Error (line " + (getLine()+1) + ", col " + (getCol()+1) + "): End of file encountered before string literal terminated");
+ }
+ case 817: break;
+ case QUOTED: {
+ throw new Exception("Lexer Error (line " + (getLine()+1) + ", col " + (getCol()+1) + "): End of file encountered before string literal terminated");
+ }
+ case 818: break;
+ case YYINITIAL: {
+ wantEos = false; yybegin(YYSTANDARD); return token(Terminal.END_OF_INPUT);
+ }
+ case 819: break;
+ case HOLLERITH: {
+ throw new Exception("Lexer Error (line " + (getLine()+1) + ", col " + (getCol()+1) + "): End of file encountered before hollerith literal terminated");
+ }
+ case 820: break;
+ case YYSTANDARD: {
+ wantEos = false; yybegin(YYSTANDARD); return token(Terminal.END_OF_INPUT);
+ }
+ case 821: break;
+ case IMPLICIT: {
+ wantEos = false; yybegin(YYSTANDARD); return token(Terminal.END_OF_INPUT);
+ }
+ case 822: break;
+ default:
+ return null;
+ }
+ }
+ else {
+ zzScanError(ZZ_NO_MATCH);
+ }
+ }
+ }
+ }
+
+
+}
diff --git a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FixedFormLexerPhase2.java b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FixedFormLexerPhase2.java
new file mode 100644
index 00000000..c0cb6f17
--- /dev/null
+++ b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FixedFormLexerPhase2.java
@@ -0,0 +1,80 @@
+package org.eclipse.photran.internal.core.f95modelparser;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+
+import org.eclipse.photran.internal.core.f95modelparser.Parser;
+import org.eclipse.photran.internal.core.f95modelparser.Terminal;
+import org.eclipse.photran.internal.core.f95modelparser.Token;
+
+/**
+ * This is the lexical analyzer that is used directly in the Fortran parser.
+ *
+ * @author Dirk Rossow
+ *
+ * @see FixedFormLexerPhase1
+ * @see FreeFormLexerPhase2
+ * @see Parser
+ */
+class FixedFormLexerPhase2 implements ILexer
+{
+ private FreeFormLexerPhase2 freeLexer2;
+
+ private Token nextToken = null;
+
+ public FixedFormLexerPhase2(InputStream in, String filename)
+ {
+ final FixedFormLexerPrepass prepass = new FixedFormLexerPrepass(in);
+ InputStream prepassReader = new InputStream()
+ {
+ public int read() throws IOException
+ {
+ try
+ {
+ return prepass.read();
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ return -1;
+ }
+ }
+ };
+
+ FixedFormLexerPhase1 phase1 = new FixedFormLexerPhase1(prepassReader, prepass);
+ freeLexer2 = new FreeFormLexerPhase2(phase1, filename);
+ }
+
+ public Token yylex() throws Exception
+ {
+ if (nextToken == null) nextToken = freeLexer2.yylex();
+ Token t = nextToken;
+ nextToken = freeLexer2.yylex();
+
+ if (t.getTerminal() == Terminal.T_IDENT)
+ {
+ while ((nextToken.getTerminal() == Terminal.T_IDENT)
+ || (nextToken.getTerminal() == Terminal.T_ICON)
+ || (nextToken.getTerminal() == Terminal.T_UNDERSCORE))
+ {
+ t.setEndLine(nextToken.getEndLine());
+ t.setEndCol(nextToken.getEndCol());
+ t.setText(t.getText() + nextToken.getText());
+ t.setLength(t.getText().length());
+ nextToken = freeLexer2.yylex();
+ }
+ }
+ return t;
+ }
+
+ public void setFilename(String filename)
+ {
+ freeLexer2.setFilename(filename);
+ }
+
+ public List/*<NonTreeToken>*/ getNonTreeTokens()
+ {
+ return freeLexer2.getNonTreeTokens();
+ }
+}
diff --git a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FixedFormLexerPrepass.java b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FixedFormLexerPrepass.java
new file mode 100644
index 00000000..922b5844
--- /dev/null
+++ b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FixedFormLexerPrepass.java
@@ -0,0 +1,382 @@
+package org.eclipse.photran.internal.core.f95modelparser;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+
+/**
+ * FixedFormLexerPrepass preprocesses the input stream. It discards all
+ * whitespaces and comment lines and concatenates continuation lines. Additional
+ * it holds a mapping to the character-positions in the file (for correct
+ * start/end line/col in the Token objects).
+ *
+ * @author Dirk Rossow
+ */
+class FixedFormLexerPrepass {
+ static final int inStart=0;
+ static final int inHollerith=1;
+ static final int inDblQuote=2;
+ static final int inDblQuoteEnd=3;
+ static final int inQuote=4;
+ static final int inQuoteEnd=5;
+
+ private int state = inStart;
+ int hollerithLength = -2; //-1: hollerith could start, -2: hollerith cant start
+
+ private int actLinePos = 0;
+ private PreLexerLine actLine = null;
+ private OffsetLineReader in;
+
+ private DynamicIntArray lineMapping = new DynamicIntArray(1000);
+ private DynamicIntArray columnMapping = new DynamicIntArray(1000);
+ private DynamicIntArray offsetMapping = new DynamicIntArray(1000);
+
+
+ private int EOFLinePos=0;
+ private int EOFColPos=0;
+ private int EOFOffsetPos=0;
+
+
+ public FixedFormLexerPrepass(Reader in) {
+ this.in = new OffsetLineReader(in);
+ }
+
+ public FixedFormLexerPrepass(InputStream in) {
+ this(new InputStreamReader(in));
+ }
+
+ public int getLine(int absCharPos) {
+ if (absCharPos<0) return 0;
+ return lineMapping.get(absCharPos);
+ }
+
+ public int getColumn(int absCharPos) {
+ if (absCharPos<0) return 0;
+ return columnMapping.get(absCharPos);
+ }
+
+ public int getOffset(int absCharPos) {
+ if (absCharPos<0) return absCharPos;
+ return offsetMapping.get(absCharPos);
+ }
+
+ public int read() throws Exception {
+ int c = internalRead();
+ //System.out.print((char)c);
+ return c;
+ }
+
+ private void markPosition(int line, int col, int offset) {
+ offsetMapping.pushBack(offset);
+ lineMapping.pushBack(line);
+ columnMapping.pushBack(col);
+ }
+
+ private int internalRead() throws Exception {
+
+ for (;;) {
+ if (actLine==null) {
+ actLine=getNextNonCommentLine();
+ if (actLine==null) {
+ markPosition(EOFLinePos,EOFColPos,EOFOffsetPos);
+ return -1;
+ }
+ else actLinePos=0;
+ } else if (actLinePos==actLine.length()
+ || actLinePos==PreLexerLine.COLWIDTH) { //test if continuation-line follows, else send \n
+
+ PreLexerLine prevLine=actLine;
+ actLine=getNextNonCommentLine();
+ if (actLine==null) { //end of file
+ hollerithLength=-2;
+ state=inStart;
+ markPosition(prevLine.linePos,actLinePos,prevLine.offset+actLinePos+1);
+ return '\n';
+ } else if (actLine.type==PreLexerLine.CONTINUATION) {
+ actLinePos=6;
+ } else {
+ actLinePos=0;
+ hollerithLength=-2;
+ state=inStart;
+ markPosition(prevLine.linePos,prevLine.length(),prevLine.offset+prevLine.length());
+ return '\n';
+ }
+ }
+
+ actLinePos = getNextSigPos(actLine,actLinePos);
+ //TODO: save non-tree tokens
+
+ if (actLinePos<0) {
+ actLinePos=actLine.length();
+ } else {
+ markPosition(actLine.linePos,actLinePos,actLine.offset+actLinePos);
+ return actLine.charAt(actLinePos++);
+ }
+ }
+ }
+
+ private PreLexerLine getNextNonCommentLine() {
+ for (;;) {
+ PreLexerLine line = getNextLine();
+ if (line==null) return null;
+ if (line.type!=PreLexerLine.COMMENT) return line;
+ else {
+ //TODO: save non-tree tokens
+ }
+ }
+ }
+
+ private PreLexerLine getNextLine() {
+ try {
+ int actOffset=in.getOffset();
+ String line = in.readLine();
+ if (line==null) return null;
+ EOFLinePos=in.getLineNumber()-1;
+ EOFColPos=line.length();
+ EOFOffsetPos=actOffset;
+ PreLexerLine pll = new PreLexerLine(line,in.getLineNumber()-1,actOffset);
+ return pll;
+ } catch (IOException e) {
+ return null;
+ }
+ }
+
+ // return: -1 : end of line reached
+ private int getNextSigPos(PreLexerLine line, int startPos) {
+
+ for (int charPos=startPos;charPos<line.length();++charPos) {
+ char c = line.charAt(charPos);
+
+ if (line.type==PreLexerLine.CPPDIRECTIVE) return charPos;
+ if (line.type==PreLexerLine.CONTINUATION && charPos<=5) continue;
+
+ if (state==inStart) {
+ if (c==' ' || c=='\t') continue;
+ else if (c=='!') {
+ return -1; // rest of line is comment
+ } else if (charPos<=4 && !Character.isDigit(c)) continue; //only allow digits(label) in column 0-4
+ else if (c=='\'') {
+ hollerithLength=-1;
+ state=inQuote;
+ } else if (c=='\"') {
+ hollerithLength=-1;
+ state=inDblQuote;
+ } else if ((c=='h') || (c=='H')) {
+ if (hollerithLength>0) state=inHollerith;
+ else if (hollerithLength<0) hollerithLength=-2;
+ } else if (hollerithLength!=-2 && Character.isDigit(c)) {
+ if (hollerithLength==-1) hollerithLength=Character.digit(c,10);
+ else hollerithLength=hollerithLength*10+Character.digit(c,10);
+ } else if (Character.isLetter(c) || c=='_') {
+ hollerithLength=-2;
+ } else {
+ if (charPos==0) hollerithLength=-2;// ignore label at start of line
+ else hollerithLength=-1;
+ }
+ return charPos;
+
+ } else if (state==inQuote) {
+ if (c=='\'') state=inQuoteEnd;
+ return charPos;
+ } else if (state==inQuoteEnd) {
+ if (c=='\'') {
+ state=inQuote;
+ return charPos;
+ } else {
+ state=inStart;
+ charPos--;
+ }
+ } else if (state==inDblQuote) {
+ if (c=='\"') state=inQuoteEnd;
+ return charPos;
+ } else if (state==inDblQuoteEnd) {
+ if (c=='\"') {
+ state=inDblQuote;
+ return charPos;
+ } else {
+ state=inStart;
+ charPos--;
+ }
+ } else if (state==inHollerith) {
+ hollerithLength--;
+ if (hollerithLength==0) state=inStart;
+ return charPos;
+ } else { //undefined state
+ throw new RuntimeException("Undefined state in FixedFormPreLexer");
+ }
+ }
+ return -1; //end of line reached
+ }
+}
+
+class DynamicIntArray {
+ final double RESIZEFAC=1.1;
+ final int RESIZEADD=10;
+
+ private int[] v=null;
+ private int length=0;
+
+ DynamicIntArray(int reserveSize) {
+ ensureSize(reserveSize);
+ }
+
+ DynamicIntArray() {
+ }
+
+ int length() {
+ return length;
+ }
+
+ int get(int pos) {
+ if (pos<0 || pos>=length) {
+ throw new ArrayIndexOutOfBoundsException(pos);
+ }
+ return v[pos];
+ }
+
+ void pushBack(int value) {
+ ensureSize(length+1);
+ v[length]=value;
+ length++;
+ }
+
+ private void ensureSize(int size) {
+ if (v==null || v.length<size) {
+ int[] newArray = new int[(int) (size*RESIZEFAC+RESIZEADD)];
+ if (v!=null) System.arraycopy(v,0,newArray,0,length);
+ v=newArray;
+ }
+ }
+
+
+}
+
+class PreLexerLine {
+ static public final int COLWIDTH=72;
+
+ static final int COMMENT=0;
+ static final int CONTINUATION=1;
+ static final int STMT=2;
+ static final int CPPDIRECTIVE=3;
+
+ final int linePos;
+ final int offset;
+ final int type;
+ private final String lineText;
+
+
+
+ PreLexerLine(String _lineText, int linePos, int offset) {
+ this.linePos=linePos;
+ this.offset=offset;
+
+ /* truncate anything beyond 72 characters */
+ if (_lineText.length()>COLWIDTH) {
+ lineText=_lineText.substring(0,COLWIDTH);
+ } else {
+ lineText=_lineText;
+ }
+
+
+ String trimmedText=lineText.trim();
+
+//check for empty line
+ if (trimmedText.length()==0) type=COMMENT;
+
+// check for f77-style comment
+ else if (lineText.charAt(0)=='C'||
+ lineText.charAt(0)=='c'||
+ lineText.charAt(0)=='*'||
+ lineText.charAt(0)=='$') type=COMMENT;
+
+//check for f90-style comment
+ else if (trimmedText.startsWith("!")) type=COMMENT;
+
+//check for cpp-dirctive
+ else if (trimmedText.startsWith("#")) type=CPPDIRECTIVE;
+
+//check if line is empty up to COLWIDTH
+ else if (lineText.length()>COLWIDTH && lineText.substring(0,COLWIDTH).trim().length()==0) type=COMMENT;
+
+//check for tab in column 0-5
+ else if (lineText.indexOf('\t')>=0 && lineText.indexOf('\t')<=5) type=STMT;
+
+//check for continuation
+ else if (lineText.length()>=6 &&
+ lineText.charAt(5)!='0' && lineText.charAt(5)!=' ') type = CONTINUATION;
+
+ else type=STMT;
+ }
+
+ public int length() {
+ return lineText.length();
+ }
+
+ public char charAt(int pos) {
+ return lineText.charAt(pos);
+ }
+
+
+ public String toString() {
+ return "Line "+linePos+": "+lineText;
+ }
+}
+
+
+class OffsetLineReader {
+ private BufferedReader bReader;
+ private StringBuffer sBuf;
+ private int lineNumber=0;
+ private int offset=0;
+
+ private int charBuf=-1;
+
+ public OffsetLineReader(Reader reader) {
+ bReader=new BufferedReader(reader);
+ sBuf=new StringBuffer();
+ }
+
+ private int getNextChar() throws IOException {
+ int c = bReader.read();
+ if (c!=-1) offset++;
+ return c;
+ }
+
+ public String readLine() throws IOException {
+ if (charBuf<0) {
+ charBuf=getNextChar();
+ if (charBuf<0) return null;
+ }
+
+ sBuf.setLength(0);
+ while(true) {
+ if (charBuf=='\n') {
+ charBuf=getNextChar();
+ lineNumber++;
+ break;
+ } else if (charBuf=='\r') {
+ charBuf=getNextChar();
+ if (charBuf=='\n') charBuf=getNextChar();
+ lineNumber++;
+ break;
+ } else if (charBuf==-1) {
+ break;
+ } else {
+ sBuf.append((char) charBuf);
+ charBuf=getNextChar();
+ }
+ }
+ return sBuf.toString();
+ }
+
+ public int getLineNumber() {
+ return lineNumber;
+ }
+
+ public int getOffset() {
+ if (charBuf<0) return offset;
+ else return offset-1;
+ }
+}
diff --git a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/Fortran95-Model.bnf b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/Fortran95-Model.bnf
new file mode 100644
index 00000000..933c344f
--- /dev/null
+++ b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/Fortran95-Model.bnf
@@ -0,0 +1,2557 @@
+(Generated header code. Please do not edit manually.)
+<<< BEGIN GENERATED HEADER >>>
+%name {:Fortran 95 (Photran Model Builder):}
+%notes {:Rex Grammar for Fortran 95
+
+Author\: Jeffrey Overbey, based on an Eli grammar
+by W.B. Clodius, W.M. Waite, J. Hoffmann, and R. Jakob
+available from http\://members.aol.com/wclodius/Parse95.html
+
+The Eli grammar on which this is based is
+Copyright (c) <1999> <W. B. Clodius and W. M. Waite>
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without restriction,
+including without limitation the rights to use, copy, modify,
+merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software
+is furnished to do so, subject to the following conditions\:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+Changes\:
+19.04.2005 Dirk Rossow\: Added T_Hcon Hollerith Constants
+19.04.2005 Dirk Rossow\: Modified xUFPrimary with <xSubstringRange>
+:}
+%language {:Java 2:}
+%parsertype {:Compact LALR(1):}
+%parseraction {:Run literal code embedded in grammar:}
+%transformations {:Remove epsilon-productions (empty productions) before constructing parse table:}
+%option {:PG:}{:production reductions class name:}{:BuildModelProductionReductions:}
+%option {:PG:}{:parser action class name:}{:BuildModelParserAction:}
+%option {:PG:}{:pluggable parser actions:}{:true:}
+%option {:PG:}{:parser class name:}{:Parser:}
+%option {:PG:}{:generate token class:}{:false:}
+%option {:PG:}{:lexer class or interface:}{:ILexer:}
+%eclipsefolder {:/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser:}
+%directory {::}
+%namespace {:org.eclipse.photran.internal.core.f95modelparser:}
+%import {:import java.util.List;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.Iterator;
+import org.eclipse.photran.internal.core.f95parser.*;
+import org.eclipse.photran.internal.core.model.FortranElement;
+import org.eclipse.cdt.core.model.CModelException;
+:}
+%insert {:private class M
+\{
+ private Map/*<FortranElement, FortranElementInfo>*/ allElements = new HashMap();
+
+ public Map/*<FortranElement, FortranElementInfo>*/ getAllElements()
+ \{
+ return allElements;
+ \}
+
+ public List/*<FortranElement>*/list(List list, FortranElement node)
+ \{
+ if (list == null) list = new LinkedList();
+ if (node != null) list.add(node);
+ return list;
+ \}
+
+ public List/*<FortranElement>*/list(FortranElement node)
+ \{
+ return list(new LinkedList(), node);
+ \}
+
+ public FortranElement mainProgram(Token nameToken, List/*<FortranElement>*/children)
+ \{
+ FortranElement e = new FortranElement.MainProgram(null, nameToken);
+ reparent(children, e);
+ return newElement(e);
+ \}
+
+ public FortranElement module(Token nameToken, List/*<FortranElement>*/children)
+ \{
+ FortranElement e = new FortranElement.Module(null, nameToken);
+ reparent(children, e);
+ return newElement(e);
+ \}
+
+ public FortranElement functionSubprogram(Token nameToken)
+ \{
+ return newElement(new FortranElement.Function(null, nameToken));
+ \}
+
+ public FortranElement subroutineSubprogram(Token nameToken)
+ \{
+ return newElement(new FortranElement.Subroutine(null, nameToken));
+ \}
+
+ public FortranElement blockData(Token nameToken)
+ \{
+ return newElement(new FortranElement.BlockData(null, nameToken));
+ \}
+
+ private void reparent(List children, FortranElement parent)
+ \{
+ if (children == null) return;
+
+ //try
+ //\{
+ Iterator it = children.iterator();
+ while (it.hasNext())
+ \{
+ FortranElement c = (FortranElement)it.next();
+ c.setParent(parent);
+ //parent.addChild(c);
+ //if (parent instanceof Parent) ((Parent)parent).addChild(c);
+ \}
+ //\}
+ //catch (CModelException x)
+ //\{
+ // x.printStackTrace();
+ //\}
+ \}
+
+ private FortranElement newElement(FortranElement e)
+ \{
+ try \{ allElements.put(e, e.getElementInfo()); \}
+ catch (CModelException x) \{;\}
+ return e;
+ \}
+\}
+
+protected M m = new M();
+
+:}
+%init {::}
+%deinit {::}
+%syntaxerror {:throw new SyntaxError(lookaheadToken);:}
+%left {::}
+%right {::}
+%precchains {::}
+<<< END GENERATED HEADER >>>
+
+%reduce [xSFVarName] %insteadof [xSFDummyArgName]
+%shift T_COMMA [xIoControlSpecList]
+
+<< Section: Section 2 Rules >>
+
+# R201
+%type Map/*<FortranElement, FortranElementInfo>*/
+<xExecutableProgram> ::=
+ <xProgramUnit> {: return m.getAllElements(); :}
+ | <xExecutableProgram> <xProgramUnit> {: return m.getAllElements(); :}
+ ;
+
+# R202
+%type FortranElement
+<xProgramUnit> ::=
+ <xMainProgram> {: return $1; :}
+ | <xFunctionSubprogram> {: return $1; :}
+ | <xSubroutineSubprogram> {: return $1; :}
+ | <xModule> {: return $1; :}
+ | <xBlockDataSubprogram> {: return $1; :}
+ ;
+
+# R203 chain rule eliminated
+
+# R1101 desn"t ensure ordering as the standard requires;
+%type FortranElement
+<xMainProgram> ::=
+ <xMainRange> {: return m.mainProgram(null, $1); :}
+ | <xProgramStmt> <xMainRange> {: return m.mainProgram($1, $2); :}
+ ;
+
+%type List/*<FortranElement>*/
+<xMainRange> ::=
+ <xBody> <xEndProgramStmt>
+ | <xBodyPlusInternals> <xEndProgramStmt> {: return $1; :}
+ | <xEndProgramStmt>
+ ;
+
+<xBody> ::=
+ <xBodyConstruct>
+ | <xBody> <xBodyConstruct>
+ ;
+
+<xBodyConstruct> ::=
+ <xSpecificationPartConstruct>
+ | <xExecutableConstruct>
+ ;
+
+# R203 chain rule omitted
+
+<< Section: Section 12 Rules >>
+
+#R1216
+%type FortranElement
+<xFunctionSubprogram> ::=
+ <xFunctionStmt> <xFunctionRange> {: return m.functionSubprogram($1); :}
+ ;
+
+<xFunctionRange> ::=
+ <xBody> <xEndFunctionStmt>
+ | <xEndFunctionStmt>
+ | <xBodyPlusInternals> <xEndFunctionStmt>
+ ;
+
+# R1221
+%type FortranElement
+<xSubroutineSubprogram> ::=
+ <xSubroutineStmt> <xSubroutineRange> {: return m.subroutineSubprogram($1); :}
+ ;
+
+<xSubroutineRange> ::=
+ <xBody> <xEndSubroutineStmt>
+ | <xEndSubroutineStmt>
+ | <xBodyPlusInternals> <xEndSubroutineStmt>
+ ;
+
+<< Section: Section 11 Rules >>
+
+# R1104
+%type FortranElement
+<xModule> ::=
+ <xModuleStmt> <xModuleBlock> {: return m.module($1, $2); :}
+ ;
+%type List/*<FortranElement>*/
+<xModuleBlock> ::=
+ <xModuleBody> <xEndModuleStmt> {: return $1; :}
+ | <xEndModuleStmt>
+ ;
+%type List/*<FortranElement>*/
+<xModuleBody> ::=
+ <xSpecificationPartConstruct>
+ | <xModuleBody> <xSpecificationPartConstruct> {: return $1; :}
+ | <xModuleSubprogramPartConstruct> {: return m.list($1); :}
+ | <xModuleBody> <xModuleSubprogramPartConstruct> {: return m.list($1, $2); :}
+ ;
+
+# R1112
+%type FortranElement
+<xBlockDataSubprogram> ::=
+ <xBlockDataStmt> <xBlockDataBody> <xEndBlockDataStmt> {: return m.blockData($1); :}
+ | <xBlockDataStmt> <xEndBlockDataStmt> {: return m.blockData($1); :}
+ ;
+
+<xBlockDataBody> ::=
+ <xBlockDataBodyConstruct>
+ | <xBlockDataBody> <xBlockDataBodyConstruct>
+ ;
+<xBlockDataBodyConstruct> ::=
+ <xSpecificationPartConstruct>
+ ;
+
+<< Section: More Section 2 Rules >>
+
+# R204 doesn"t ensure ordering as the standard requires
+<xSpecificationPartConstruct> ::=
+ <xUseStmt>
+ | <T_xImplicitStmt>
+ | <xParameterStmt>
+ | <xFormatStmt>
+ | <xEntryStmt>
+ | <xDeclarationConstruct>
+ ;
+
+# R205 see R204
+
+# R206 see R204
+
+# R207 also see R204
+<xDeclarationConstruct> ::=
+ <xDerivedTypeDef>
+ | <xInterfaceBlock>
+ | <xTypeDeclarationStmt>
+ | <xSpecificationStmt>
+ ;
+
+# R208
+
+# R209
+<xExecutionPartConstruct> ::=
+ <xObsoleteExecutionPartConstruct>
+ | <xExecutableConstruct>
+ | <xFormatStmt>
+ | <xEntryStmt>
+ ;
+<xObsoleteExecutionPartConstruct> ::= <xDataStmt>
+ ;
+
+# R210
+%type List/*<FortranElement>*/
+<xBodyPlusInternals> ::=
+ <xBody> <xContainsStmt> <xInternalSubprogram> {: return m.list($3); :}
+ | <xContainsStmt> <xInternalSubprogram> {: return m.list($2); :}
+ | <xBodyPlusInternals> <xInternalSubprogram> {: return m.list($1, $2); :}
+ ;
+
+# R211
+%type FortranElement
+<xInternalSubprogram> ::=
+ <xFunctionSubprogram> {: return $1; :}
+ | <xSubroutineSubprogram> {: return $1; :}
+ ;
+
+# R212 doesn"t ensure ordering as standard requires
+%type FortranElement
+<xModuleSubprogramPartConstruct> ::=
+ <xContainsStmt>
+ | <xModuleSubprogram> {: return $1; :}
+ ;
+
+# R213
+%type FortranElement
+<xModuleSubprogram> ::=
+ <xFunctionSubprogram> {: return $1; :}
+ | <xSubroutineSubprogram> {: return $1; :}
+ ;
+
+# R214
+<xSpecificationStmt> ::=
+ <xAccessStmt>
+ | <xAllocatableStmt>
+ | <xCommonStmt>
+ | <xDataStmt>
+ | <xDimensionStmt>
+ | <xEquivalenceStmt>
+ | <xExternalStmt>
+ | <xIntentStmt>
+ | <xIntrinsicStmt>
+ | <xNamelistStmt>
+ | <xOptionalStmt>
+ | <xPointerStmt>
+ | <xSaveStmt>
+ | <xTargetStmt>
+ ;
+
+# R215
+<xExecutableConstruct> ::=
+ <xActionStmt>
+ | <xCaseConstruct>
+ | <xDoConstruct>
+ | <xForallConstruct>
+ | <xIfConstruct>
+ | <xWhereConstruct>
+ | <xEndDoStmt>
+ ; #/* see the note on R818 */
+
+# R216
+<xActionStmt> ::=
+ <xObsoleteActionStmt>
+ | <xAllocateStmt>
+ | <xAssignmentStmt>
+ | <xBackspaceStmt>
+ | <xCallStmt>
+ | <xCloseStmt>
+ | <xContinueStmt>
+ | <xCycleStmt>
+ | <xDeallocateStmt>
+ | <xEndfileStmt>
+ | <xExitStmt>
+ | <xForallStmt>
+ | <xGotoStmt>
+ | <xIfStmt>
+ | <xInquireStmt>
+ | <xNullifyStmt>
+ | <xOpenStmt>
+ | <xPointerAssignmentStmt>
+ | <xPrintStmt>
+ | <xReadStmt>
+ | <xReturnStmt>
+ | <xRewindStmt>
+ | <xStopStmt>
+ | <xWhereStmt>
+ | <xWriteStmt>
+ ;
+<xObsoleteActionStmt> ::=
+ <xStmtFunctionStmt>
+ | <xArithmeticIfStmt>
+ | <xComputedGotoStmt>
+ ;
+
+<< Section: Section 3 Rules >>
+
+# R301-R303 are components of symbols recognized by the lexical analyzer
+
+# R304 recognized by the lexical analyzer as T_ICON? is this different in F90
+<xName> ::= T_IDENT
+ ;
+
+# R305
+#dirk rossow added T_HCON
+<xConstant> ::=
+ <xNamedConstantUse>
+ | <xUnsignedArithmeticConstant>
+ | T_PLUS <xUnsignedArithmeticConstant>
+ | T_MINUS <xUnsignedArithmeticConstant>
+ | T_SCON
+ | T_ICON T_UNDERSCORE T_SCON
+ | <xNamedConstantUse> T_UNDERSCORE T_SCON
+ | <xLogicalConstant>
+ | <xStructureConstructor>
+ | <xBozLiteralConstant>
+ | T_HCON
+ ;
+
+# R306 chain rule deleted
+
+# R307
+<xNamedConstant> ::= T_IDENT
+ ;
+<xNamedConstantUse> ::= T_IDENT
+ ;
+
+# R308 chain rule deleted
+
+# R309 chain rule deleted
+
+# R310 recognized semantically
+
+<< Section: Section 7 Rules and R311-313 >>
+
+# R708
+<xPowerOp> ::= T_POW
+ ;
+
+# R709
+<xMultOp> ::=
+ T_ASTERISK
+ | T_SLASH
+ ;
+
+# R710
+<xAddOp> ::=
+ T_PLUS
+ | T_MINUS
+ ;
+<xSign> ::=
+ T_PLUS
+ | T_MINUS
+ ;
+
+# R712
+<xConcatOp> ::= T_SLASHSLASH
+ ;
+
+# R714
+<xRelOp> ::=
+ T_EQ
+ | T_NE
+ | T_LT
+ | T_LE
+ | T_GT
+ | T_GE
+ | T_EQEQ
+ | T_SLASHEQ
+ | T_LESSTHAN
+ | T_LESSTHANEQ
+ | T_GREATERTHAN
+ | T_GREATERTHANEQ
+ ;
+
+# R719
+<xNotOp> ::= T_NOT
+ ;
+
+# R720
+<xAndOp> ::= T_AND
+ ;
+
+# R721
+<xOrOp> ::= T_OR
+ ;
+
+# R722
+<xEquivOp> ::=
+ T_EQV
+ | T_NEQV
+ ;
+
+# R311
+<xDefinedOperator> ::=
+ T_XDOP
+ | <xConcatOp>
+ | <xPowerOp>
+ | <xMultOp>
+ | <xAddOp>
+ | <xRelOp>
+ | <xNotOp>
+ | <xAndOp>
+ | <xOrOp>
+ | <xEquivOp>
+ ;
+
+# R704
+<xDefinedUnaryOp> ::=
+ T_XDOP
+ ;
+
+# R724
+<xDefinedBinaryOp> ::=
+ T_XDOP
+ ;
+
+# R312 recognized semantically
+
+# R313 recognized by the lexical analyzer as T_ICON
+<xLabel> ::=
+ T_ICON
+ ;
+
+<< Section: Section 4 Rules >>
+
+# R401 recognized by the lexical analyzer in the context of R413
+
+# R402 recognized by the lexical analyzer in the context of R413, T_ICON
+
+# R403 chain rule deleted see R305
+
+# R404
+<xUnsignedArithmeticConstant> ::=
+ T_ICON
+ | T_RCON
+ | T_DCON
+ | <xComplexConst>
+ | T_ICON T_UNDERSCORE <xKindParam>
+ | T_RCON T_UNDERSCORE <xKindParam>
+ | T_DCON T_UNDERSCORE <xKindParam>
+ ;
+
+# R405
+<xKindParam> ::=
+ T_ICON
+ | <xNamedConstantUse>
+ ;
+
+# R406 see R305
+
+# R407
+<xBozLiteralConstant> ::=
+ T_BCON
+ | T_OCON
+ | T_ZCON
+ ;
+
+# R408 recognized by the lexical analyzer as T_BCON
+
+# R409 recognized by the lexical analyzer as T_OCON
+
+# R410 recognized by the lexical analyzer as T_ZCON
+
+# R411 component of a symbol recognized by the lexical analyzer
+
+# R412 see R404
+
+# R413 see R404
+
+# R414-R416 components of symbols recognized by the lexical analyzer
+
+# R417
+<xComplexConst> ::= T_LPAREN <xExpr> T_COMMA <xExpr> T_RPAREN
+ ;
+
+# R418 chain rule deleted
+
+# R419 chain rule deleted
+
+# R420 chain rule deleted see R305
+
+# R421
+<xLogicalConstant> ::=
+ T_TRUE
+ | T_FALSE
+ | T_TRUE T_UNDERSCORE <xKindParam>
+ | T_FALSE T_UNDERSCORE <xKindParam>
+ ;
+
+# R422 This does not enforce the required sequence
+<xDerivedTypeDef> ::=
+ <xDerivedTypeStmt> <xDerivedTypeBody> <xEndTypeStmt>
+ ;
+<xDerivedTypeBody> ::=
+ <xDerivedTypeBodyConstruct>
+ | <xDerivedTypeBody> <xDerivedTypeBodyConstruct>
+ ;
+<xDerivedTypeBodyConstruct> ::= <xPrivateSequenceStmt>
+ | <xComponentDefStmt>
+ ;
+
+# R423
+<xDerivedTypeStmt> ::=
+ <xLblDef> T_TYPE <xTypeName> T_EOS
+ | <xLblDef> T_TYPE T_COLON T_COLON <xTypeName> T_EOS
+ | <xLblDef> T_TYPE T_COMMA <xAccessSpec> T_COLON T_COLON <xTypeName> T_EOS
+ ;
+
+# R424
+<xPrivateSequenceStmt> ::=
+ <xLblDef> T_PRIVATE T_EOS
+ | <xLblDef> T_SEQUENCE T_EOS
+ ;
+
+# R425
+<xComponentDefStmt> ::=
+ <xLblDef> <xTypeSpec> T_COMMA <xComponentAttrSpecList> T_COLON T_COLON <xComponentDeclList> T_EOS
+ | <xLblDef> <xTypeSpec> T_COLON T_COLON <xComponentDeclList> T_EOS
+ | <xLblDef> <xTypeSpec> <xComponentDeclList> T_EOS
+ ;
+
+# R426
+<xComponentAttrSpecList> ::=
+ <xComponentAttrSpec>
+ | <xComponentAttrSpecList> T_COMMA <xComponentAttrSpec>
+ ;
+<xComponentAttrSpec> ::=
+ T_POINTER
+ | T_DIMENSION T_LPAREN <xComponentArraySpec> T_RPAREN
+ ;
+
+# R427
+<xComponentArraySpec> ::= <xExplicitShapeSpecList>
+ | <xDeferredShapeSpecList>
+ ;
+
+# R428
+<xComponentDeclList> ::=
+ <xComponentDecl>
+ | <xComponentDeclList> T_COMMA <xComponentDecl>
+ ;
+<xComponentDecl> ::=
+ <xComponentName> T_LPAREN <xComponentArraySpec> T_RPAREN T_ASTERISK <xCharLength> <xComponentInitialization>
+ | <xComponentName> T_LPAREN <xComponentArraySpec> T_RPAREN <xComponentInitialization>
+ | <xComponentName> T_ASTERISK <xCharLength> <xComponentInitialization>
+ | <xComponentName> <xComponentInitialization>
+ | <xComponentName> T_LPAREN <xComponentArraySpec> T_RPAREN T_ASTERISK <xCharLength>
+ | <xComponentName> T_LPAREN <xComponentArraySpec> T_RPAREN
+ | <xComponentName> T_ASTERISK <xCharLength>
+ | <xComponentName>
+ ;
+
+# R429
+<xComponentInitialization> ::=
+ T_EQUALS <xExpr>
+ | T_EQGREATERTHAN T_NULL T_LPAREN T_RPAREN
+ ;
+
+# R430
+<xEndTypeStmt> ::=
+ <xLblDef> T_ENDTYPE [ <xTypeName> ] T_EOS
+ | <xLblDef> T_END T_TYPE [ <xTypeName> ] T_EOS
+ ;
+
+# R431
+<xStructureConstructor> ::= <xTypeName> T_LPAREN <xExprList> T_RPAREN
+ ;
+<xExprList> ::=
+ <xExpr>
+ | <xExprList> T_COMMA <xExpr>
+ ;
+
+# R432
+<xArrayConstructor> ::= T_LPARENSLASH <xAcValueList> T_SLASHRPAREN
+ ;
+
+# R433 Why <xAcValueList1>?
+<xAcValueList> ::=
+ <xExpr>
+ | <xAcValueList1>
+ ;
+<xAcValueList1> ::=
+ <xExpr> T_COMMA <xExpr>
+ | <xExpr> T_COMMA <xAcImpliedDo>
+ | <xAcImpliedDo>
+ | <xAcValueList1> T_COMMA <xExpr>
+ | <xAcValueList1> T_COMMA <xAcImpliedDo>
+ ;
+
+# R434
+<xAcImpliedDo> ::=
+ T_LPAREN <xExpr> T_COMMA <T_xImpliedDoVariable> T_EQUALS <xExpr> T_COMMA <xExpr> T_RPAREN
+ | T_LPAREN <xExpr> T_COMMA <T_xImpliedDoVariable> T_EQUALS <xExpr> T_COMMA <xExpr> T_COMMA <xExpr> T_RPAREN
+ | T_LPAREN <xAcImpliedDo> T_COMMA <T_xImpliedDoVariable> T_EQUALS <xExpr> T_COMMA <xExpr> T_RPAREN
+ | T_LPAREN <xAcImpliedDo> T_COMMA <T_xImpliedDoVariable> T_EQUALS <xExpr> T_COMMA <xExpr> T_COMMA <xExpr> T_RPAREN
+ ;
+
+# R435 chain rule deleted
+
+# R436 chain rule deleted
+
+<< Section: Section 5 Rules >>
+
+# R501
+<xTypeDeclarationStmt> ::=
+ <xLblDef> <xTypeSpec> <xAttrSpecSeq> T_COLON T_COLON <xEntityDeclList> T_EOS
+ | <xLblDef> <xTypeSpec> T_COLON T_COLON <xEntityDeclList> T_EOS
+ | <xLblDef> <xTypeSpec> <xEntityDeclList> T_EOS
+ ;
+<xAttrSpecSeq> ::=
+ T_COMMA <xAttrSpec>
+ | <xAttrSpecSeq> T_COMMA <xAttrSpec>
+ ;
+
+# R502
+<xTypeSpec> ::=
+ T_INTEGER
+ | T_REAL
+ | T_DOUBLEPRECISION
+ | T_COMPLEX
+ | T_LOGICAL
+ | T_CHARACTER
+ | T_INTEGER <xKindSelector>
+ | T_REAL <xKindSelector>
+ | T_DOUBLE T_PRECISION
+ | T_COMPLEX <xKindSelector>
+ | T_CHARACTER <xCharSelector>
+ | T_LOGICAL <xKindSelector>
+ | T_TYPE T_LPAREN <xTypeName> T_RPAREN
+ ;
+
+# R503
+<xAttrSpec> ::=
+ T_PARAMETER
+ | <xAccessSpec>
+ | T_ALLOCATABLE
+ | T_DIMENSION T_LPAREN <xArraySpec> T_RPAREN
+ | T_EXTERNAL
+ | T_INTENT T_LPAREN <xIntentSpec> T_RPAREN
+ | T_INTRINSIC
+ | T_OPTIONAL
+ | T_POINTER
+ | T_SAVE
+ | T_TARGET
+ ;
+
+# R504
+<xEntityDeclList> ::= <xEntityDecl>
+ | <xEntityDeclList> T_COMMA <xEntityDecl>
+ ;
+<xEntityDecl> ::=
+ <xObjectName> [ T_LPAREN <xArraySpec> T_RPAREN ] [ T_ASTERISK <xCharLength> ] [ <xInitialization> ]
+ | <xInvalidEntityDecl>
+ ;
+<xInvalidEntityDecl> ::=
+ <xObjectName> T_ASTERISK <xCharLength> T_LPAREN <xArraySpec> T_RPAREN [ <xInitialization> ]
+ ;
+
+# R505
+<xInitialization> ::=
+ T_EQUALS <xExpr>
+ | T_EQGREATERTHAN T_NULL T_LPAREN T_RPAREN
+ ;
+
+# R506 Should this be "kind=T_ORkind" T_EQUALS?
+<xKindSelector> ::=
+ T_LPAREN T_KINDEQ <xExpr> T_RPAREN
+ | T_LPAREN <xExpr> T_RPAREN
+ ;
+
+# R507
+<xCharSelector> ::=
+ <xLengthSelector>
+ | T_LPAREN T_LENEQ <xCharLenParamValue> T_COMMA T_KINDEQ <xExpr> T_RPAREN
+ | T_LPAREN T_LENEQ <xCharLenParamValue> T_COMMA <xExpr> T_RPAREN
+ | T_LPAREN T_KINDEQ <xExpr> T_RPAREN
+ | T_LPAREN T_LENEQ <xCharLenParamValue> T_RPAREN
+ | T_LPAREN <xCharLenParamValue> T_RPAREN
+ ;
+
+# R508 chain rule deleted
+<xLengthSelector> ::=
+ T_ASTERISK <xCharLength>
+ ;
+
+# R509
+<xCharLength> ::=
+ T_LPAREN <xCharLenParamValue> T_RPAREN
+ | T_ICON
+ ;
+
+# R510 <xCharLenParamValue> was <xTypeParamValue>
+<xCharLenParamValue> ::=
+ <xExpr>
+ | T_ASTERISK
+ ;
+
+# R511
+<xAccessSpec> ::=
+ T_PUBLIC
+ | T_PRIVATE
+ ;
+
+# R512
+<xIntentSpec> ::=
+ T_IN
+ | T_OUT
+ | T_INOUT
+ | T_IN T_OUT
+ ;
+
+# R513 see 16
+<xArraySpec> ::=
+ <xExplicitShapeSpecList>
+ | <xAssumedSizeSpec>
+ | <xAssumedShapeSpecList>
+ | <xDeferredShapeSpecList>
+ ;
+<xAssumedShapeSpecList> ::=
+ <xLowerBound> T_COLON
+ | <xDeferredShapeSpecList> T_COMMA <xLowerBound> T_COLON
+ | <xAssumedShapeSpecList> T_COMMA <xAssumedShapeSpec>
+ ;
+
+# R514
+<xExplicitShapeSpecList> ::=
+ <xExplicitShapeSpec>
+ | <xExplicitShapeSpecList> T_COMMA <xExplicitShapeSpec>
+ ;
+<xExplicitShapeSpec> ::=
+ <xLowerBound> T_COLON <xUpperBound>
+ | <xUpperBound>
+ ;
+
+# R515
+<xLowerBound> ::= <xExpr>
+ ;
+
+# R516
+<xUpperBound> ::= <xExpr>
+ ;
+
+# R517
+<xAssumedShapeSpec> ::=
+ <xLowerBound> T_COLON
+ | T_COLON
+ ;
+
+# R518
+<xDeferredShapeSpecList> ::=
+ <xDeferredShapeSpec>
+ | <xDeferredShapeSpecList> T_COMMA <xDeferredShapeSpec>
+ ;
+<xDeferredShapeSpec> ::= T_COLON
+ ;
+
+# R519
+<xAssumedSizeSpec> ::=
+ T_ASTERISK
+ | <xLowerBound> T_COLON T_ASTERISK
+ | <xExplicitShapeSpecList> T_COMMA T_ASTERISK
+ | <xExplicitShapeSpecList> T_COMMA <xLowerBound> T_COLON T_ASTERISK
+ ;
+
+# R520
+<xIntentStmt> ::=
+ <xLblDef> T_INTENT T_LPAREN <xIntentSpec> T_RPAREN [ T_COLON T_COLON ] <xIntentParList> T_EOS
+ ;
+<xIntentParList> ::=
+ <xIntentPar>
+ | <xIntentParList> T_COMMA <xIntentPar>
+ ;
+<xIntentPar> ::=
+ <xDummyArgName>
+ ;
+
+# R521
+<xOptionalStmt> ::=
+ <xLblDef> T_OPTIONAL [ T_COLON T_COLON ] <xOptionalParList> T_EOS
+ ;
+<xOptionalParList> ::=
+ <xOptionalPar>
+ | <xOptionalParList> T_COMMA <xOptionalPar>
+ ;
+<xOptionalPar> ::= <xDummyArgName>
+ ;
+
+# R522
+<xAccessStmt> ::=
+ <xLblDef> <xAccessSpec> [ T_COLON T_COLON ] <xAccessIdList> T_EOS
+ | <xLblDef> <xAccessSpec> T_EOS
+ ;
+
+# R523
+<xAccessIdList> ::=
+ <xAccessId>
+ | <xAccessIdList> T_COMMA <xAccessId>
+ ;
+<xAccessId> ::=
+ <xGenericName>
+ | <xGenericSpec>
+ ;
+
+# R524
+<xSaveStmt> ::=
+ <xLblDef> T_SAVE T_EOS
+ | <xLblDef> T_SAVE [ T_COLON T_COLON ] <xSavedEntityList> T_EOS
+ ;
+
+# R525
+<xSavedEntityList> ::=
+ <xSavedEntity>
+ | <xSavedEntityList> T_COMMA <xSavedEntity>
+ ;
+<xSavedEntity> ::=
+ <xVariableName>
+ | <xSavedCommonBlock>
+ ;
+<xSavedCommonBlock> ::= T_SLASH <xCommonBlockName> T_SLASH
+ ;
+
+# R526
+<xDimensionStmt> ::=
+ <xLblDef> T_DIMENSION [ T_COLON T_COLON ] <xArrayDeclaratorList> T_EOS
+ ;
+<xArrayDeclaratorList> ::=
+ <xArrayDeclarator>
+ | <xArrayDeclaratorList> T_COMMA <xArrayDeclarator>
+ ;
+<xArrayDeclarator> ::= <xVariableName> T_LPAREN <xArraySpec> T_RPAREN
+ ;
+
+# R527
+<xAllocatableStmt> ::=
+ <xLblDef> T_ALLOCATABLE [ T_COLON T_COLON ] <xArrayAllocationList> T_EOS
+ ;
+<xArrayAllocationList> ::=
+ <xArrayAllocation>
+ | <xArrayAllocationList> T_COMMA <xArrayAllocation>
+ ;
+<xArrayAllocation> ::=
+ <xArrayName>
+ | <xArrayName> T_LPAREN <xDeferredShapeSpecList> T_RPAREN
+ ;
+
+# R528 /* <xObjectName> renamed to <xPointerName> to simplify Sem. Anal. */
+<xPointerStmt> ::=
+ <xLblDef> T_POINTER [ T_COLON T_COLON ] <xPointerStmtObjectList> T_EOS
+ ;
+<xPointerStmtObjectList> ::=
+ <xPointerStmtObject>
+ | <xPointerStmtObjectList> T_COMMA <xPointerStmtObject>
+ ;
+<xPointerStmtObject> ::=
+ <xPointerName>
+ | <xPointerName> T_LPAREN <xDeferredShapeSpecList> T_RPAREN
+ ;
+<xPointerName> ::= T_IDENT
+ ;
+
+# R529 /* <xObjectName> renamed to <xTargetName> to simplify Sem. Anal. */
+<xTargetStmt> ::=
+ <xLblDef> T_TARGET [ T_COLON T_COLON ] <xTargetObjectList> T_EOS
+ ;
+<xTargetObjectList> ::=
+ <xTargetObject>
+ | <xTargetObjectList> T_COMMA <xTargetObject>
+ ;
+<xTargetObject> ::= <xTargetName>
+ | <xTargetName> T_LPAREN <xArraySpec> T_RPAREN
+ ;
+<xTargetName> ::= T_IDENT
+ ;
+
+# R530
+<xParameterStmt> ::=
+ <xLblDef> T_PARAMETER T_LPAREN <xNamedConstantDefList> T_RPAREN T_EOS
+ ;
+
+# R531
+<xNamedConstantDefList> ::=
+ <xNamedConstantDef>
+ | <xNamedConstantDefList> T_COMMA <xNamedConstantDef>
+ ;
+<xNamedConstantDef> ::= <xNamedConstant> T_EQUALS <xExpr>
+ ;
+
+# R532
+<xDataStmt> ::=
+ <xLblDef> T_DATA <xDatalist> T_EOS
+ ;
+<xDatalist> ::=
+ <xDataStmtSet>
+ | <xDatalist> <xDataStmtSet>
+ | <xDatalist> T_COMMA <xDataStmtSet>
+ ;
+
+# R533
+<xDataStmtSet> ::= <xDataStmtObjectList> T_SLASH <xDataStmtValueList> T_SLASH
+ ;
+
+# R534
+<xDataStmtObjectList> ::=
+ <xDataStmtObject>
+ | <xDataStmtObjectList> T_COMMA <xDataStmtObject>
+ ;
+<xDataStmtObject> ::=
+ <xVariable>
+ | <xDataImpliedDo>
+ ;
+
+# R535 <xExpr> must be scalar-int-expr
+<xDataImpliedDo> ::=
+ T_LPAREN <xDataIDoObjectList> T_COMMA <T_xImpliedDoVariable> T_EQUALS <xExpr> T_COMMA <xExpr> T_RPAREN
+ | T_LPAREN <xDataIDoObjectList> T_COMMA <T_xImpliedDoVariable> T_EQUALS <xExpr> T_COMMA <xExpr> T_COMMA <xExpr> T_RPAREN
+ ;
+
+# R536 <xStructureComponent> must be <xScalarStructureComponent>
+<xDataIDoObjectList> ::= <xDataIDoObject>
+ | <xDataIDoObjectList> T_COMMA <xDataIDoObject>
+ ;
+<xDataIDoObject> ::=
+ <xArrayElement>
+ | <xDataImpliedDo>
+ | <xStructureComponent>
+ ;
+
+# R537 chain rule deleted
+
+# R538
+<xDataStmtValueList> ::=
+ <xDataStmtValue>
+ | <xDataStmtValueList> T_COMMA <xDataStmtValue>
+ ;
+<xDataStmtValue> ::=
+ <xDataStmtConstant>
+ | T_ICON T_ASTERISK <xDataStmtConstant>
+ | <xNamedConstantUse> T_ASTERISK <xDataStmtConstant>
+ ;
+
+# R539 chain rule deleted
+
+# R540 only a subset of <xconstant> is allowed
+<xDataStmtConstant> ::=
+ <xConstant>
+ | T_NULL T_LPAREN T_RPAREN
+ ;
+
+# R541
+<T_xImplicitStmt> ::=
+ <xLblDef> T_IMPLICIT <T_xImplicitSpecList> T_EOS
+ | <xLblDef> T_IMPLICIT T_NONE T_EOS
+ ;
+
+# R542
+<T_xImplicitSpecList> ::=
+ <T_xImplicitSpec>
+ | <T_xImplicitSpecList> T_COMMA <T_xImplicitSpec>
+ ;
+<T_xImplicitSpec> ::= <xTypeSpec> T_xImpl
+ ;
+
+# R543 chain rule deleted
+
+# R544
+<xNamelistStmt> ::=
+ <xLblDef> T_NAMELIST <xNamelistGroups> T_EOS
+ ;
+<xNamelistGroups> ::=
+ T_SLASH <xNamelistGroupName> T_SLASH <xNamelistGroupObject>
+ | <xNamelistGroups> T_SLASH <xNamelistGroupName> T_SLASH <xNamelistGroupObject>
+ | <xNamelistGroups> T_COMMA T_SLASH <xNamelistGroupName> T_SLASH <xNamelistGroupObject>
+ | <xNamelistGroups> T_COMMA <xNamelistGroupObject>
+ ;
+
+# R545
+<xNamelistGroupObject> ::= <xVariableName>
+ ;
+
+# R546
+<xEquivalenceStmt> ::=
+ <xLblDef> T_EQUIVALENCE <xEquivalenceSetList> T_EOS
+ ;
+
+# R547
+<xEquivalenceSetList> ::=
+ <xEquivalenceSet>
+ | <xEquivalenceSetList> T_COMMA <xEquivalenceSet>
+ ;
+<xEquivalenceSet> ::= T_LPAREN <xEquivalenceObject> T_COMMA <xEquivalenceObjectList> T_RPAREN
+ ;
+
+# R548
+<xEquivalenceObjectList> ::=
+ <xEquivalenceObject>
+ | <xEquivalenceObjectList> T_COMMA <xEquivalenceObject>
+ ;
+# JO -- Changed xVariable to <xVariable>
+<xEquivalenceObject> ::= <xVariable>
+ ;
+
+# R549
+<xCommonStmt> ::=
+ <xLblDef> T_COMMON <xComlist> T_EOS
+ ;
+<xComlist> ::=
+ <xCommonBlockObject>
+ | <xComblock> <xCommonBlockObject>
+ | <xComlist> T_COMMA <xCommonBlockObject>
+ | <xComlist> <xComblock> <xCommonBlockObject>
+ | <xComlist> T_COMMA <xComblock> <xCommonBlockObject>
+ ;
+<xComblock> ::=
+ T_SLASH T_SLASH
+ | T_SLASH <xCommonBlockName> T_SLASH
+ ;
+
+# R550
+<xCommonBlockObject> ::=
+ <xVariableName>
+ | <xArrayDeclarator>
+ ;
+
+<< Section: Section 6 Rules >>
+
+# R601 The various forms of variables have to be recognized semantically;
+<xVariable> ::=
+ <xDataRef> [ T_LPAREN <xSectionSubscriptList> T_RPAREN [ <xSubstringRange> ] ]
+ | <xSubstrConst> # JO -- Added substring of constant strings
+ ;
+<xSubstrConst> ::=
+ T_SCON <xSubstringRange> # JO -- Added substring of constant strings
+ ;
+<xVariableName> ::= T_IDENT
+ ;
+<xScalarVariable> ::=
+ <xVariableName>
+ | <xArrayElement>
+ ;
+
+# R603-R608 chain rules deleted
+
+# R609 see 601
+
+# R610 see 601
+
+# R611
+<xSubstringRange> ::= T_LPAREN <xSubscriptTriplet> T_RPAREN
+ ;
+
+# R612
+<xDataRef> ::=
+ <xName>
+ | <xDataRef> [ T_LPAREN <xSectionSubscriptList> T_RPAREN ] T_PERCENT <xName>
+ ;
+<xSFDataRef> ::=
+ <xName> T_PERCENT <xName>
+ | <xName> T_LPAREN <xSectionSubscriptList> T_RPAREN
+ | <xSFDataRef> [ T_LPAREN <xSectionSubscriptList> T_RPAREN ] T_PERCENT <xName>
+ ;
+
+# R613 chain rule deleted;
+
+# R614
+<xStructureComponent> ::=
+ <xVariableName> <xFieldSelector>
+ | <xStructureComponent> <xFieldSelector>
+ ;
+<xFieldSelector> ::=
+ T_LPAREN <xSectionSubscriptList> T_RPAREN T_PERCENT <xName>
+ | T_PERCENT <xName>
+ ;
+
+# R615
+<xArrayElement> ::=
+ <xVariableName> T_LPAREN <xSectionSubscriptList> T_RPAREN
+ | <xStructureComponent> T_LPAREN <xSectionSubscriptList> T_RPAREN
+ ;
+
+# R616 Recognized semantically?
+
+# R617 Recognized semantically
+<xSubscript> ::= <xExpr>
+ ;
+
+# R618 Recognized semantically?
+<xSectionSubscriptList> ::=
+ <xSectionSubscript>
+ | <xSectionSubscriptList> T_COMMA <xSectionSubscript>
+ ;
+<xSectionSubscript> ::=
+ <xExpr>
+ | <xSubscriptTriplet>
+ ;
+
+# R619
+<xSubscriptTriplet> ::=
+ T_COLON
+ | T_COLON <xExpr>
+ | <xExpr> T_COLON
+ | <xExpr> T_COLON <xExpr>
+ | <xExpr> T_COLON <xExpr> T_COLON <xExpr>
+ | <xExpr> T_COLON T_COLON <xExpr>
+ | T_COLON <xExpr> T_COLON <xExpr>
+ | T_COLON T_COLON <xExpr>
+ ;
+
+# R620 chain rule deleted
+
+# R621 recognized semantically?
+
+# R622
+<xAllocateStmt> ::=
+ <xLblDef> T_ALLOCATE T_LPAREN <xAllocationList> T_COMMA T_STATEQ <xVariable> T_RPAREN T_EOS
+ | <xLblDef> T_ALLOCATE T_LPAREN <xAllocationList> T_RPAREN T_EOS
+ ;
+
+# R623 chain rule deleted
+
+# R624
+<xAllocationList> ::=
+ <xAllocation>
+ | <xAllocationList> T_COMMA <xAllocation>
+ ;
+<xAllocation> ::=
+ <xAllocateObject>
+ | <xAllocateObject> <xAllocatedShape>
+ ;
+<xAllocatedShape> ::= T_LPAREN <xSectionSubscriptList> T_RPAREN
+ ;
+# Need to use <xSectionSubscriptList> here to solve an LALR(1) conflict with the
+# <xFieldSelector> in R625. (Can"t tell which we have until the character
+# following the right paren, but we must reduce WITHIN the parens.)
+
+# R625
+<xAllocateObjectList> ::=
+ <xAllocateObject>
+ | <xAllocateObjectList> T_COMMA <xAllocateObject>
+ ;
+<xAllocateObject> ::=
+ <xVariableName>
+ | <xAllocateObject> <xFieldSelector>
+ ;
+
+# R626
+# Omitted to solve LALR(1) conflict. see R624
+#
+# <xAllocateShapeSpec>: <xExpr> | <xExpr> T_COLON <xExpr> ;
+
+# R627 chain rule deleted
+
+# R628 chain rule deleted
+
+# R629
+<xNullifyStmt> ::=
+ <xLblDef> T_NULLIFY T_LPAREN <xPointerObjectList> T_RPAREN T_EOS
+ ;
+<xPointerObjectList> ::=
+ <xPointerObject>
+ | <xPointerObjectList> T_COMMA <xPointerObject>
+ ;
+
+# R630
+<xPointerObject> ::= <xName>
+ | <xPointerField>
+ ;
+<xPointerField> ::=
+ <xName> T_LPAREN <xSFExprList> T_RPAREN T_PERCENT <xName>
+ | <xName> T_LPAREN <xSFDummyArgNameList> T_RPAREN T_PERCENT <xName>
+ | <xName> T_PERCENT <xName>
+ | <xPointerField> <xFieldSelector>
+ ;
+
+# R631
+<xDeallocateStmt> ::=
+ <xLblDef> T_DEALLOCATE T_LPAREN <xAllocateObjectList> T_COMMA T_STATEQ <xVariable> T_RPAREN T_EOS
+ | <xLblDef> T_DEALLOCATE T_LPAREN <xAllocateObjectList> T_RPAREN T_EOS
+ ;
+
+<< Section: More Section 7 Rules (Primary) >>
+
+# It is not clear to me whether some of the subcategories of Primary
+# are complete
+
+# R701
+<xPrimary> ::=
+ <xLogicalConstant>
+ | T_SCON
+ | <xUnsignedArithmeticConstant>
+ | <xArrayConstructor>
+ | <xName> [ T_LPAREN <xSectionSubscriptList> T_RPAREN [ <xSubstringRange> ] ]
+ | <xName> T_PERCENT <xDataRef> [ T_LPAREN <xSectionSubscriptList> T_RPAREN [ <xSubstringRange> ] ]
+ | <xName> T_LPAREN <xSectionSubscriptList> T_RPAREN T_PERCENT <xDataRef> [ T_LPAREN <xSectionSubscriptList> T_RPAREN [ <xSubstringRange> ] ]
+ | <xFunctionReference> [ <xSubstringRange> ]
+ | <xFunctionReference> T_PERCENT <xDataRef> [ T_LPAREN <xSectionSubscriptList> T_RPAREN [ <xSubstringRange> ] ]
+ | T_LPAREN <xExpr> T_RPAREN
+ | <xSubstrConst> ; # JO -- Added substring of constant strings
+
+<xCPrimary> ::=
+ <xCOperand>
+ | T_LPAREN <xCExpr> T_RPAREN
+ ;
+<xCOperand> ::=
+ T_SCON
+ | <xName> [ T_LPAREN <xSectionSubscriptList> T_RPAREN ]
+ | <xName> [ T_LPAREN <xSectionSubscriptList> T_RPAREN ] T_PERCENT <xDataRef> [ T_LPAREN <xSectionSubscriptList> T_RPAREN ]
+ | <xFunctionReference>
+ ;
+
+# dirk rossow: added <xSubstringRange> to allow: write(text(1)(2:20),*) 'hello'
+<xUFPrimary> ::=
+ T_ICON
+ | T_SCON
+ | <xFunctionReference>
+ | <xName> [ T_LPAREN <xSectionSubscriptList> T_RPAREN [ <xSubstringRange> ] ]
+ | <xName> [ T_LPAREN <xSectionSubscriptList> T_RPAREN ] T_PERCENT <xDataRef> [ T_LPAREN <xSectionSubscriptList> T_RPAREN [ <xSubstringRange> ] ]
+ | T_LPAREN <xUFExpr> T_RPAREN
+ ;
+
+# R702 chain rule deleted
+
+# R703
+<xLevel1Expr> ::=
+ <xPrimary>
+ | <xDefinedUnaryOp> <xPrimary>
+ ;
+
+# R704 defined in source form
+
+# R705
+<xMultOperand> ::= <xLevel1Expr> [ <xPowerOp> <xMultOperand> ]
+ ;
+<xUFFactor> ::= <xUFPrimary> [ <xPowerOp> <xUFFactor> ]
+ ;
+
+# R706
+<xAddOperand> ::= [ <xAddOperand> <xMultOp> ] <xMultOperand>
+ ;
+<xUFTerm> ::=
+ <xUFFactor>
+ | <xUFTerm> <xMultOp> <xUFFactor>
+ | <xUFTerm> <xConcatOp> <xUFPrimary>
+ ;
+
+# R707
+<xLevel2Expr> ::=
+ [ <xLevel2Expr> <xAddOp> ] <xAddOperand>
+ | <xSign> <xAddOperand>
+ ; # We need to distinguish unary operators
+<xUFExpr> ::=
+ <xUFTerm>
+ | <xSign> <xUFTerm>
+ | <xUFExpr> <xAddOp> <xUFTerm>
+ ;
+
+# R708-710 defined in source form
+
+# R711
+<xLevel3Expr> ::= [ <xLevel3Expr> <xConcatOp> ] <xLevel2Expr>
+ ;
+<xCExpr> ::= [ <xCExpr> <xConcatOp> ] <xCPrimary>
+ ;
+
+# R712 defined in source form
+
+# R713
+<xLevel4Expr> ::= [<xLevel3Expr> <xRelOp>] <xLevel3Expr>
+ ;
+
+# R714 defined in source form
+
+# R715
+<xAndOperand> ::= [<xNotOp>] <xLevel4Expr>
+ ;
+
+# R716
+<xOrOperand> ::= [<xOrOperand> <xAndOp>] <xAndOperand>
+ ;
+
+# R717
+<xEquivOperand> ::= [<xEquivOperand> <xOrOp>] <xOrOperand>
+ ;
+
+# R718
+<xLevel5Expr> ::= [<xLevel5Expr> <xEquivOp>] <xEquivOperand>
+ ;
+
+# R719-722 defined in source form
+
+# R723
+<xExpr> ::=
+ <xLevel5Expr>
+ | <xExpr> <xDefinedBinaryOp> <xLevel5Expr>
+ ;
+<xSFExprList> ::=
+ <xSFExpr> T_COLON <xExpr> T_COLON <xExpr>
+ | <xSFExpr> T_COLON T_COLON <xExpr>
+ | T_COLON <xExpr> T_COLON <xExpr>
+ | T_COLON T_COLON <xExpr>
+ ;
+
+# R724 defined in source form
+
+# R725-R734 chain rule deleted
+
+# R735 - JO - Macro substituted
+<xAssignmentStmt> ::=
+ <xLblDef> <xName> T_EQUALS <xExpr> T_EOS
+ | <xLblDef> <xName> T_LPAREN <xSFExprList> T_RPAREN T_EQUALS <xExpr> T_EOS
+ | <xLblDef> <xName> T_LPAREN <xSFExprList> T_RPAREN <xSubstringRange> T_EQUALS <xExpr> T_EOS
+ | <xLblDef> <xName> T_LPAREN <xSFDummyArgNameList> T_RPAREN <xSubstringRange> T_EQUALS <xExpr> T_EOS
+ | <xLblDef> <xName> T_PERCENT <xDataRef> [ T_LPAREN <xSectionSubscriptList> T_RPAREN [ <xSubstringRange> ] ] T_EQUALS <xExpr> T_EOS
+ | <xLblDef> <xName> T_LPAREN <xSFExprList> T_RPAREN T_PERCENT <xDataRef> [ T_LPAREN <xSectionSubscriptList> T_RPAREN [ <xSubstringRange> ] ] T_EQUALS <xExpr> T_EOS
+ | <xLblDef> <xName> T_LPAREN <xSFDummyArgNameList> T_RPAREN T_PERCENT <xDataRef> [ T_LPAREN <xSectionSubscriptList> T_RPAREN [ <xSubstringRange> ] ] T_EQUALS <xExpr> T_EOS
+ ;
+
+<xSFExprList> ::=
+ T_COLON
+ | T_COLON <xExpr>
+ | <xSFExpr>
+ | <xSFExpr> T_COLON
+ | <xSFExpr> T_COLON <xExpr>
+ | <xSFExprList> T_COMMA <xSectionSubscript>
+ | <xSFDummyArgNameList> T_COMMA T_COLON
+ | <xSFDummyArgNameList> T_COMMA T_COLON <xExpr>
+ | <xSFDummyArgNameList> T_COMMA <xSFExpr>
+ | <xSFDummyArgNameList> T_COMMA <xSFExpr> T_COLON
+ | <xSFDummyArgNameList> T_COMMA <xSFExpr> T_COLON <xExpr>
+ ;
+<xSFExpr> ::=
+ <xSFTerm>
+ | <xSign> <xAddOperand>
+ | <xSFExpr> <xAddOp> <xAddOperand>
+ ;
+<xSFTerm> ::=
+ <xSFFactor>
+ | <xSFTerm> <xMultOp> <xMultOperand>
+ ;
+<xSFFactor> ::=
+ <xSFPrimary>
+ | <xSFPrimary> <xPowerOp> <xMultOperand>
+ ;
+<xSFPrimary> ::=
+ <xArrayConstructor>
+ | T_ICON
+ | <xSFVarName>
+ | <xSFDataRef>
+ | <xFunctionReference>
+ | T_LPAREN <xExpr> T_RPAREN
+ ;
+#<xAssignmentStmt> ::=
+# <xLblDef> <xName> T_PERCENT <xDataRef>
+# [ T_LPAREN <xSectionSubscriptList> T_RPAREN [ <xSubstringRange> ] ]
+# T_EQUALS <xExpr> T_EOS |
+# <xLblDef> <xName> T_LPAREN <xSFExprList> T_RPAREN T_PERCENT <xDataRef>
+# [ T_LPAREN <xSectionSubscriptList> T_RPAREN [ <xSubstringRange> ] ]
+# T_EQUALS <xExpr> T_EOS |
+# <xLblDef> <xName> T_LPAREN <xSFDummyArgNameList> T_RPAREN T_PERCENT <xDataRef>
+# [ T_LPAREN <xSectionSubscriptList> T_RPAREN [ <xSubstringRange> ] ] T_EQUALS
+# <xExpr> T_EOS ;
+
+
+# R736
+<xPointerAssignmentStmt> ::=
+ <xLblDef> <xName> T_EQGREATERTHAN <xTarget> T_EOS
+ | <xLblDef> <xName> T_PERCENT <xDataRef> T_EQGREATERTHAN <xTarget> T_EOS
+ | <xLblDef> <xName> T_LPAREN <xSFExprList> T_RPAREN T_PERCENT <xDataRef> T_EQGREATERTHAN <xTarget> T_EOS
+ | <xLblDef> <xName> T_LPAREN <xSFDummyArgNameList> T_RPAREN T_PERCENT <xDataRef> T_EQGREATERTHAN <xTarget> T_EOS
+ ;
+
+# R737
+<xTarget> ::= <xExpr>
+ ;
+
+# R738
+<xWhereStmt> ::=
+ <xLblDef> T_WHERE T_LPAREN <xMaskExpr> T_RPAREN <xAssignmentStmt>
+ ;
+
+# R739 parallels if ... then ...elseif... else ... endif construct
+<xWhereConstruct> ::=
+ <xWhereConstructStmt> <xWhereRange>
+ ;
+<xWhereRange> ::=
+ <xEndWhereStmt>
+ | <xWhereBodyConstructBlock> <xEndWhereStmt>
+ | <xMaskedElsewhereConstruct>
+ | <xWhereBodyConstructBlock> <xMaskedElsewhereConstruct>
+ | <xElsewhereConstruct>
+ | <xWhereBodyConstructBlock> <xElsewhereConstruct>
+ ;
+
+<xMaskedElsewhereConstruct> ::=
+ <xMaskedElsewhereStmt> <xWhereRange>
+ ;
+
+<xElsewhereConstruct> ::=
+ <xElsewhereStmt> <xElsewherePart>
+ ;
+
+<xElsewherePart> ::=
+ <xEndWhereStmt>
+ | <xWhereBodyConstructBlock> <xEndWhereStmt>
+ ;
+
+<xWhereBodyConstructBlock> ::=
+ <xWhereBodyConstruct>
+ | <xWhereBodyConstructBlock> <xWhereBodyConstruct>
+ ;
+
+# R740
+<xWhereConstructStmt> ::=
+ <xLblDef> <xName> T_COLON T_WHERE T_LPAREN <xMaskExpr> T_RPAREN T_EOS
+ | <xLblDef> T_WHERE T_LPAREN <xMaskExpr> T_RPAREN T_EOS
+ ;
+
+# R741
+<xWhereBodyConstruct> ::=
+ <xAssignmentStmt>
+ | <xWhereStmt>
+ | <xWhereConstruct>
+ ;
+
+# R742 chain rule deleted
+
+# R743
+<xMaskExpr> ::= <xExpr>
+ ;
+
+# R744
+<xMaskedElsewhereStmt> ::=
+ <xLblDef> T_ELSEWHERE T_LPAREN <xMaskExpr> T_RPAREN [ <xEndName> ] T_EOS
+ ;
+
+# R745
+<xElsewhereStmt> ::=
+ <xLblDef> T_ELSEWHERE [ <xEndName> ] T_EOS
+ ;
+
+# R746
+<xEndWhereStmt> ::=
+ <xLblDef> T_ENDWHERE [ <xEndName> ] T_EOS
+ | <xLblDef> T_END T_WHERE [ <xEndName> ] T_EOS
+ ;
+
+# R747
+<xForallConstruct> ::=
+ <xForallConstructStmt> <xEndForallStmt>
+ | <xForallConstructStmt> <xForallBody> <xEndForallStmt>
+ ;
+<xForallBody> ::=
+ <xForallBodyConstruct>
+ | <xForallBody> <xForallBodyConstruct>
+ ;
+
+# R748
+<xForallConstructStmt> ::=
+ <xLblDef> T_FORALL <xForallHeader> T_EOS
+ | <xLblDef> <xName> T_COLON T_FORALL <xForallHeader> T_EOS
+ ;
+
+# R749
+<xForallHeader> ::=
+ T_LPAREN <xForallTripletSpecList> T_RPAREN
+ | T_LPAREN <xForallTripletSpecList> T_COMMA <xScalarMaskExpr> T_RPAREN
+ ;
+<xScalarMaskExpr> ::= <xMaskExpr>
+ ;
+
+# R750
+<xForallTripletSpecList> ::=
+ <xName> T_EQUALS <xSubscript> T_COLON <xSubscript>
+ | <xName> T_EQUALS <xSubscript> T_COLON <xSubscript> T_COLON <xExpr>
+ ;
+
+# R751
+<xForallBodyConstruct> ::=
+ <xAssignmentStmt>
+ | <xPointerAssignmentStmt>
+ | <xWhereStmt>
+ | <xWhereConstruct>
+ | <xForallConstruct>
+ | <xForallStmt>
+ ;
+
+# R752 chain rule eliminated
+
+# R753
+<xEndForallStmt> ::=
+ <xLblDef> T_END T_FORALL [ <xEndName> ] T_EOS
+ | <xLblDef> T_ENDFORALL [ <xEndName> ] T_EOS
+ ;
+
+# R754
+<xForallStmt> ::=
+ <xLblDef> T_FORALL <xForallHeader> <xAssignmentStmt> T_EOS
+ | <xLblDef> T_FORALL <xForallHeader> <xPointerAssignmentStmt> T_EOS
+ ;
+
+<< Section: Section 8 Rules >>
+
+# R801 see the note on R818
+
+# R802
+<xIfConstruct> ::=
+ <xIfThenStmt> <xThenPart>
+ ;
+<xThenPart> ::=
+ <xEndIfStmt>
+ | <xConditionalBody> <xEndIfStmt>
+ | <xElseIfConstruct>
+ | <xConditionalBody> <xElseIfConstruct>
+ | <xElseConstruct>
+ | <xConditionalBody> <xElseConstruct>
+ ;
+
+<xElseIfConstruct> ::=
+ <xElseIfStmt> <xThenPart>
+ ;
+
+<xElseConstruct> ::=
+ <xElseStmt> <xElsePart>
+ ;
+<xElsePart> ::=
+ <xEndIfStmt>
+ | <xConditionalBody> <xEndIfStmt>
+ ;
+
+<xConditionalBody> ::=
+ <xExecutionPartConstruct>
+ | <xConditionalBody> <xExecutionPartConstruct>
+ ;
+
+# R803
+<xIfThenStmt> ::=
+ <xLblDef> T_IF T_LPAREN <xExpr> T_RPAREN T_THEN T_EOS
+ | <xLblDef> <xName> T_COLON T_IF T_LPAREN <xExpr> T_RPAREN T_THEN T_EOS
+ ;
+
+# R804
+<xElseIfStmt> ::=
+ <xLblDef> T_ELSEIF T_LPAREN <xExpr> T_RPAREN T_THEN T_EOS
+ | <xLblDef> T_ELSEIF T_LPAREN <xExpr> T_RPAREN T_THEN <xEndName> T_EOS
+ | <xLblDef> T_ELSE T_IF T_LPAREN <xExpr> T_RPAREN T_THEN T_EOS
+ | <xLblDef> T_ELSE T_IF T_LPAREN <xExpr> T_RPAREN T_THEN <xEndName> T_EOS
+ ;
+
+# R805
+<xElseStmt> ::=
+ <xLblDef> T_ELSE T_EOS
+ | <xLblDef> T_ELSE <xEndName> T_EOS
+ ;
+
+# R806
+<xEndIfStmt> ::=
+ <xLblDef> T_ENDIF [ <xEndName> ] T_EOS
+ | <xLblDef> T_END T_IF [ <xEndName> ] T_EOS
+ ;
+
+# R807
+<xIfStmt> ::=
+ <xLblDef> T_IF T_LPAREN <xExpr> T_RPAREN <xActionStmt>
+ ;
+
+# R808
+<xCaseConstruct> ::=
+ <xSelectCaseStmt> <xSelectCaseRange>
+ ;
+<xSelectCaseRange> ::=
+ <xSelectCaseBody> <xEndSelectStmt>
+ | <xEndSelectStmt>
+ ;
+
+<xSelectCaseBody> ::=
+ <xCaseStmt>
+ | <xSelectCaseBody> <xCaseBodyConstruct>
+ ;
+<xCaseBodyConstruct> ::=
+ <xCaseStmt>
+ | <xExecutionPartConstruct>
+ ;
+
+# R809 chain rule eliminated
+<xSelectCaseStmt> ::=
+ <xLblDef> <xName> T_COLON T_SELECTCASE T_LPAREN <xExpr> T_RPAREN T_EOS
+ | <xLblDef> T_SELECTCASE T_LPAREN <xExpr> T_RPAREN T_EOS
+ | <xLblDef> <xName> T_COLON T_SELECT T_CASE T_LPAREN <xExpr> T_RPAREN T_EOS
+ | <xLblDef> T_SELECT T_CASE T_LPAREN <xExpr> T_RPAREN T_EOS
+ ;
+
+# R810
+<xCaseStmt> ::=
+ <xLblDef> T_CASE <xCaseSelector> T_EOS
+ | <xLblDef> T_CASE <xCaseSelector> <xName> T_EOS
+ ;
+
+# R811
+<xEndSelectStmt> ::=
+ <xLblDef> T_ENDSELECT [ <xEndName> ] T_EOS
+ | <xLblDef> T_END T_SELECT [ <xEndName> ] T_EOS
+ ;
+
+# R812 chain rules deleted
+
+# R813
+<xCaseSelector> ::=
+ T_LPAREN <xCaseValueRangeList> T_RPAREN
+ | T_DEFAULT
+ ;
+<xCaseValueRangeList> ::=
+ <xCaseValueRange>
+ | <xCaseValueRangeList> T_COMMA <xCaseValueRange>
+ ;
+
+# R814
+<xCaseValueRange> ::=
+ <xExpr>
+ | <xExpr> T_COLON
+ | T_COLON <xExpr>
+ | <xExpr> T_COLON <xExpr>
+ ;
+
+# R815 chain rules deleted
+
+# R816
+<xDoConstruct> ::= <xBlockDoConstruct>
+ ;
+
+# R817
+# Block DO constructs cannot be recognized syntactically because there is
+# no requirement that there be an end do statement;
+#
+# <xBlockDoConstruct>:
+# <xDoStmt> <xBlock> <xEndDoStmt> |
+# <xDoStmt> <xBlock> ;
+<xBlockDoConstruct> ::= <xLabelDoStmt>
+ ;
+
+# R818
+<xLabelDoStmt> ::=
+ <xLblDef> T_DO <xLblRef> <xCommaLoopControl> T_EOS
+ | <xLblDef> T_DO <xLblRef> T_EOS
+ | <xLblDef> T_DO <xCommaLoopControl> T_EOS
+ | <xLblDef> T_DO T_EOS
+ | <xLblDef> <xName> T_COLON T_DO <xLblRef> <xCommaLoopControl> T_EOS
+ | <xLblDef> <xName> T_COLON T_DO <xLblRef> T_EOS
+ | <xLblDef> <xName> T_COLON T_DO <xCommaLoopControl> T_EOS
+ | <xLblDef> <xName> T_COLON T_DO T_EOS
+ ;
+
+# R819 chain rule deleted
+
+# R820 chain rule deleted
+
+# R821 see 40
+<xCommaLoopControl> ::=
+ T_COMMA <xLoopControl>
+ | <xLoopControl>
+ ;
+<xLoopControl> ::=
+ <xVariableName> T_EQUALS <xExpr> T_COMMA <xExpr>
+ | <xVariableName> T_EQUALS <xExpr> T_COMMA <xExpr> T_COMMA <xExpr>
+ | T_WHILE T_LPAREN <xExpr> T_RPAREN
+ ;
+
+# R822 chain rule deleted
+
+# R823 chain rule deleted
+
+# R824 see note on R817
+
+# R825
+<xEndDoStmt> ::=
+ <xLblDef> T_ENDDO [ <xEndName> ] T_EOS
+ | <xLblDef> T_END T_DO [ <xEndName> ] T_EOS
+ ;
+
+# R826-R833 enforced semantically
+
+# R834
+<xCycleStmt> ::=
+ <xLblDef> T_CYCLE [ <xName> ] T_EOS
+ ;
+
+# R835
+<xExitStmt> ::=
+ <xLblDef> T_EXIT [ <xName> ] T_EOS
+ ;
+
+# R836
+<xGotoStmt> ::=
+ <xLblDef> <GoToKw> <xLblRef> T_EOS
+ ;
+
+<GoToKw> ::=
+ T_GOTO
+ | T_GO T_TO
+ ;
+
+# R837
+<xComputedGotoStmt> ::=
+ <xLblDef> <GoToKw> T_LPAREN <xLblRefList> T_RPAREN <xExpr> T_EOS
+ | <xLblDef> <GoToKw> T_LPAREN <xLblRefList> T_RPAREN <xCommaExp> T_EOS
+ ;
+<xCommaExp> ::= T_COMMA <xExpr>
+ ;
+<xLblRefList> ::=
+ <xLblRef>
+ | <xLblRefList> T_COMMA <xLblRef>
+ ;
+<xLblRef> ::= <xLabel>
+ ;
+
+# R838
+<xArithmeticIfStmt> ::=
+ <xLblDef> T_IF T_LPAREN <xExpr> T_RPAREN <xLblRef> T_COMMA <xLblRef> T_COMMA <xLblRef> T_EOS
+ ;
+
+# R839
+<xContinueStmt> ::=
+ <xLblDef> T_CONTINUE T_EOS
+ ;
+
+# R840
+<xStopStmt> ::=
+ <xLblDef> T_STOP T_EOS
+ | <xLblDef> T_STOP T_ICON T_EOS
+ | <xLblDef> T_STOP T_SCON T_EOS
+ ;
+
+# R841 chain rule deleted
+
+<< Section: Section 9 Rules >>
+
+# R901
+<xUnitIdentifier> ::=
+ <xUFExpr>
+ | T_ASTERISK
+ ;
+
+# R902 chain rule deleted
+
+# R903 chain rule deleted
+
+# R904
+<xOpenStmt> ::=
+ <xLblDef> T_OPEN T_LPAREN <xConnectSpecList> T_RPAREN T_EOS
+ ;
+
+# R905
+<xConnectSpecList> ::=
+ <xUnitIdentifier>
+ | <xConnectSpec>
+ | <xConnectSpecList> T_COMMA <xConnectSpec>
+ ;
+<xConnectSpec> ::=
+ T_UNITEQ <xUnitIdentifier>
+ | T_ERREQ <xLblRef>
+ | T_FILEEQ <xCExpr>
+ | T_STATUSEQ <xCExpr>
+ | T_ACCESSEQ <xCExpr>
+ | T_FORMEQ <xCExpr>
+ | T_RECLEQ <xExpr>
+ | T_BLANKEQ <xCExpr>
+ | T_IOSTATEQ <xScalarVariable>
+ | T_POSITIONEQ <xCExpr>
+ | T_ACTIONEQ <xCExpr>
+ | T_DELIMEQ <xCExpr>
+ | T_PADEQ <xCExpr>
+ ;
+
+# R906 chain rule deleted
+
+# R907
+<xCloseStmt> ::=
+ <xLblDef> T_CLOSE T_LPAREN <xCloseSpecList> T_RPAREN T_EOS
+ ;
+
+# R908
+<xCloseSpecList> ::=
+ <xUnitIdentifier>
+ | <xCloseSpec>
+ | <xCloseSpecList> T_COMMA <xCloseSpec>
+ ;
+<xCloseSpec> ::=
+ T_UNITEQ <xUnitIdentifier>
+ | T_ERREQ <xLblRef>
+ | T_STATUSEQ <xCExpr>
+ | T_IOSTATEQ <xScalarVariable>
+ ;
+
+# R909
+<xReadStmt> ::=
+ <xLblDef> T_READ <xRdCtlSpec> <xInputItemList> T_EOS
+ | <xLblDef> T_READ <xRdCtlSpec> T_EOS
+ | <xLblDef> T_READ <xRdFmtId> T_COMMA <xInputItemList> T_EOS
+ | <xLblDef> T_READ <xRdFmtId> T_EOS
+ ;
+<xRdCtlSpec> ::=
+ <xRdUnitId>
+ | T_LPAREN <xRdIoCtlSpecList> T_RPAREN
+ ;
+<xRdUnitId> ::=
+ T_LPAREN <xUFExpr> T_RPAREN
+ | T_LPAREN T_ASTERISK T_RPAREN
+ ;
+<xRdIoCtlSpecList> ::=
+ <xUnitIdentifier> T_COMMA <xIoControlSpec>
+ | <xUnitIdentifier> T_COMMA <xFormatIdentifier>
+ | <xIoControlSpec>
+ | <xRdIoCtlSpecList> T_COMMA <xIoControlSpec>
+ ;
+<xRdFmtId> ::=
+ <xLblRef>
+ | T_ASTERISK
+ | <xCOperand>
+ | <xCOperand> <xConcatOp> <xCPrimary>
+ | <xRdFmtIdExpr> <xConcatOp> <xCPrimary>
+ ;
+<xRdFmtIdExpr> ::= T_LPAREN <xUFExpr> T_RPAREN
+ ;
+
+# R910
+<xWriteStmt> ::=
+ <xLblDef> T_WRITE T_LPAREN <xIoControlSpecList> T_RPAREN <xOutputItemList> T_EOS
+ | <xLblDef> T_WRITE T_LPAREN <xIoControlSpecList> T_RPAREN T_EOS
+ ;
+
+# R911
+<xPrintStmt> ::=
+ <xLblDef> T_PRINT <xFormatIdentifier> T_COMMA <xOutputItemList> T_EOS
+ | <xLblDef> T_PRINT <xFormatIdentifier> T_EOS
+ ;
+
+# R912
+[xIoControlSpecList] <xIoControlSpecList> ::=
+# JO - $
+# <xUnitIdentifier> $T_COMMA |
+ <xUnitIdentifier>
+ | <xUnitIdentifier> T_COMMA <xFormatIdentifier>
+ | <xUnitIdentifier> T_COMMA <xIoControlSpec>
+ | <xIoControlSpec>
+ | <xIoControlSpecList> T_COMMA <xIoControlSpec>
+ ;
+<xIoControlSpec> ::=
+ T_FMTEQ <xFormatIdentifier>
+ | T_UNITEQ <xUnitIdentifier>
+ | T_RECEQ <xExpr>
+ | T_ENDEQ <xLblRef>
+ | T_ERREQ <xLblRef>
+ | T_IOSTATEQ <xScalarVariable>
+ | T_NMLEQ <xNamelistGroupName>
+ | T_ADVANCEEQ <xCExpr>
+ | T_SIZEEQ <xVariable>
+ | T_EOREQ <xLblRef> # JO -- Was T_OR, which is incorrect
+ ;
+
+# R913
+<xFormatIdentifier> ::=
+ <xLblRef>
+ | <xCExpr>
+ | T_ASTERISK
+ ;
+
+# R914
+<xInputItemList> ::=
+ <xInputItem>
+ | <xInputItemList> T_COMMA <xInputItem>
+ ;
+<xInputItem> ::=
+ <xVariable>
+ | <xInputImpliedDo>
+ ;
+
+# 915
+<xOutputItemList> ::=
+ <xExpr>
+ | <xOutputItemList1>
+ ;
+<xOutputItemList1> ::=
+ <xExpr> T_COMMA <xExpr>
+ | <xExpr> T_COMMA <xOutputImpliedDo>
+ | <xOutputImpliedDo>
+ | <xOutputItemList1> T_COMMA <xExpr>
+ | <xOutputItemList1> T_COMMA <xOutputImpliedDo>
+ ;
+
+# R916
+<xInputImpliedDo> ::=
+ T_LPAREN <xInputItemList> T_COMMA <T_xImpliedDoVariable> T_EQUALS <xExpr> T_COMMA <xExpr> T_RPAREN
+ | T_LPAREN <xInputItemList> T_COMMA <T_xImpliedDoVariable> T_EQUALS <xExpr> T_COMMA <xExpr> T_COMMA <xExpr> T_RPAREN
+ ;
+
+<xOutputImpliedDo> ::=
+ T_LPAREN <xExpr> T_COMMA <T_xImpliedDoVariable> T_EQUALS <xExpr> T_COMMA <xExpr> T_RPAREN
+ | T_LPAREN <xExpr> T_COMMA <T_xImpliedDoVariable> T_EQUALS <xExpr> T_COMMA <xExpr> T_COMMA <xExpr> T_RPAREN
+ | T_LPAREN <xOutputItemList1> T_COMMA <T_xImpliedDoVariable> T_EQUALS <xExpr> T_COMMA <xExpr> T_RPAREN
+ | T_LPAREN <xOutputItemList1> T_COMMA <T_xImpliedDoVariable> T_EQUALS <xExpr> T_COMMA <xExpr> T_COMMA <xExpr> T_RPAREN
+ ;
+
+# R917 chain rule deleted
+
+# R918 chain rule deleted
+
+# R919
+<xBackspaceStmt> ::=
+ <xLblDef> T_BACKSPACE <xUnitIdentifier> T_EOS
+ | <xLblDef> T_BACKSPACE T_LPAREN <xPositionSpecList> T_RPAREN T_EOS
+ ;
+
+# R920
+<xEndfileStmt> ::=
+ <xLblDef> T_ENDFILE <xUnitIdentifier> T_EOS
+ | <xLblDef> T_ENDFILE T_LPAREN <xPositionSpecList> T_RPAREN T_EOS
+ | <xLblDef> T_END T_FILE <xUnitIdentifier> T_EOS
+ | <xLblDef> T_END T_FILE T_LPAREN <xPositionSpecList> T_RPAREN T_EOS
+ ;
+
+# R921
+<xRewindStmt> ::=
+ <xLblDef> T_REWIND <xUnitIdentifier> T_EOS
+ | <xLblDef> T_REWIND T_LPAREN <xPositionSpecList> T_RPAREN T_EOS
+ ;
+
+# R922
+<xPositionSpecList> ::=
+ <xUnitIdentifier> T_COMMA <xPositionSpec>
+ | <xPositionSpec>
+ | <xPositionSpecList> T_COMMA <xPositionSpec>
+ ;
+<xPositionSpec> ::=
+ T_UNITEQ <xUnitIdentifier>
+ | T_ERREQ <xLblRef>
+ | T_IOSTATEQ <xScalarVariable>
+ ;
+
+# R923
+<xInquireStmt> ::=
+ <xLblDef> T_INQUIRE T_LPAREN <xInquireSpecList> T_RPAREN T_EOS
+ | <xLblDef> T_INQUIRE T_LPAREN T_IOLENGTHEQ <xScalarVariable> T_RPAREN <xOutputItemList> T_EOS
+ ;
+
+# R924
+<xInquireSpecList> ::=
+ <xUnitIdentifier>
+ | <xInquireSpec>
+ | <xInquireSpecList> T_COMMA <xInquireSpec>
+ ;
+<xInquireSpec> ::=
+ T_UNITEQ <xUnitIdentifier>
+ | T_FILEEQ <xCExpr>
+ | T_ERREQ <xLblRef>
+ | T_IOSTATEQ <xScalarVariable>
+ | T_EXISTEQ <xScalarVariable>
+ | T_OPENEDEQ <xScalarVariable>
+ | T_NUMBEREQ <xScalarVariable>
+ | T_NAMEDEQ <xScalarVariable>
+ | T_NAMEEQ <xScalarVariable>
+ | T_ACCESSEQ <xScalarVariable>
+ | T_SEQUENTIALEQ <xScalarVariable>
+ | T_DIRECTEQ <xScalarVariable>
+ | T_FORMEQ <xScalarVariable>
+ | T_FORMATTEDEQ <xScalarVariable>
+ | T_UNFORMATTEDEQ <xScalarVariable>
+ | T_RECLEQ <xExpr>
+ | T_NEXTRECEQ <xScalarVariable>
+ | T_BLANKEQ <xScalarVariable>
+ | T_POSITIONEQ <xScalarVariable>
+ | T_ACTIONEQ <xScalarVariable>
+ | T_READEQ <xScalarVariable>
+ | T_WRITEEQ <xScalarVariable>
+ | T_READWRITEEQ <xScalarVariable>
+ | T_DELIMEQ <xScalarVariable>
+ | T_PADEQ <xScalarVariable>
+ ;
+
+<< Section: Section 10 Rules >>
+
+# I have trouble verifying this section because of its reliance on
+# lexical analysis */
+# R1001
+<xFormatStmt> ::=
+ <xLblDef> T_FORMAT T_LPAREN [ <xFmtSpec> ] T_RPAREN T_EOS
+ | <xLblDef> T_FORMAT %error T_EOS
+ ;
+
+# R1002
+<xFmtSpec> ::=
+ <xFormatedit>
+ | <xFormatsep>
+ | <xFormatsep> <xFormatedit>
+ | <xFmtSpec> <xFormatsep>
+ | <xFmtSpec> <xFormatsep> <xFormatedit>
+ | <xFmtSpec> T_COMMA <xFormatedit>
+ | <xFmtSpec> T_COMMA <xFormatsep>
+ | <xFmtSpec> T_COMMA <xFormatsep> <xFormatedit>
+ ;
+
+# R1003
+<xFormatedit> ::=
+ <xEditElement>
+ | T_ICON <xEditElement>
+ | T_XCON
+ | T_PCON
+ | T_PCON <xEditElement>
+ | T_PCON T_ICON <xEditElement>
+ ;
+
+#dirk rossow added T_HCON
+<xEditElement> ::=
+ T_FCON
+ | T_SCON
+ | T_IDENT
+ | T_LPAREN <xFmtSpec> T_RPAREN
+ | T_HCON
+ ;
+
+# R1004 chain rule deleted
+
+# R1005 chain rule deleted as le<xically> recognized elements
+
+# R1010
+<xFormatsep> ::=
+ T_SLASH
+ | T_COLON
+ ;
+
+<< Section: More Section 11 Rules >>
+
+# R1101 see high level synta<x>
+
+# R1102
+%type Token
+<xProgramStmt> ::=
+ <xLblDef> T_PROGRAM <xProgramName> T_EOS {: return $3; :}
+ ;
+
+# R1103
+<xEndProgramStmt> ::=
+ <xLblDef> T_END T_EOS
+ | <xLblDef> T_ENDPROGRAM [ <xEndName> ] T_EOS
+ | <xLblDef> T_END T_PROGRAM [ <xEndName> ] T_EOS
+ ;
+
+# R1104 see high level synta<x>
+
+# R1105
+%type Token
+<xModuleStmt> ::= <xLblDef> T_MODULE <xModuleName> T_EOS {: return $3; :}
+ ;
+
+# R1106
+<xEndModuleStmt> ::=
+ <xLblDef> T_END T_EOS
+ | <xLblDef> T_ENDMODULE [ <xEndName> ] T_EOS
+ | <xLblDef> T_END T_MODULE [ <xEndName> ] T_EOS
+ ;
+
+# R1107
+<xUseStmt> ::=
+ <xLblDef> T_USE <xName> T_EOS
+ | <xLblDef> T_USE <xName> T_COMMA <xRenameList> T_EOS
+ | <xLblDef> T_USE <xName> T_COMMA T_ONLY T_COLON [ <xOnlyList> ] T_EOS
+ ;
+<xRenameList> ::=
+ <xRename>
+ | <xRenameList> T_COMMA <xRename>
+ ;
+<xOnlyList> ::=
+ <xOnly>
+ | <xOnlyList> T_COMMA <xOnly>
+ ;
+
+# R1108
+<xRename> ::= T_IDENT T_EQGREATERTHAN <xUseName>
+ ;
+
+# R1109
+<xOnly> ::=
+ <xGenericSpec>
+ | T_IDENT T_EQGREATERTHAN <xUseName>
+ | <xUseName>
+ ;
+
+# R1110 chain rule deleted
+
+# R111 chain rule deleted
+
+# R1112 see high level synta<x>
+
+# R1113
+%type Token
+<xBlockDataStmt> ::=
+ <xLblDef> T_BLOCKDATA <xBlockDataName> T_EOS {: return $3; :}
+ | <xLblDef> T_BLOCKDATA T_EOS
+ ;
+
+# R1114
+<xEndBlockDataStmt> ::=
+ <xLblDef> T_END T_EOS
+ | <xLblDef> T_ENDBLOCKDATA [ <xEndName> ] T_EOS
+ | <xLblDef> T_END T_BLOCKDATA [ <xEndName> ] T_EOS
+ | <xLblDef> T_ENDBLOCK T_DATA [ <xEndName> ] T_EOS
+ | <xLblDef> T_END T_BLOCK T_DATA [ <xEndName> ] T_EOS
+ ;
+
+<< Section: More Section 12 Rules >>
+
+# R1201
+<xInterfaceBlock> ::=
+ <xInterfaceStmt> <xInterfaceRange>
+ ;
+<xInterfaceRange> ::=
+ <xInterfaceBlockBody> <xEndInterfaceStmt>
+ ;
+<xInterfaceBlockBody> ::=
+ <xInterfaceSpecification>
+ | <xInterfaceBlockBody> <xInterfaceSpecification>
+ ;
+
+# R1202
+<xInterfaceSpecification> ::=
+ <xInterfaceBody>
+ | <xModuleProcedureStmt>
+ ;
+
+# R1203
+<xInterfaceStmt> ::=
+ <xLblDef> T_INTERFACE <xGenericName> T_EOS
+ | <xLblDef> T_INTERFACE <xGenericSpec> T_EOS
+ | <xLblDef> T_INTERFACE T_EOS
+ ;
+
+# R1204
+<xEndInterfaceStmt> ::=
+ <xLblDef> T_ENDINTERFACE [<xEndName>] T_EOS
+ | <xLblDef> T_END T_INTERFACE [<xEndName>] T_EOS
+ ;
+
+# R1205
+<xInterfaceBody> ::=
+ <xFunctionStmt> <xFunctionInterfaceRange>
+ | <xSubroutineStmt> <xSubroutineInterfaceRange>
+ ;
+<xFunctionInterfaceRange> ::=
+ <xSubprogramInterfaceBody> <xEndFunctionStmt>
+ | <xEndFunctionStmt>
+ ;
+<xSubroutineInterfaceRange> ::=
+ <xSubprogramInterfaceBody> <xEndSubroutineStmt>
+ | <xEndSubroutineStmt>
+ ;
+<xSubprogramInterfaceBody> ::=
+ <xSpecificationPartConstruct>
+ | <xSubprogramInterfaceBody> <xSpecificationPartConstruct>
+ ;
+
+# R1206
+<xModuleProcedureStmt> ::=
+ <xLblDef> T_MODULE T_PROCEDURE <xProcedureNameList> T_EOS
+ ;
+<xProcedureNameList> ::=
+ <xProcedureName>
+ | <xProcedureNameList> T_COMMA <xProcedureName>
+ ;
+<xProcedureName> ::= T_IDENT
+ ;
+
+# R1207
+<xGenericSpec> ::=
+ T_OPERATOR T_LPAREN <xDefinedOperator> T_RPAREN
+ | T_ASSIGNMENT T_LPAREN T_EQUALS T_RPAREN
+ ;
+
+# R1208
+<xExternalStmt> ::=
+ <xLblDef> T_EXTERNAL <xExternalNameList> T_EOS
+ | <xLblDef> T_EXTERNAL T_COLON T_COLON <xExternalNameList> T_EOS
+ ;
+<xExternalNameList> ::=
+ <xExternalName>
+ | <xExternalNameList> T_COMMA <xExternalName>
+ ;
+
+# R1209
+<xIntrinsicStmt> ::=
+ <xLblDef> T_INTRINSIC <xIntrinsicList> T_EOS
+ | <xLblDef> T_INTRINSIC T_COLON T_COLON <xIntrinsicList> T_EOS
+ ;
+<xIntrinsicList> ::=
+ <xIntrinsicProcedureName>
+ | <xIntrinsicList> T_COMMA <xIntrinsicProcedureName>
+ ;
+
+# R1210
+<xFunctionReference> ::=
+ <xName> T_LPAREN T_RPAREN
+ | <xName> T_LPAREN <xFunctionArgList> T_RPAREN
+ ;
+
+# R1211
+<xCallStmt> ::=
+ <xLblDef> T_CALL <xSubroutineNameUse> T_EOS
+ | <xLblDef> T_CALL <xSubroutineNameUse> T_LPAREN <xSubroutineArgList> T_RPAREN T_EOS
+ ;
+<xSubroutineArgList> ::=
+ empty
+ | <xSubroutineArg>
+ | <xSubroutineArgList> T_COMMA <xSubroutineArg>
+ ;
+
+# R1212
+# Functions initially recognized as arrays resolved semantically
+<xFunctionArgList> ::=
+ <xFunctionArg>
+ | <xFunctionArgList> T_COMMA <xFunctionArg>
+ | <xSectionSubscriptList> T_COMMA <xFunctionArg>
+ ;
+<xFunctionArg> ::= <xName> T_EQUALS <xExpr>
+ ;
+
+#dirk rossow added T_HCON
+<xSubroutineArg> ::=
+ <xExpr>
+ | T_ASTERISK <xLblRef>
+ | <xName> T_EQUALS <xExpr>
+ | <xName> T_EQUALS T_ASTERISK <xLblRef>
+ | T_HCON
+ | <xName> T_EQUALS T_HCON
+ ;
+
+# R1213 chain rule deleted
+
+# R1214 chain rule deleted
+
+# R1215 chain rule deleted
+
+# R1216 see high level synta<x>
+
+# R1217 chain rule deleted
+%type Token
+<xFunctionStmt> ::=
+ <xLblDef> <xFunctionPrefix> <xFunctionName> T_LPAREN <xFunctionPars> T_RPAREN [ T_RESULT T_LPAREN <xName> T_RPAREN ] T_EOS {: return $3; :}
+ | <xLblDef> <xFunctionPrefix> <xFunctionName> %error T_EOS {: return $3; :}
+ ;
+
+<xFunctionPars> ::=
+ empty
+ | <xFunctionPar>
+ | <xFunctionPars> T_COMMA <xFunctionPar>
+ ;
+<xFunctionPar> ::= <xDummyArgName>
+ ;
+
+# R1218
+<xFunctionPrefix> ::=
+ T_FUNCTION
+ | <xPrefixSpecList> T_FUNCTION
+ ;
+<xPrefixSpecList> ::=
+ <xPrefixSpec>
+ | <xPrefixSpecList> <xPrefixSpec>
+ ;
+
+# R1219
+<xPrefixSpec> ::=
+ <xTypeSpec>
+ | T_RECURSIVE
+ | T_PURE
+ | T_ELEMENTAL
+ ;
+
+# R1220
+<xEndFunctionStmt> ::=
+ <xLblDef> T_END T_EOS
+ | <xLblDef> T_ENDFUNCTION [ <xEndName> ] T_EOS
+ | <xLblDef> T_END T_FUNCTION [ <xEndName> ] T_EOS
+ ;
+
+# R1221 see high level synta<x>
+
+# R1222
+%type Token
+<xSubroutineStmt> ::=
+ <xLblDef> <xSubroutinePrefix> <xSubroutineName> [ T_LPAREN <xSubroutinePars> T_RPAREN ] T_EOS {: return $3; :}
+ | <xLblDef> <xSubroutinePrefix> <xSubroutineName> %error T_EOS
+ ;
+<xSubroutinePrefix> ::=
+ T_SUBROUTINE
+ | <xPrefixSpecList> T_SUBROUTINE
+ ;
+<xSubroutinePars> ::=
+ empty
+ | <xSubroutinePar>
+ | <xSubroutinePars> T_COMMA <xSubroutinePar>
+ ;
+
+# R1223
+<xSubroutinePar> ::=
+ <xDummyArgName>
+ | T_ASTERISK
+ ;
+
+# R1224
+<xEndSubroutineStmt> ::=
+ <xLblDef> T_END T_EOS
+ | <xLblDef> T_ENDSUBROUTINE [ <xEndName> ] T_EOS
+ | <xLblDef> T_END T_SUBROUTINE [ <xEndName> ] T_EOS
+ ;
+
+# R1225 - JO - Macro substituted
+<xEntryStmt> ::=
+ <xLblDef> T_ENTRY <xEntryName> [ T_LPAREN <xSubroutinePars> T_RPAREN ] T_EOS
+ ;
+# <xLblDef> T_ENTRY <xEntryName> T_LPAREN <xSubroutinePars> T_RPAREN
+# T_RESULT T_LPAREN <xName> T_RPAREN T_EOS ;
+
+# R1226
+<xReturnStmt> ::=
+ <xLblDef> T_RETURN T_EOS
+ | <xLblDef> T_RETURN <xExpr> T_EOS
+ ;
+
+# R1227
+<xContainsStmt> ::=
+ <xLblDef> T_CONTAINS T_EOS
+ ;
+
+# R1228
+# This may turn out to be an assignment statement, but the form given here
+# allows for name analysis in the case that it actually IS a statement
+# function definition;
+<xStmtFunctionStmt> ::= <xLblDef> <xName> <xStmtFunctionRange>
+ ;
+<xStmtFunctionRange> ::= T_LPAREN T_RPAREN T_EQUALS <xExpr> T_EOS
+ ;
+<xStmtFunctionRange> ::= T_LPAREN <xSFDummyArgNameList> T_RPAREN T_EQUALS <xExpr> T_EOS
+ ;
+<xSFDummyArgNameList> ::=
+ <xSFDummyArgName>
+ | <xSFDummyArgNameList> T_COMMA <xSFDummyArgName>
+ ;
+
+<< Section: Additional Rules >>
+
+# Nonterminal symbols that are not defined in the standard
+<xArrayName> ::= T_IDENT
+ ;
+%type Token
+<xBlockDataName> ::= T_IDENT {: return $1; :}
+ ;
+<xCommonBlockName> ::= T_IDENT
+ ;
+<xComponentName> ::= T_IDENT
+ ;
+<xDummyArgName> ::= T_IDENT
+ ;
+<xEndName> ::= T_IDENT
+ ;
+<xEntryName> ::= T_IDENT
+ ;
+<xExternalName> ::= T_IDENT
+ ;
+%type Token
+<xFunctionName> ::= T_IDENT {: return $1; :}
+ ;
+<xGenericName> ::= T_IDENT
+ ;
+<T_xImpliedDoVariable> ::= T_IDENT
+ ;
+<xIntrinsicProcedureName> ::= T_IDENT
+ ;
+%type Token
+<xModuleName> ::= T_IDENT {: return $1; :}
+ ;
+<xNamelistGroupName> ::= T_IDENT
+ ;
+<xObjectName> ::= T_IDENT
+ ;
+%type Token
+<xProgramName> ::= T_IDENT {: return $1; :}
+ ;
+[xSFDummyArgName] <xSFDummyArgName> ::= <xName>
+ ; # JO - Was T_IDENT but caused r/r conflict
+# JO - $
+#<xSFVarName> ::= T_IDENT $T_COMMA $T_RPAREN ;
+[xSFVarName] <xSFVarName> ::= <xName>
+ ; # JO - Was T_IDENT but caused r/r conflict
+%type Token
+<xSubroutineName> ::= T_IDENT {: return $1; :}
+ ;
+<xSubroutineNameUse> ::= T_IDENT
+ ;
+<xTypeName> ::= T_IDENT
+ ;
+<xUseName> ::= T_IDENT
+ ;
+
+<xLblDef> ::=
+ empty
+ | <xLabel>
+ ;
+
+<< Section: Deleted Features >>
+
+#/***** DELETED FEATURES *****/
+#
+#/* Real and double precision do variables */
+#
+## R821
+#/* Punt on this as it involves introducing more complicated
+#* conditional compilation features in main standard
+#*/
+#
+## R822
+#/* Punt on this as it involves introducing more complicated
+#* conditional compilation features in main standard
+#*/
+#
+## R921
+#/* Punt on this as it involves introducing more complicated
+#* conditional compilation features in main standard
+#*/
+#
+# R216
+<xActionStmt> ::=
+ <xAssignStmt>
+ | <xAssignedGotoStmt>
+ | <xPauseStmt>
+ ;
+
+#/* Pause statement */
+<xPauseStmt> ::=
+ <xLblDef> T_PAUSE T_EOS
+ | <xLblDef> T_PAUSE T_ICON T_EOS
+ | <xLblDef> T_PAUSE T_SCON T_EOS
+ ;
+
+#/* Assign Statement */
+<xAssignStmt> ::=
+ <xLblDef> T_ASSIGN <xLblRef> T_TO <xVariableName> T_EOS
+ ;
+
+#/* Assigned GOTO Statement */
+<xAssignedGotoStmt> ::=
+ <xLblDef> <GoToKw> <xVariableName> T_EOS
+ | <xLblDef> <GoToKw> <xVariableName> T_LPAREN <xLblRefList> T_RPAREN T_EOS
+ | <xLblDef> <GoToKw> <xVariableComma> T_LPAREN <xLblRefList> T_RPAREN T_EOS
+ ;
+<xVariableComma> ::= <xVariableName> T_COMMA
+ ;
+
+#/* H edit descriptor */
+#
+## R305
+#<xConstant> ::=
+# <xHcon> ;
+#
+## R1003
+#<xEditElement> ::=
+# <xHcon> ;
+#
+## R1212
+#<xSubroutineArg> ::=
+# <xHcon> |
+# <xName> T_EQUALS <xHcon> ;
diff --git a/org.eclipse.photran.core/parser/org/eclipse/photran/internal/core/f95parser/FortranProcessor.java b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FortranProcessor.java
index 8f642d46..6c2adc74 100644
--- a/org.eclipse.photran.core/parser/org/eclipse/photran/internal/core/f95parser/FortranProcessor.java
+++ b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FortranProcessor.java
@@ -1,4 +1,4 @@
-package org.eclipse.photran.internal.core.f95parser;
+package org.eclipse.photran.internal.core.f95modelparser;
import java.io.InputStream;
import java.util.Map;
diff --git a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FreeFormLexerPhase1.flex b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FreeFormLexerPhase1.flex
new file mode 100644
index 00000000..a4e2f3df
--- /dev/null
+++ b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FreeFormLexerPhase1.flex
@@ -0,0 +1,415 @@
+/*
+ * First phase of free form lexical analysis for Fortran 95 parser
+ *
+ * FreeFormLexerPhase1 acts as a "token stream" feeding FreeFormLexerPhase2
+ * (See FreeFormLexerPhase2.java and f95t.bnf)
+ *
+ * @author Jeffrey Overbey
+ *
+ * @see FreeFormLexerPhase2
+ * @see Parser
+ *
+ * NOTE: Get rid of (space out) "yybegin(YYINITIAL);" in the lines
+ * for any tokens that can appear in an IMPLICIT statement
+ * (It was also omitted in the lines for T_SLASH so that
+ * INTERFACE OPERATOR (/) would tokenize correctly.)
+ */
+
+package org.eclipse.photran.internal.core.f95parser;
+import java.util.List;
+import java.util.LinkedList;
+
+%%
+
+%class FreeFormLexerPhase1
+%throws Exception
+%char
+%line
+%column
+%implements ILexer
+%ignorecase
+%type Token
+%{
+ private Token token(Terminal terminal)
+ {
+ Token t = new Token();
+ t.setTerminal(terminal);
+ t.setFilename(this.filename);
+
+ if (terminal == Terminal.T_SCON)
+ {
+ String sbText = stringBuffer.toString();
+ t.setOffset(sbOffset);
+ t.setLength(sbText.length());
+ t.setText(sbText);
+ t.setStartLine(sbLine);
+ t.setStartCol(sbCol);
+ }
+ else
+ {
+ t.setOffset(yychar);
+ t.setLength(yylength());
+ t.setText(yytext());
+ t.setStartLine(yyline+1);
+ t.setStartCol(yycolumn+1);
+ }
+
+ // Iterate through the string to determine the ending line and column
+ t.setEndLine(t.getStartLine());
+ t.setEndCol(t.getStartCol()-1);
+ for (int i = 0; i < t.getLength(); i++)
+ {
+ if (t.getText().charAt(i) == '\n')
+ {
+ t.setEndLine(t.getEndLine()+1);
+ t.setEndCol(1);
+ }
+ else t.setEndCol(t.getEndCol()+1);
+ }
+
+ return t;
+ }
+
+ //public static void main(String[] args) throws Exception
+ //{
+ // FreeFormLexerPhase2 l = new FreeFormLexerPhase2(System.in);
+ // Parser.parse(l);
+ //}
+
+ private StringBuffer stringBuffer = null;
+
+ private boolean wantEos = false;
+
+ private int sbOffset = -1;
+ private int sbLine = -1;
+ private int sbCol = -1;
+
+ private String filename = "<stdin>";
+ public void setFilename(String fn)
+ {
+ filename = fn;
+ }
+
+ private List/*<NonTreeToken>*/ nonTreeTokens = new LinkedList();
+ public List/*<NonTreeToken>*/ getNonTreeTokens()
+ {
+ return nonTreeTokens;
+ }
+
+ private void storeNonTreeToken()
+ {
+ nonTreeTokens.add(new NonTreeToken(this.filename,
+ yychar, // int offset
+ yyline+1, // int row
+ yycolumn+1, // int col
+ yytext()));
+ }
+%}
+
+LineTerminator = \r\n|\n|\r
+WhiteSpace = [ \t\f]+
+
+Comment = "!" [^\r\n]*
+
+StarredType = ("*"[0-9]+)?
+
+Dig = [0-9]+
+EExp = ("E"|"e")("+"|"-")?{Dig}
+DExp = ("D"|"d")("+"|"-")?{Dig}
+Sig1 = ({Dig} "." [0-9]+ | "." {Dig})
+Sig2 = {Dig} "."
+Sig = {Sig1} | {Sig2}
+DdotD = {Dig} "." {Dig}
+Efw = [Ee] {Dig}
+Range = [a-zA-Z](-[a-zA-Z])?
+
+Bcon = ( B ' [0-1]+ ' | B \" [0-1]+ \" )
+Ocon = ( O ' [0-7]+ ' | O \" [0-7]+ \" )
+Zcon = ( Z ' [0-9A-Fa-f]+ ' | Z \" [0-9A-Fa-f]+ \" )
+
+Dcon1 = {Dig}{DExp} | {Sig}{DExp} | {Sig1}
+Dcon2 = {Sig2}
+Fcon = [IiBbOoZzFfDd] {WhiteSpace}* {DdotD} | (E [NnSs]? | e [NnSs]? | G | g) {WhiteSpace}* {DdotD} {Efw}?
+Icon = ( {Dig} | {Dig} ("E"|"e") {Dig} "." {Dig} )
+Pcon = ("+"|"-")? {Dig} (P|p)
+Rcon1 = {Dig}{EExp} | {Sig}{EExp} | {Sig1}
+Rcon2 = {Sig2}
+Xcon = {Dig} (X|x)
+Xdop = \. [A-Za-z]+ \.
+Ident = [A-Za-z][A-Za-z0-9_]*
+xImpl = "(" [ \t]* {Range} ([ \t]* "," [ \t]* {Range})* ")"
+xImplLkahead = [ \t\f]*(","|";"|{LineTerminator}|"!")
+
+NumDotLkahead = [^A-Za-z]
+
+LineContinuation = "&"(({WhiteSpace}|{Comment})*{LineTerminator})+({WhiteSpace}*"&")?
+
+CppIfdef="#ifdef"[^\r\n]*{LineTerminator}
+CppIfndef="#ifndef"[^\r\n]*{LineTerminator}
+CppIf="#if"[^\r\n]*{LineTerminator}
+CppElse="#else"[^\r\n]*{LineTerminator}
+CppElif="#elif"[^\r\n]*{LineTerminator}
+CppInclude="#include"[^\r\n]*{LineTerminator}
+CppDefine="#define"[^\r\n]*{LineTerminator}
+CppUndef="#undef"[^\r\n]*{LineTerminator}
+CppLine="#line"[^\r\n]*{LineTerminator}
+CppError="#error"[^\r\n]*{LineTerminator}
+CppPragma="#pragma"[^\r\n]*{LineTerminator}
+CppDirective={CppIfdef}|{CppIfndef}|{CppIf}|{CppElse}|{CppElif}|{CppInclude}|{CppDefine}|{CppUndef}|{CppLine}|{CppError}|{CppPragma}
+
+FortranInclude="INCLUDE"[^\r\n]*{LineTerminator}
+
+%state IMPLICIT
+%state QUOTED
+%state DBLQUOTED
+%state OPERATORorFORMAT
+
+%%
+
+/* Lexical rules */
+
+<YYINITIAL,IMPLICIT,OPERATORorFORMAT> {
+"ACCESS"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ACCESSEQ); }
+"ACTION"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ACTIONEQ); }
+"ADVANCE"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ADVANCEEQ); }
+"ALLOCATABLE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ALLOCATABLE); }
+"ALLOCATE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ALLOCATE); }
+".AND." { wantEos = true; return token(Terminal.T_AND); }
+"ASSIGN" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ASSIGN); }
+"ASSIGNMENT" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ASSIGNMENT); }
+"*" { wantEos = true; return token(Terminal.T_ASTERISK); }
+"BACKSPACE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_BACKSPACE); }
+"BLANK"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_BLANKEQ); }
+"BLOCK" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_BLOCK); }
+"BLOCK"[ \t]*"DATA" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_BLOCKDATA); }
+"CALL" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_CALL); }
+"CASE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_CASE); }
+"CHARACTER"{StarredType} { wantEos = true; return token(Terminal.T_CHARACTER); }
+"CLOSE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_CLOSE); }
+":" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_COLON); }
+"," { wantEos = true; return token(Terminal.T_COMMA); }
+"COMMON" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_COMMON); }
+"COMPLEX"{StarredType} { wantEos = true; return token(Terminal.T_COMPLEX); }
+"CONTAINS" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_CONTAINS); }
+"CONTINUE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_CONTINUE); }
+"CYCLE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_CYCLE); }
+"DATA" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_DATA); }
+"DEALLOCATE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_DEALLOCATE); }
+"DEFAULT" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_DEFAULT); }
+"DELIM"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_DELIMEQ); }
+"DIMENSION" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_DIMENSION); }
+"DIRECT"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_DIRECTEQ); }
+"DO" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_DO); }
+"DOUBLE"{StarredType} { wantEos = true; return token(Terminal.T_DOUBLE); }
+"DOUBLEPRECISION"{StarredType} { wantEos = true; return token(Terminal.T_DOUBLEPRECISION); }
+"ELEMENTAL" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ELEMENTAL); }
+"ELSE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ELSE); }
+"ELSEIF" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ELSEIF); }
+"ELSEWHERE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ELSEWHERE); }
+"END" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_END); }
+"ENDBLOCK" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENDBLOCK); }
+"ENDBLOCKDATA" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENDBLOCKDATA); }
+"ENDDO" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENDDO); }
+"END"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENDEQ); }
+"ENDFILE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENDFILE); }
+"ENDFORALL" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENDFORALL); }
+"ENDFUNCTION" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENDFUNCTION); }
+"ENDIF" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENDIF); }
+"ENDINTERFACE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENDINTERFACE); }
+"ENDMODULE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENDMODULE); }
+"ENDPROGRAM" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENDPROGRAM); }
+"ENDSELECT" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENDSELECT); }
+"ENDSUBROUTINE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENDSUBROUTINE); }
+"ENDTYPE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENDTYPE); }
+"ENDWHERE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENDWHERE); }
+"ENTRY" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENTRY); }
+"EOR"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_EOREQ); }
+".EQ." { wantEos = true; return token(Terminal.T_EQ); }
+"==" { wantEos = true; return token(Terminal.T_EQEQ); }
+"=>" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_EQGREATERTHAN); }
+"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_EQUALS); }
+"EQUIVALENCE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_EQUIVALENCE); }
+".EQV." { wantEos = true; return token(Terminal.T_EQV); }
+"ERR"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ERREQ); }
+"EXIST"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_EXISTEQ); }
+"EXIT" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_EXIT); }
+"EXTERNAL" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_EXTERNAL); }
+".FALSE." { wantEos = true; return token(Terminal.T_FALSE); }
+"FILE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_FILE); }
+"FILE"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_FILEEQ); }
+"FMT"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_FMTEQ); }
+"FORALL" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_FORALL); }
+"FORMAT" { wantEos = true; yybegin(OPERATORorFORMAT); return token(Terminal.T_FORMAT); }
+"FORMATTED"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_FORMATTEDEQ); }
+"FORM"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_FORMEQ); }
+"FUNCTION" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_FUNCTION); }
+".GE." { wantEos = true; return token(Terminal.T_GE); }
+"GO" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_GO); }
+"GOTO" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_GOTO); }
+">" { wantEos = true; return token(Terminal.T_GREATERTHAN); }
+">=" { wantEos = true; return token(Terminal.T_GREATERTHANEQ); }
+".GT." { wantEos = true; return token(Terminal.T_GT); }
+"IF" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_IF); }
+"IMPLICIT" { wantEos = true; yybegin(IMPLICIT); return token(Terminal.T_IMPLICIT); }
+"IN" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_IN); }
+"INOUT" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_INOUT); }
+"INQUIRE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_INQUIRE); }
+"INTEGER"{StarredType} { wantEos = true; return token(Terminal.T_INTEGER); }
+"INTENT" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_INTENT); }
+"INTERFACE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_INTERFACE); }
+"INTRINSIC" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_INTRINSIC); }
+"IOLENGTH"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_IOLENGTHEQ); }
+"IOSTAT"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_IOSTATEQ); }
+"KIND"[ \t]*"=" { wantEos = true; return token(Terminal.T_KINDEQ); }
+".LE." { wantEos = true; return token(Terminal.T_LE); }
+"LEN"[ \t]*"=" { wantEos = true; return token(Terminal.T_LENEQ); }
+"<" { wantEos = true; return token(Terminal.T_LESSTHAN); }
+"<=" { wantEos = true; return token(Terminal.T_LESSTHANEQ); }
+"LOGICAL"{StarredType} { wantEos = true; return token(Terminal.T_LOGICAL); }
+"(" { wantEos = true; return token(Terminal.T_LPAREN); }
+".LT." { wantEos = true; return token(Terminal.T_LT); }
+"-" { wantEos = true; return token(Terminal.T_MINUS); }
+"MODULE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_MODULE); }
+"NAMED"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_NAMEDEQ); }
+"NAME"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_NAMEEQ); }
+"NAMELIST" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_NAMELIST); }
+".NE." { wantEos = true; return token(Terminal.T_NE); }
+".NEQV." { wantEos = true; return token(Terminal.T_NEQV); }
+"NEXTREC"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_NEXTRECEQ); }
+"NML"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_NMLEQ); }
+"NONE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_NONE); }
+".NOT." { wantEos = true; return token(Terminal.T_NOT); }
+"NULL" { wantEos = true; return token(Terminal.T_NULL); }
+"NULLIFY" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_NULLIFY); }
+"NUMBER"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_NUMBEREQ); }
+"ONLY" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ONLY); }
+"OPEN" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_OPEN); }
+"OPENED"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_OPENEDEQ); }
+"OPERATOR" { wantEos = true; yybegin(OPERATORorFORMAT); return token(Terminal.T_OPERATOR); }
+"OPTIONAL" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_OPTIONAL); }
+".OR." { wantEos = true; return token(Terminal.T_OR); }
+"OUT" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_OUT); }
+"PAD"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_PADEQ); }
+"PARAMETER" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_PARAMETER); }
+"PAUSE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_PAUSE); }
+"%" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_PERCENT); }
+"+" { wantEos = true; return token(Terminal.T_PLUS); }
+"POINTER" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_POINTER); }
+"POSITION"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_POSITIONEQ); }
+"**" { wantEos = true; return token(Terminal.T_POW); }
+"PRECISION" { wantEos = true; return token(Terminal.T_PRECISION); }
+"PRINT" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_PRINT); }
+"PRIVATE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_PRIVATE); }
+"PROCEDURE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_PROCEDURE); }
+"PROGRAM" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_PROGRAM); }
+"PUBLIC" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_PUBLIC); }
+"PURE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_PURE); }
+"READ" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_READ); }
+"READ"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_READEQ); }
+"READWRITE"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_READWRITEEQ); }
+"REAL"{StarredType} { wantEos = true; return token(Terminal.T_REAL); }
+"REC"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_RECEQ); }
+"RECL"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_RECLEQ); }
+"RECURSIVE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_RECURSIVE); }
+"RESULT" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_RESULT); }
+"RETURN" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_RETURN); }
+"REWIND" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_REWIND); }
+")" { wantEos = true; return token(Terminal.T_RPAREN); }
+"SAVE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_SAVE); }
+"SELECT" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_SELECT); }
+"SELECTCASE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_SELECTCASE); }
+"SEQUENCE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_SEQUENCE); }
+"SEQUENTIAL"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_SEQUENTIALEQ); }
+"SIZE"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_SIZEEQ); }
+"/" { wantEos = true; return token(Terminal.T_SLASH); }
+"/=" { wantEos = true; return token(Terminal.T_SLASHEQ); }
+"//" { wantEos = true; return token(Terminal.T_SLASHSLASH); }
+"STAT"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_STATEQ); }
+"STATUS"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_STATUSEQ); }
+"STOP" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_STOP); }
+"SUBROUTINE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_SUBROUTINE); }
+"TARGET" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_TARGET); }
+"THEN" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_THEN); }
+"TO" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_TO); }
+".TRUE." { wantEos = true; return token(Terminal.T_TRUE); }
+"TYPE" { wantEos = true; return token(Terminal.T_TYPE); }
+"_" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_UNDERSCORE); }
+"UNFORMATTED"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_UNFORMATTEDEQ); }
+"UNIT"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_UNITEQ); }
+"USE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_USE); }
+"WHERE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_WHERE); }
+"WHILE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_WHILE); }
+"WRITE" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_WRITE); }
+"WRITE"[ \t]*"=" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_WRITEEQ); }
+{Bcon} { wantEos = true; return token(Terminal.T_BCON); }
+{Dcon1} { wantEos = true; return token(Terminal.T_DCON); }
+{Dcon2}/{NumDotLkahead} { wantEos = true; return token(Terminal.T_DCON); }
+{Fcon} { wantEos = true; return token(Terminal.T_FCON); }
+{Icon} { wantEos = true; return token(Terminal.T_ICON); }
+{Ident} { wantEos = true; return token(Terminal.T_IDENT); }
+{Ocon} { wantEos = true; return token(Terminal.T_OCON); }
+{Pcon} { wantEos = true; return token(Terminal.T_PCON); }
+{Rcon1} { wantEos = true; return token(Terminal.T_RCON); }
+{Rcon2}/{NumDotLkahead} { wantEos = true; return token(Terminal.T_RCON); }
+{Xcon} { wantEos = true; return token(Terminal.T_XCON); }
+{Xdop} { wantEos = true; return token(Terminal.T_XDOP); }
+{Zcon} { wantEos = true; return token(Terminal.T_ZCON); }
+"'" { stringBuffer = new StringBuffer();
+ stringBuffer.append('\'');
+ sbOffset = yychar;
+ sbLine = yyline+1;
+ sbCol = yycolumn+1;
+ yybegin(QUOTED); }
+\" { stringBuffer = new StringBuffer();
+ stringBuffer.append('\"');
+ sbOffset = yychar;
+ sbLine = yyline+1;
+ sbCol = yycolumn+1;
+ yybegin(DBLQUOTED); }
+{Comment} { storeNonTreeToken(); }
+{WhiteSpace} { }
+{CppDirective} { storeNonTreeToken(); }
+{FortranInclude} { storeNonTreeToken(); }
+{LineContinuation} { storeNonTreeToken(); }
+{LineTerminator}|";" { boolean b = wantEos; wantEos = false; if (b) return token(Terminal.T_EOS); }
+<<EOF>> { wantEos = false; yybegin(YYINITIAL); return token(Terminal.END_OF_INPUT); }
+}
+
+<IMPLICIT> {
+{xImpl}/{xImplLkahead} { wantEos = true; return token(Terminal.T_XIMPL); }
+{xImpl}$ { wantEos = true; return token(Terminal.T_XIMPL); }
+}
+
+<YYINITIAL,IMPLICIT> {
+"(/" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_LPARENSLASH); }
+"/)" { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_SLASHRPAREN); }
+}
+
+<QUOTED> {
+"''" { stringBuffer.append('\''); }
+"'" { stringBuffer.append('\'');
+ yybegin(YYINITIAL);
+ wantEos = true;
+ return token(Terminal.T_SCON); }
+[^\n\r&']+ { stringBuffer.append( yytext() ); }
+{LineContinuation} { }
+"&" { stringBuffer.append( yytext() ); }
+[\n\r] { throw new Exception("Lexer Error (" + filename + ", line " + (yyline+1) + ", col " + (yycolumn+1) + "): String literal spans multiple lines without continuation"); }
+<<EOF>> { throw new Exception("Lexer Error (" + filename + ", line " + (yyline+1) + ", col " + (yycolumn+1) + "): End of file encountered before string literal terminated"); }
+}
+
+<DBLQUOTED> {
+\"\" { stringBuffer.append('\"'); }
+\" { stringBuffer.append('\"');
+ yybegin(YYINITIAL);
+ wantEos = true;
+ return token(Terminal.T_SCON); }
+[^\n\r&\"]+ { stringBuffer.append( yytext() ); }
+{LineContinuation} { }
+"&" { stringBuffer.append( yytext() ); }
+[\n\r] { throw new Exception("Lexer Error (" + filename + ", line " + (yyline+1) + ", col " + (yycolumn+1) + "): String literal spans multiple lines without continuation"); }
+<<EOF>> { throw new Exception("Lexer Error (" + filename + ", line " + (yyline+1) + ", col " + (yycolumn+1) + "): End of file encountered before string literal terminated"); }
+}
+
+/* Error */
+. { throw new Exception("Lexer Error (" + filename + ", line " + (yyline+1) + ", col " + (yycolumn+1) + "): Unexpected character " + yytext()); }
diff --git a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FreeFormLexerPhase1.java b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FreeFormLexerPhase1.java
new file mode 100644
index 00000000..8c60ec17
--- /dev/null
+++ b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FreeFormLexerPhase1.java
@@ -0,0 +1,3002 @@
+/* The following code was generated by JFlex 1.4.1 on 8/4/05 3:21 PM */
+
+/*
+ * First phase of free form lexical analysis for Fortran 95 parser
+ *
+ * FreeFormLexerPhase1 acts as a "token stream" feeding FreeFormLexerPhase2
+ * (See FreeFormLexerPhase2.java and f95t.bnf)
+ *
+ * @author Jeffrey Overbey
+ *
+ * @see FreeFormLexerPhase2
+ * @see Parser
+ *
+ * NOTE: Get rid of (space out) "yybegin(YYINITIAL);" in the lines
+ * for any tokens that can appear in an IMPLICIT statement
+ * (It was also omitted in the lines for T_SLASH so that
+ * INTERFACE OPERATOR (/) would tokenize correctly.)
+ */
+
+package org.eclipse.photran.internal.core.f95modelparser;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.photran.internal.core.f95modelparser.Terminal;
+import org.eclipse.photran.internal.core.f95modelparser.Token;
+
+
+/**
+ * This class is a scanner generated by
+ * <a href="http://www.jflex.de/">JFlex</a> 1.4.1
+ * on 8/4/05 3:21 PM from the specification file
+ * <tt>FreeFormLexerPhase1.flex</tt>
+ */
+class FreeFormLexerPhase1 implements ILexer {
+
+ /** This character denotes the end of file */
+ public static final int YYEOF = -1;
+
+ /** initial size of the lookahead buffer */
+ private static final int ZZ_BUFFERSIZE = 16384;
+
+ /** lexical states */
+ public static final int OPERATORorFORMAT = 4;
+ public static final int DBLQUOTED = 3;
+ public static final int QUOTED = 2;
+ public static final int YYINITIAL = 0;
+ public static final int IMPLICIT = 1;
+
+ /**
+ * Translates characters to character classes
+ */
+ private static final char [] ZZ_CMAP = {
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 2, 54, 3, 1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 29, 4, 16, 34, 0, 52, 33, 14, 28, 31, 5, 8, 30, 9, 11, 53,
+ 15, 15, 18, 18, 18, 18, 18, 18, 6, 6, 46, 32, 51, 41, 50, 0,
+ 0, 20, 13, 37, 10, 7, 22, 24, 45, 21, 12, 44, 36, 40, 35, 17,
+ 25, 49, 39, 23, 42, 38, 43, 48, 26, 47, 19, 0, 0, 0, 0, 27,
+ 0, 20, 13, 37, 10, 7, 22, 24, 45, 21, 12, 44, 36, 40, 35, 17,
+ 25, 49, 39, 23, 42, 38, 43, 48, 26, 47, 19, 0, 0, 0, 0, 0
+ };
+
+ /**
+ * Translates DFA states to action switch labels.
+ */
+ private static final int [] ZZ_ACTION = zzUnpackAction();
+
+ private static final String ZZ_ACTION_PACKED_0 =
+ "\5\0\1\1\2\2\1\3\1\4\1\5\1\6\1\7"+
+ "\1\10\1\11\1\7\1\1\2\7\1\12\1\13\10\7"+
+ "\1\14\1\15\1\16\1\17\2\1\6\7\1\20\2\7"+
+ "\1\21\1\7\1\22\1\23\1\24\1\25\1\15\1\26"+
+ "\1\27\1\30\2\26\1\31\1\15\1\25\1\32\3\0"+
+ "\1\33\1\34\1\0\10\7\2\0\2\7\1\35\2\7"+
+ "\1\36\13\0\2\7\2\0\3\7\2\0\5\7\1\37"+
+ "\1\40\12\7\1\41\4\7\1\42\1\4\10\0\20\7"+
+ "\1\43\1\44\1\45\6\7\1\46\1\47\1\50\1\51"+
+ "\1\52\2\0\1\53\1\3\2\0\1\54\1\55\1\0"+
+ "\1\36\1\0\1\36\3\0\3\7\1\56\5\7\2\0"+
+ "\7\7\1\57\15\0\3\7\2\0\3\7\1\60\2\0"+
+ "\42\7\1\0\1\4\10\0\17\7\1\61\17\7\4\0"+
+ "\1\3\1\0\1\55\1\62\1\0\1\63\1\7\1\64"+
+ "\7\7\1\0\1\7\1\65\4\7\1\66\1\0\1\67"+
+ "\1\7\1\62\4\7\1\70\2\7\1\71\1\0\1\72"+
+ "\2\0\1\73\1\74\1\75\2\0\1\76\1\77\1\0"+
+ "\1\100\3\7\1\101\1\102\2\7\1\103\1\104\17\7"+
+ "\1\105\1\7\1\0\1\106\2\7\1\107\2\7\1\110"+
+ "\1\7\1\111\2\7\1\0\1\112\3\7\1\113\5\7"+
+ "\3\0\1\4\3\0\1\7\1\114\1\7\1\115\1\7"+
+ "\1\0\1\116\1\0\1\117\4\7\1\120\1\121\5\7"+
+ "\1\122\1\123\1\7\1\0\2\7\1\124\4\7\1\125"+
+ "\1\126\4\7\1\0\3\127\1\0\1\6\2\7\1\130"+
+ "\1\7\1\131\12\7\1\132\12\7\1\133\1\134\2\0"+
+ "\1\135\1\0\1\7\1\136\13\7\1\137\11\7\1\0"+
+ "\1\140\1\0\1\141\3\7\1\0\1\142\1\7\1\0"+
+ "\1\7\1\143\2\7\1\144\5\7\1\145\1\7\3\0"+
+ "\2\7\1\0\1\7\1\146\7\7\1\147\1\7\1\150"+
+ "\1\0\1\151\1\7\1\0\1\152\1\7\1\0\1\7"+
+ "\1\0\1\153\5\7\1\0\1\154\1\155\1\156\1\157"+
+ "\1\0\1\160\15\7\1\161\4\7\1\0\1\162\1\163"+
+ "\2\7\1\0\1\164\1\165\2\7\2\0\1\166\4\7"+
+ "\1\167\7\7\1\170\4\7\1\171\1\172\1\7\1\173"+
+ "\6\7\1\174\4\7\2\0\1\7\1\0\1\175\7\7"+
+ "\1\176\3\7\1\123\1\177\1\7\1\200\1\201\1\202"+
+ "\1\203\1\0\1\204\4\7\1\205\5\7\1\206\5\7"+
+ "\1\207\1\0\1\7\1\0\1\210\1\7\1\211\2\7"+
+ "\2\0\1\212\5\7\1\0\1\213\1\0\1\214\1\0"+
+ "\1\215\2\7\1\216\2\7\1\217\7\7\1\0\1\220"+
+ "\1\221\3\7\1\222\1\7\1\223\2\7\1\224\1\0"+
+ "\1\225\1\226\2\7\1\227\4\7\1\230\1\231\7\7"+
+ "\1\232\4\7\1\163\4\7\1\0\1\233\1\234\1\0"+
+ "\1\235\1\7\1\236\2\7\1\0\2\7\1\237\1\7"+
+ "\1\240\1\7\1\241\6\7\1\0\1\242\1\243\1\0"+
+ "\1\244\1\245\1\0\6\7\1\246\1\7\1\247\2\7"+
+ "\1\250\1\251\1\252\3\7\1\253\1\254\1\255\1\0"+
+ "\2\7\1\0\1\256\1\216\1\257\1\260\4\7\1\0"+
+ "\1\261\1\262\1\263\1\264\1\226\1\227\1\265\2\7"+
+ "\1\266\4\7\1\267\1\7\1\270\1\7\1\255\1\271"+
+ "\1\7\1\0\1\272\1\273\1\7\1\274\1\0\1\7"+
+ "\1\0\1\275\2\7\1\276\1\7\1\277\1\7\1\300"+
+ "\1\0\1\301\1\265\1\7\1\302\1\303\2\7\1\0"+
+ "\1\304\1\305\2\7\1\306\1\0\1\306";
+
+ private static int [] zzUnpackAction() {
+ int [] result = new int[863];
+ int offset = 0;
+ offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackAction(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ do result[j++] = value; while (--count > 0);
+ }
+ return j;
+ }
+
+
+ /**
+ * Translates a state to a row index in the transition table
+ */
+ private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
+
+ private static final String ZZ_ROWMAP_PACKED_0 =
+ "\0\0\0\67\0\156\0\245\0\334\0\u0113\0\u014a\0\u0113"+
+ "\0\u0181\0\u01b8\0\u01ef\0\u0226\0\u025d\0\u0294\0\u0294\0\u02cb"+
+ "\0\u0302\0\u0339\0\u0370\0\u0113\0\u0113\0\u03a7\0\u03de\0\u0415"+
+ "\0\u044c\0\u0483\0\u04ba\0\u04f1\0\u0528\0\u0113\0\u055f\0\u0113"+
+ "\0\u0113\0\u0596\0\u05cd\0\u0604\0\u063b\0\u0672\0\u06a9\0\u06e0"+
+ "\0\u0717\0\u074e\0\u0785\0\u07bc\0\u0113\0\u07f3\0\u082a\0\u0861"+
+ "\0\u0113\0\u0898\0\u08cf\0\u0906\0\u0113\0\u093d\0\u0974\0\u09ab"+
+ "\0\u09e2\0\u0113\0\u0a19\0\u0113\0\u0a50\0\u0a87\0\u0abe\0\u0113"+
+ "\0\u0113\0\u0af5\0\u0b2c\0\u0b63\0\u0b9a\0\u0bd1\0\u0c08\0\u0c3f"+
+ "\0\u0c76\0\u0cad\0\u0ce4\0\u0d1b\0\u0d52\0\u0d89\0\u0dc0\0\u0df7"+
+ "\0\u0e2e\0\u0e65\0\u0e9c\0\u0ed3\0\u0f0a\0\u0f41\0\u0f78\0\u0faf"+
+ "\0\u0fe6\0\u101d\0\u1054\0\u108b\0\u10c2\0\u10f9\0\u1130\0\u1167"+
+ "\0\u119e\0\u11d5\0\u120c\0\u1243\0\u127a\0\u12b1\0\u12e8\0\u131f"+
+ "\0\u1356\0\u138d\0\u13c4\0\u0339\0\u13fb\0\u1432\0\u1469\0\u14a0"+
+ "\0\u14d7\0\u150e\0\u1545\0\u157c\0\u15b3\0\u15ea\0\u1621\0\u1658"+
+ "\0\u168f\0\u16c6\0\u16fd\0\u1734\0\u0113\0\u176b\0\u0596\0\u17a2"+
+ "\0\u17d9\0\u1810\0\u1847\0\u187e\0\u18b5\0\u18ec\0\u1923\0\u195a"+
+ "\0\u1991\0\u19c8\0\u19ff\0\u1a36\0\u1a6d\0\u1aa4\0\u1adb\0\u1b12"+
+ "\0\u1b49\0\u1b80\0\u1bb7\0\u1bee\0\u1c25\0\u1c5c\0\u0113\0\u0113"+
+ "\0\u0339\0\u1c93\0\u1cca\0\u1d01\0\u1d38\0\u1d6f\0\u1da6\0\u0113"+
+ "\0\u0113\0\u0113\0\u0113\0\u0113\0\u1ddd\0\u1e14\0\u0113\0\u1e4b"+
+ "\0\u0974\0\u1e82\0\u0113\0\u1eb9\0\u1ef0\0\u1f27\0\u1f27\0\u0113"+
+ "\0\u1f5e\0\u1f95\0\u1fcc\0\u2003\0\u203a\0\u2071\0\u20a8\0\u20df"+
+ "\0\u2116\0\u214d\0\u2184\0\u21bb\0\u21f2\0\u2229\0\u2260\0\u2297"+
+ "\0\u22ce\0\u2305\0\u233c\0\u2373\0\u23aa\0\u0113\0\u23e1\0\u2418"+
+ "\0\u244f\0\u2486\0\u24bd\0\u24f4\0\u252b\0\u2562\0\u2599\0\u25d0"+
+ "\0\u2607\0\u263e\0\u2675\0\u26ac\0\u26e3\0\u271a\0\u2751\0\u2788"+
+ "\0\u27bf\0\u27f6\0\u282d\0\u0339\0\u2864\0\u289b\0\u28d2\0\u2909"+
+ "\0\u2940\0\u2977\0\u29ae\0\u29e5\0\u2a1c\0\u2a53\0\u2a8a\0\u2ac1"+
+ "\0\u2af8\0\u2b2f\0\u2b66\0\u2b9d\0\u2bd4\0\u2c0b\0\u2c42\0\u2c79"+
+ "\0\u2cb0\0\u2ce7\0\u2d1e\0\u2d55\0\u2d8c\0\u2dc3\0\u2dfa\0\u2e31"+
+ "\0\u2e68\0\u2e9f\0\u2ed6\0\u2f0d\0\u2f44\0\u2f7b\0\u2fb2\0\u2fe9"+
+ "\0\u176b\0\u0113\0\u3020\0\u3057\0\u308e\0\u30c5\0\u30fc\0\u3133"+
+ "\0\u316a\0\u31a1\0\u31d8\0\u320f\0\u3246\0\u327d\0\u32b4\0\u32eb"+
+ "\0\u3322\0\u3359\0\u3390\0\u33c7\0\u33fe\0\u3435\0\u346c\0\u34a3"+
+ "\0\u34da\0\u0339\0\u3511\0\u3548\0\u357f\0\u35b6\0\u35ed\0\u3624"+
+ "\0\u365b\0\u3692\0\u36c9\0\u3700\0\u3737\0\u376e\0\u37a5\0\u37dc"+
+ "\0\u3813\0\u384a\0\u3881\0\u38b8\0\u1e4b\0\u0113\0\u38ef\0\u1ef0"+
+ "\0\u3926\0\u395d\0\u0113\0\u3994\0\u0339\0\u39cb\0\u3a02\0\u3a39"+
+ "\0\u3a70\0\u3aa7\0\u3ade\0\u3b15\0\u3b4c\0\u3b83\0\u0113\0\u3bba"+
+ "\0\u3bf1\0\u3c28\0\u3c5f\0\u3c96\0\u3ccd\0\u0113\0\u3d04\0\u2229"+
+ "\0\u3d3b\0\u3d72\0\u3da9\0\u3de0\0\u0339\0\u3e17\0\u3e4e\0\u0113"+
+ "\0\u3e85\0\u0113\0\u3ebc\0\u3ef3\0\u0113\0\u0113\0\u0113\0\u3f2a"+
+ "\0\u3f61\0\u0113\0\u0113\0\u3f98\0\u0113\0\u3fcf\0\u4006\0\u403d"+
+ "\0\u0113\0\u4074\0\u40ab\0\u40e2\0\u0339\0\u0113\0\u4119\0\u4150"+
+ "\0\u4187\0\u41be\0\u41f5\0\u422c\0\u4263\0\u429a\0\u42d1\0\u4308"+
+ "\0\u433f\0\u4376\0\u43ad\0\u43e4\0\u441b\0\u4452\0\u4489\0\u44c0"+
+ "\0\u0113\0\u44f7\0\u452e\0\u0339\0\u4565\0\u459c\0\u0339\0\u45d3"+
+ "\0\u0339\0\u460a\0\u4641\0\u4678\0\u0113\0\u46af\0\u46e6\0\u471d"+
+ "\0\u0339\0\u4754\0\u478b\0\u47c2\0\u47f9\0\u4830\0\u4867\0\u489e"+
+ "\0\u48d5\0\u490c\0\u4943\0\u497a\0\u49b1\0\u49e8\0\u0339\0\u4a1f"+
+ "\0\u4a56\0\u4a8d\0\u4ac4\0\u0113\0\u4afb\0\u0113\0\u4b32\0\u4b69"+
+ "\0\u4ba0\0\u4bd7\0\u0339\0\u0339\0\u4c0e\0\u4c45\0\u4c7c\0\u4cb3"+
+ "\0\u4cea\0\u4d21\0\u4d58\0\u4d8f\0\u4dc6\0\u4dfd\0\u4e34\0\u0113"+
+ "\0\u4e6b\0\u4ea2\0\u4ed9\0\u4f10\0\u0339\0\u0339\0\u4f47\0\u4f7e"+
+ "\0\u4fb5\0\u4fec\0\u5023\0\u505a\0\u0113\0\u5091\0\u5091\0\u38ef"+
+ "\0\u50c8\0\u50ff\0\u0339\0\u5136\0\u0339\0\u516d\0\u51a4\0\u51db"+
+ "\0\u5212\0\u5249\0\u5280\0\u52b7\0\u52ee\0\u5325\0\u535c\0\u0339"+
+ "\0\u5393\0\u53ca\0\u5401\0\u5438\0\u546f\0\u54a6\0\u54dd\0\u5514"+
+ "\0\u554b\0\u5582\0\u0113\0\u0113\0\u55b9\0\u55f0\0\u0113\0\u5627"+
+ "\0\u565e\0\u5695\0\u56cc\0\u5703\0\u573a\0\u5771\0\u57a8\0\u57df"+
+ "\0\u5816\0\u584d\0\u5884\0\u58bb\0\u58f2\0\u0339\0\u5929\0\u5960"+
+ "\0\u5997\0\u59ce\0\u5a05\0\u5a3c\0\u5a73\0\u5aaa\0\u5ae1\0\u5b18"+
+ "\0\u0113\0\u5b4f\0\u0113\0\u5b86\0\u5bbd\0\u5bf4\0\u5c2b\0\u0113"+
+ "\0\u5c62\0\u5c99\0\u5cd0\0\u0113\0\u5d07\0\u5d3e\0\u0339\0\u5d75"+
+ "\0\u5dac\0\u5de3\0\u5e1a\0\u5e51\0\u0339\0\u5e88\0\u5ebf\0\u5ef6"+
+ "\0\u5f2d\0\u5f64\0\u5f9b\0\u5fd2\0\u6009\0\u0113\0\u6040\0\u6077"+
+ "\0\u60ae\0\u60e5\0\u611c\0\u6153\0\u618a\0\u0339\0\u61c1\0\u0339"+
+ "\0\u61f8\0\u0113\0\u622f\0\u6266\0\u0113\0\u629d\0\u62d4\0\u630b"+
+ "\0\u6342\0\u0113\0\u6379\0\u63b0\0\u63e7\0\u641e\0\u6455\0\u648c"+
+ "\0\u0113\0\u64c3\0\u0339\0\u0339\0\u64fa\0\u0113\0\u6531\0\u6568"+
+ "\0\u659f\0\u65d6\0\u660d\0\u6644\0\u667b\0\u66b2\0\u66e9\0\u6720"+
+ "\0\u6757\0\u678e\0\u67c5\0\u0339\0\u67fc\0\u6833\0\u686a\0\u68a1"+
+ "\0\u68d8\0\u0113\0\u690f\0\u6946\0\u697d\0\u69b4\0\u0113\0\u0113"+
+ "\0\u69eb\0\u6a22\0\u6a59\0\u6a90\0\u0113\0\u6ac7\0\u6afe\0\u6b35"+
+ "\0\u6b6c\0\u6ba3\0\u6bda\0\u6c11\0\u6c48\0\u6c7f\0\u6cb6\0\u6ced"+
+ "\0\u6d24\0\u0339\0\u6d5b\0\u6d92\0\u6dc9\0\u6e00\0\u0339\0\u6e37"+
+ "\0\u6e6e\0\u6ea5\0\u6edc\0\u6f13\0\u6f4a\0\u6f81\0\u6fb8\0\u6fef"+
+ "\0\u0339\0\u7026\0\u705d\0\u7094\0\u70cb\0\u7102\0\u7139\0\u7170"+
+ "\0\u71a7\0\u0113\0\u71de\0\u7215\0\u724c\0\u7283\0\u72ba\0\u72f1"+
+ "\0\u7328\0\u0339\0\u735f\0\u7396\0\u73cd\0\u62d4\0\u0339\0\u7404"+
+ "\0\u0339\0\u0339\0\u0339\0\u0339\0\u743b\0\u0113\0\u7472\0\u74a9"+
+ "\0\u74e0\0\u7517\0\u0339\0\u754e\0\u7585\0\u75bc\0\u75f3\0\u762a"+
+ "\0\u0339\0\u7661\0\u7698\0\u76cf\0\u7706\0\u773d\0\u0339\0\u7774"+
+ "\0\u77ab\0\u77e2\0\u0113\0\u7819\0\u0113\0\u7850\0\u7887\0\u78be"+
+ "\0\u78f5\0\u0113\0\u792c\0\u7963\0\u799a\0\u79d1\0\u7a08\0\u7a3f"+
+ "\0\u0113\0\u7a76\0\u0113\0\u7aad\0\u0113\0\u7ae4\0\u7b1b\0\u7b52"+
+ "\0\u7b89\0\u7bc0\0\u0339\0\u7bf7\0\u7c2e\0\u7c65\0\u7c9c\0\u7cd3"+
+ "\0\u7d0a\0\u7d41\0\u7d78\0\u0113\0\u0339\0\u7daf\0\u7de6\0\u7e1d"+
+ "\0\u0339\0\u7e54\0\u0339\0\u7e8b\0\u7ec2\0\u0339\0\u7ef9\0\u0113"+
+ "\0\u7f30\0\u7f67\0\u7f9e\0\u7fd5\0\u800c\0\u8043\0\u807a\0\u80b1"+
+ "\0\u0339\0\u80e8\0\u811f\0\u8156\0\u818d\0\u81c4\0\u81fb\0\u8232"+
+ "\0\u8269\0\u0339\0\u82a0\0\u82d7\0\u830e\0\u8345\0\u7774\0\u837c"+
+ "\0\u83b3\0\u83ea\0\u8421\0\u8458\0\u0339\0\u0339\0\u848f\0\u0113"+
+ "\0\u84c6\0\u0339\0\u84fd\0\u8534\0\u856b\0\u85a2\0\u85d9\0\u0339"+
+ "\0\u8610\0\u0339\0\u8647\0\u0339\0\u867e\0\u86b5\0\u86ec\0\u8723"+
+ "\0\u875a\0\u8791\0\u87c8\0\u0113\0\u0339\0\u87ff\0\u0339\0\u0339"+
+ "\0\u8836\0\u886d\0\u88a4\0\u88db\0\u8912\0\u8949\0\u8980\0\u0339"+
+ "\0\u89b7\0\u0339\0\u89ee\0\u8a25\0\u0339\0\u0339\0\u0339\0\u8a5c"+
+ "\0\u8a93\0\u8aca\0\u0339\0\u0339\0\u0339\0\u8b01\0\u8b38\0\u8b6f"+
+ "\0\u8ba6\0\u0113\0\u856b\0\u0339\0\u0339\0\u8bdd\0\u8c14\0\u8c4b"+
+ "\0\u8c82\0\u8cb9\0\u0113\0\u0339\0\u0339\0\u0339\0\u87ff\0\u8836"+
+ "\0\u8cf0\0\u8d27\0\u8d5e\0\u0339\0\u8d95\0\u8dcc\0\u8e03\0\u8e3a"+
+ "\0\u0339\0\u8e71\0\u0339\0\u8ea8\0\u0113\0\u0339\0\u8edf\0\u8f16"+
+ "\0\u0113\0\u0339\0\u8f4d\0\u0339\0\u8f84\0\u8fbb\0\u8ff2\0\u0113"+
+ "\0\u9029\0\u9060\0\u0339\0\u9097\0\u0339\0\u90ce\0\u0339\0\u9105"+
+ "\0\u0113\0\u8f84\0\u913c\0\u0339\0\u0339\0\u9173\0\u91aa\0\u91e1"+
+ "\0\u0113\0\u0339\0\u9218\0\u924f\0\u9286\0\u92bd\0\u92bd";
+
+ private static int [] zzUnpackRowMap() {
+ int [] result = new int[863];
+ int offset = 0;
+ offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackRowMap(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int high = packed.charAt(i++) << 16;
+ result[j++] = high | packed.charAt(i++);
+ }
+ return j;
+ }
+
+ /**
+ * The transition table of the DFA
+ */
+ private static final int [] ZZ_TRANS = zzUnpackTrans();
+
+ private static final String ZZ_TRANS_PACKED_0 =
+ "\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15"+
+ "\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\14"+
+ "\1\25\1\26\1\14\1\27\1\30\1\31\1\32\1\33"+
+ "\1\34\1\35\1\22\1\36\1\37\1\11\1\40\1\41"+
+ "\1\10\1\42\1\43\1\44\1\45\1\46\1\47\1\50"+
+ "\1\51\1\52\1\53\1\22\1\54\1\22\1\55\1\22"+
+ "\1\56\1\22\1\57\1\60\1\61\1\62\2\6\1\7"+
+ "\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\17"+
+ "\1\20\1\21\1\22\1\23\1\24\1\14\1\25\1\26"+
+ "\1\14\1\27\1\30\1\31\1\32\1\33\1\34\1\35"+
+ "\1\22\1\36\1\63\1\11\1\40\1\41\1\10\1\42"+
+ "\1\43\1\44\1\45\1\46\1\47\1\50\1\51\1\52"+
+ "\1\53\1\22\1\54\1\22\1\55\1\22\1\56\1\22"+
+ "\1\57\1\60\1\61\1\62\1\6\1\64\2\65\13\64"+
+ "\1\66\22\64\1\67\25\64\1\70\2\65\15\70\1\71"+
+ "\20\70\1\67\25\70\1\6\1\7\1\10\1\11\1\12"+
+ "\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22"+
+ "\1\23\1\24\1\14\1\25\1\26\1\14\1\27\1\30"+
+ "\1\31\1\32\1\33\1\34\1\35\1\22\1\36\1\72"+
+ "\1\11\1\40\1\41\1\10\1\42\1\43\1\44\1\45"+
+ "\1\46\1\47\1\50\1\51\1\52\1\53\1\22\1\54"+
+ "\1\22\1\55\1\22\1\56\1\22\1\57\1\60\1\61"+
+ "\1\73\1\6\71\0\1\10\67\0\1\11\31\0\1\11"+
+ "\31\0\1\12\2\0\64\12\5\0\1\74\67\0\1\14"+
+ "\1\75\2\0\1\76\1\77\3\0\1\14\2\0\1\14"+
+ "\6\0\1\100\1\101\37\0\1\102\2\0\1\103\1\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\103\1\0\1\104"+
+ "\1\103\4\22\1\105\2\22\1\106\1\22\1\0\1\102"+
+ "\5\0\1\107\1\110\2\22\1\111\1\22\1\0\4\22"+
+ "\1\0\2\22\1\112\13\0\1\113\10\0\1\113\2\0"+
+ "\1\113\47\0\1\114\2\0\1\115\1\116\2\0\1\22"+
+ "\1\0\2\22\1\0\1\115\1\0\1\117\1\115\1\22"+
+ "\1\120\1\121\6\22\1\0\1\114\5\0\6\22\1\0"+
+ "\4\22\1\0\3\22\13\0\1\122\1\123\2\0\1\124"+
+ "\1\0\2\124\1\0\1\122\1\0\1\125\1\122\1\124"+
+ "\1\126\1\124\1\127\1\124\1\130\2\124\10\0\1\131"+
+ "\1\132\4\124\1\0\1\133\3\124\1\0\3\124\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\6\22\1\0\4\22\1\0\3\22\10\0"+
+ "\1\114\2\0\1\115\1\22\2\0\1\22\1\0\2\22"+
+ "\1\134\1\115\1\135\1\22\1\115\1\22\1\136\7\22"+
+ "\1\0\1\114\5\0\1\22\1\137\4\22\1\0\4\22"+
+ "\1\0\3\22\10\0\1\114\2\0\1\115\1\22\2\0"+
+ "\1\22\1\0\2\22\1\140\1\115\1\141\1\22\1\115"+
+ "\6\22\1\142\2\22\1\0\1\114\5\0\1\143\2\22"+
+ "\1\144\2\22\1\0\4\22\1\0\3\22\10\0\1\114"+
+ "\2\0\1\115\1\22\2\0\1\22\1\0\2\22\1\145"+
+ "\1\115\1\146\1\22\1\115\11\22\1\0\1\114\5\0"+
+ "\6\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\147\1\0\2\22\1\0\1\22\1\0\6\22\1\150"+
+ "\4\22\7\0\1\22\1\151\1\152\3\22\1\0\4\22"+
+ "\1\0\3\22\10\0\1\114\2\0\1\115\1\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\115\1\0\1\153\1\115"+
+ "\3\22\1\154\5\22\1\0\1\114\5\0\1\155\4\22"+
+ "\1\156\1\0\4\22\1\0\3\22\10\0\1\114\2\0"+
+ "\1\115\1\22\2\0\1\22\1\0\2\22\1\0\1\115"+
+ "\1\0\1\157\1\115\2\22\1\160\6\22\1\0\1\114"+
+ "\5\0\3\22\1\161\1\22\1\162\1\0\4\22\1\0"+
+ "\3\22\13\0\1\22\1\163\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\3\22\1\164\1\165\6\22\7\0"+
+ "\3\22\1\166\2\22\1\0\1\167\3\22\1\0\3\22"+
+ "\10\0\1\102\2\0\1\103\1\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\103\1\0\1\170\1\103\11\22\1\0"+
+ "\1\102\5\0\6\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\1\171\2\22\1\172\7\22\7\0\3\22\1\173\1\174"+
+ "\1\22\1\0\4\22\1\0\3\22\72\0\1\175\2\0"+
+ "\2\176\1\177\1\200\30\0\1\177\40\0\1\201\2\0"+
+ "\1\202\12\0\1\203\3\0\1\204\12\0\1\205\1\0"+
+ "\1\206\26\0\1\22\1\207\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\1\210\2\22\1\211\7\22\7\0"+
+ "\3\22\1\212\1\22\1\213\1\0\4\22\1\0\3\22"+
+ "\13\0\1\22\1\214\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\1\215\12\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\1\216\2\22\1\217\7\22\7\0"+
+ "\1\22\1\220\4\22\1\0\3\22\1\221\1\0\1\222"+
+ "\2\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\6\22\1\223\4\22\7\0\1\224\5\22"+
+ "\1\0\4\22\1\0\3\22\13\0\1\22\1\225\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\6\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\1\226\12\22"+
+ "\7\0\6\22\1\0\4\22\1\0\3\22\56\0\1\227"+
+ "\10\0\1\230\12\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\1\231\2\22\1\232\7\22\7\0"+
+ "\6\22\1\0\3\22\1\233\1\0\1\234\2\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\4\22\1\235\6\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\4\22\1\236\1\22\1\0"+
+ "\3\22\1\237\1\0\3\22\56\0\1\240\66\0\1\241"+
+ "\54\0\1\242\11\0\1\243\13\0\1\244\10\0\1\245"+
+ "\2\0\1\245\1\0\2\245\3\0\1\245\1\0\10\245"+
+ "\2\0\1\246\5\0\6\245\1\0\4\245\1\0\3\245"+
+ "\3\0\1\175\1\0\1\64\2\0\13\64\1\0\22\64"+
+ "\1\0\25\64\16\0\1\247\51\0\2\250\1\251\1\252"+
+ "\30\0\1\251\31\0\1\70\2\0\15\70\1\0\20\70"+
+ "\1\0\25\70\20\0\1\253\117\0\1\243\13\0\1\244"+
+ "\7\0\1\254\1\0\2\255\5\0\1\254\2\0\1\254"+
+ "\52\0\1\256\1\0\2\257\5\0\1\256\2\0\1\256"+
+ "\44\0\6\260\1\122\1\261\2\260\1\76\1\260\2\0"+
+ "\1\260\1\122\1\260\1\0\1\122\10\0\10\260\6\0"+
+ "\1\260\4\0\1\260\3\0\5\260\3\0\1\102\2\0"+
+ "\1\262\10\0\1\262\2\0\1\262\12\0\1\102\37\0"+
+ "\1\103\1\22\2\0\1\22\1\263\2\22\1\0\1\103"+
+ "\1\0\1\22\1\103\11\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\4\22\1\264\1\22"+
+ "\1\0\4\22\1\0\3\22\10\0\1\102\2\0\1\103"+
+ "\1\22\2\0\1\22\1\0\2\22\1\0\1\103\1\0"+
+ "\1\22\1\103\11\22\1\0\1\102\5\0\6\22\1\0"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\4\22\1\265\6\22\7\0"+
+ "\6\22\1\0\1\266\3\22\1\0\3\22\10\0\1\102"+
+ "\2\0\1\103\1\22\2\0\1\267\1\0\2\22\1\0"+
+ "\1\103\1\0\1\22\1\103\11\22\1\0\1\102\5\0"+
+ "\6\22\1\0\1\270\3\22\1\0\3\22\13\0\1\22"+
+ "\1\271\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\6\22\1\272\4\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\4\22\1\273\1\22\1\0"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\3\22\1\274"+
+ "\2\22\1\0\4\22\1\0\3\22\13\0\1\113\10\0"+
+ "\1\113\2\0\1\113\6\0\1\100\40\0\1\114\2\0"+
+ "\1\275\10\0\1\275\2\0\1\275\12\0\1\114\37\0"+
+ "\1\115\1\22\2\0\1\22\1\276\2\22\1\0\1\115"+
+ "\1\0\1\22\1\115\11\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\3\22\1\277\1\22\1\300\5\22"+
+ "\7\0\1\22\1\301\4\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\3\22\1\302\2\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\6\22\1\0\1\303"+
+ "\3\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\4\22\1\304"+
+ "\1\305\1\0\4\22\1\0\3\22\13\0\1\122\1\261"+
+ "\2\0\1\76\4\0\1\122\2\0\1\122\53\0\1\124"+
+ "\2\0\1\124\1\306\2\124\3\0\1\124\1\0\10\124"+
+ "\10\0\6\124\1\0\4\124\1\0\2\124\1\307\14\0"+
+ "\1\124\2\0\1\124\1\306\2\124\3\0\1\124\1\0"+
+ "\10\124\10\0\6\124\1\0\4\124\1\0\3\124\14\0"+
+ "\1\124\2\0\1\124\1\306\2\124\3\0\1\124\1\0"+
+ "\10\124\10\0\4\124\1\310\1\124\1\0\4\124\1\0"+
+ "\3\124\14\0\1\124\2\0\1\124\1\306\2\124\3\0"+
+ "\1\124\1\0\10\124\10\0\1\311\5\124\1\0\4\124"+
+ "\1\0\3\124\14\0\1\124\2\0\1\124\1\306\2\124"+
+ "\3\0\1\124\1\0\1\124\1\312\6\124\10\0\6\124"+
+ "\1\0\4\124\1\0\3\124\14\0\1\313\2\0\1\124"+
+ "\1\306\2\124\3\0\1\124\1\0\10\124\10\0\6\124"+
+ "\1\0\1\314\3\124\1\0\3\124\14\0\1\315\2\0"+
+ "\1\124\1\306\2\124\3\0\1\316\1\0\10\124\10\0"+
+ "\6\124\1\0\4\124\1\0\3\124\14\0\1\317\2\0"+
+ "\1\124\1\306\2\124\3\0\1\124\1\0\10\124\10\0"+
+ "\6\124\1\0\1\320\3\124\1\0\3\124\14\0\1\124"+
+ "\2\0\1\124\1\306\2\124\3\0\1\124\1\0\10\124"+
+ "\10\0\4\124\1\321\1\124\1\0\4\124\1\0\3\124"+
+ "\24\0\1\322\66\0\1\323\55\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\2\22"+
+ "\1\324\3\22\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\1\325"+
+ "\2\22\1\326\7\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\24\0\1\327\2\0\1\327\63\0\1\330\2\0"+
+ "\1\330\52\0\1\22\1\331\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\6\22\1\0\1\332"+
+ "\3\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\1\22\1\333"+
+ "\4\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\6\22\1\0\1\334\3\22\1\0\3\22\13\0\2\335"+
+ "\2\0\1\335\2\0\1\335\1\0\1\335\2\0\1\335"+
+ "\1\0\1\335\1\0\1\335\16\0\1\335\27\0\2\336"+
+ "\2\0\1\336\2\0\1\336\1\0\1\336\2\0\1\336"+
+ "\1\0\1\336\1\0\1\336\16\0\1\336\27\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\6\22\1\0\1\22\1\337\2\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\6\22\1\340\4\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\1\22\1\341\4\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\2\22"+
+ "\1\342\3\22\1\0\1\343\3\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\6\22\1\344\4\22\7\0\1\22\1\345\4\22\1\0"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\1\346\12\22\7\0\2\22"+
+ "\1\347\3\22\1\0\1\350\3\22\1\0\2\22\1\351"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\10\22\1\352\2\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\4\22\1\353\1\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\1\22"+
+ "\1\354\4\22\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\1\355\5\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\6\22\1\0\1\356\3\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\1\22\1\357\4\22\1\0\4\22"+
+ "\1\0\2\22\1\360\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\6\22\1\0"+
+ "\1\22\1\361\2\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\2\22\1\362"+
+ "\10\22\7\0\6\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\1\22\1\363\1\0\1\22"+
+ "\1\0\13\22\7\0\6\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\1\364\2\22\1\365\7\22\7\0\6\22\1\0"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\6\22\1\0"+
+ "\1\366\3\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\4\22\1\367\1\22"+
+ "\1\370\4\22\7\0\6\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\371\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\3\22\1\372\1\373\1\22\1\0"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\1\22\1\374\1\0\1\22\1\0\13\22\7\0\4\22"+
+ "\1\375\1\22\1\0\4\22\1\0\3\22\13\0\1\22"+
+ "\1\376\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\1\377\3\22\1\u0100\6\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\6\0\2\176\1\u0101\1\200\30\0\1\u0101"+
+ "\3\0\1\u0102\25\0\1\200\2\176\64\200\44\0\1\u0103"+
+ "\2\0\1\u0104\26\0\1\u0105\105\0\1\u0106\14\0\1\u0107"+
+ "\72\0\1\u0108\44\0\1\u0109\104\0\1\u010a\31\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\11\22"+
+ "\1\u010b\1\22\7\0\6\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\1\u010c\5\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\5\22\1\u010d\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\1\22\1\u010e\3\22"+
+ "\1\u010f\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\1\22\1\u0110\4\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\1\u0111\5\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\7\22\1\u0112\3\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\1\u0113\4\22\1\u0114"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\6\22\1\u0115\4\22"+
+ "\7\0\1\22\1\u0116\4\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\1\u0117\12\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\3\22\1\u0118\7\22\7\0\6\22\1\0"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\2\22\1\u0119"+
+ "\3\22\1\0\4\22\1\0\3\22\13\0\1\22\1\u011a"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\6\22\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\4\22"+
+ "\1\u011b\1\u011c\5\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\3\22\1\u011d\2\22\1\u011e\4\22\7\0"+
+ "\2\22\1\u011f\3\22\1\0\1\u0120\3\22\1\0\1\22"+
+ "\1\u0121\1\22\13\0\2\22\2\0\1\u0122\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\4\22\1\u0123\1\22"+
+ "\1\0\4\22\1\0\3\22\13\0\1\22\1\u0124\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\6\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\10\22\1\u0125"+
+ "\2\22\7\0\6\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\1\u0126\5\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\4\22\1\u0127\6\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\13\0\1\22\1\u0128\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\4\22\1\u0129\6\22\7\0"+
+ "\6\22\1\0\4\22\1\0\3\22\16\0\1\u012a\23\0"+
+ "\1\u012b\1\246\1\u012c\36\0\1\245\2\0\1\245\1\0"+
+ "\2\245\3\0\1\245\1\0\10\245\2\0\1\246\5\0"+
+ "\6\245\1\0\4\245\1\0\3\245\6\0\2\250\1\u012d"+
+ "\1\252\30\0\1\u012d\3\0\1\u012e\25\0\1\252\2\250"+
+ "\64\252\6\0\1\254\4\0\1\u012f\3\0\1\254\2\0"+
+ "\1\254\52\0\1\u0130\10\0\1\u0130\2\0\1\u0130\52\0"+
+ "\1\256\10\0\1\256\2\0\1\256\52\0\1\u0130\1\0"+
+ "\2\255\5\0\1\u0130\2\0\1\u0130\52\0\1\262\4\0"+
+ "\1\263\3\0\1\262\2\0\1\262\52\0\1\u0131\10\0"+
+ "\1\u0131\2\0\1\u0131\52\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\1\0\1\u0132\5\0"+
+ "\6\22\1\u0133\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\6\22\1\u0134"+
+ "\4\22\7\0\6\22\1\0\1\u0135\3\22\1\0\3\22"+
+ "\13\0\1\22\1\u0136\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\u0137\1\0\1\22\1\u0138"+
+ "\1\0\1\22\1\0\4\22\1\u0139\1\u013a\1\u013b\1\22"+
+ "\1\u013c\2\22\1\0\1\u013d\5\0\5\22\1\u013e\1\u013f"+
+ "\1\u0140\3\22\1\0\1\22\1\u0141\1\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\4\22\1\u0142\1\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\5\22\1\u0143\1\0\4\22\1\0"+
+ "\3\22\13\0\1\22\1\u0144\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\1\0\1\u0145\5\0\6\22"+
+ "\1\u0146\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\4\22\1\u0147\6\22"+
+ "\7\0\6\22\1\0\4\22\1\0\3\22\13\0\1\275"+
+ "\4\0\1\276\3\0\1\275\2\0\1\275\52\0\1\u0148"+
+ "\10\0\1\u0148\2\0\1\u0148\52\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\1\22"+
+ "\1\u0149\4\22\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\3\22"+
+ "\1\u014a\7\22\7\0\6\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\4\22\1\u014b\6\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\1\22"+
+ "\1\u014c\1\0\1\22\1\0\13\22\7\0\6\22\1\0"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\3\22\1\u014d\7\22\7\0"+
+ "\6\22\1\0\4\22\1\0\3\22\13\0\1\22\1\u014e"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\6\22\1\0\4\22\1\0\3\22\13\0\1\22"+
+ "\1\u014f\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\6\22\1\0\4\22\1\0\3\22\14\0"+
+ "\1\124\2\0\1\124\1\u0150\2\124\3\0\1\124\1\0"+
+ "\10\124\10\0\6\124\1\0\1\124\1\u0151\2\124\1\0"+
+ "\3\124\14\0\1\124\2\0\1\124\1\u0152\2\124\3\0"+
+ "\1\124\1\0\10\124\10\0\6\124\1\0\4\124\1\0"+
+ "\3\124\14\0\1\124\2\0\1\u0153\1\306\2\124\3\0"+
+ "\1\124\1\0\10\124\10\0\6\124\1\0\4\124\1\0"+
+ "\3\124\14\0\1\124\2\0\1\124\1\306\2\124\3\0"+
+ "\1\124\1\0\10\124\10\0\1\124\1\u0154\4\124\1\0"+
+ "\4\124\1\0\3\124\14\0\1\124\2\0\1\124\1\u0155"+
+ "\2\124\3\0\1\124\1\0\10\124\10\0\6\124\1\0"+
+ "\4\124\1\0\3\124\14\0\1\124\2\0\1\124\1\u0156"+
+ "\2\124\3\0\1\124\1\0\10\124\10\0\6\124\1\0"+
+ "\4\124\1\0\3\124\14\0\1\124\2\0\1\124\1\u0157"+
+ "\2\124\3\0\1\124\1\0\10\124\10\0\6\124\1\0"+
+ "\4\124\1\0\2\124\1\u0158\14\0\1\124\2\0\1\124"+
+ "\1\306\2\124\3\0\1\124\1\0\10\124\10\0\6\124"+
+ "\1\0\1\u0159\3\124\1\0\3\124\14\0\1\124\2\0"+
+ "\1\124\1\u015a\2\124\3\0\1\124\1\0\10\124\10\0"+
+ "\6\124\1\0\4\124\1\0\3\124\14\0\1\124\2\0"+
+ "\1\124\1\u015b\2\124\3\0\1\124\1\0\10\124\10\0"+
+ "\6\124\1\0\4\124\1\0\3\124\14\0\1\124\2\0"+
+ "\1\124\1\306\2\124\3\0\1\124\1\0\10\124\10\0"+
+ "\3\124\1\u015c\2\124\1\0\4\124\1\0\3\124\23\0"+
+ "\1\u015d\1\322\66\0\1\323\1\u015d\54\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\6\22\1\0\2\22\1\u015e\1\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\2\22\1\u015f\3\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\1\u0160\5\22\1\0\4\22"+
+ "\1\0\3\22\23\0\1\u0161\1\327\2\0\1\327\63\0"+
+ "\1\330\1\u0161\1\0\1\330\52\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\1\u0162"+
+ "\3\22\1\u0163\1\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\4\22\1\u0164\6\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\6\22\1\0\4\22\1\0"+
+ "\1\u0165\2\22\13\0\2\335\2\0\1\335\2\0\1\335"+
+ "\1\u0166\1\335\2\0\1\335\1\0\1\335\1\0\1\335"+
+ "\16\0\1\335\27\0\2\336\2\0\1\336\2\0\1\336"+
+ "\1\0\1\336\1\u0166\1\0\1\336\1\0\1\336\1\0"+
+ "\1\336\16\0\1\336\27\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\3\22\1\u0167\7\22\7\0"+
+ "\6\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\4\22\1\u0168"+
+ "\6\22\7\0\6\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\1\u0169\12\22\7\0\6\22\1\0\4\22\1\0\3\22"+
+ "\13\0\1\22\1\u016a\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\4\22\1\u016b\6\22\7\0\6\22\1\0"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\6\22\1\0"+
+ "\1\u016c\3\22\1\0\3\22\13\0\1\22\1\u016d\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\6\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\3\22\1\u016e\2\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\1\22\1\u016f\4\22\1\0\4\22\1\0"+
+ "\3\22\13\0\1\22\1\u0170\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\4\22\1\u0171\1\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\3\22"+
+ "\1\u0172\2\22\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\1\22\1\u0173\4\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\3\22\1\u0174\7\22\7\0\5\22\1\u0175\1\0"+
+ "\4\22\1\0\3\22\13\0\1\22\1\u0176\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\6\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\2\22"+
+ "\1\u0177\3\22\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\1\0\1\u0178\5\0\6\22\1\u0179\4\22\1\0\3\22"+
+ "\13\0\1\22\1\u017a\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\3\22\1\u017b\2\22\1\0"+
+ "\4\22\1\0\3\22\13\0\1\22\1\u017c\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\6\22"+
+ "\1\0\4\22\1\0\3\22\13\0\1\22\1\u017d\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\6\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\4\22\1\u017e\1\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\10\22\1\u017f\2\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\6\22\1\0\1\u0180\3\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\1\u0181\12\22\7\0\6\22\1\0"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\1\u0182\5\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\4\22\1\u0183\6\22"+
+ "\7\0\6\22\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\1\0\1\u0184\5\0\6\22\1\u0185\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\6\22\1\u0186\4\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\3\22\1\u0187\7\22\7\0\6\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\1\22"+
+ "\1\u0188\4\22\1\0\4\22\1\0\3\22\13\0\1\22"+
+ "\1\u0189\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\6\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\2\22\1\u018a\3\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\7\22\1\u018b\3\22\7\0\2\22\1\u018c"+
+ "\3\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\1\u018d\5\22\1\0\1\22\1\u018e\2\22\1\0\3\22"+
+ "\32\0\1\u018f\1\0\1\u0190\106\0\1\u0191\45\0\1\205"+
+ "\40\0\1\u0106\1\u0192\1\u0102\64\u0106\45\0\1\u0193\45\0"+
+ "\1\u0194\105\0\1\u0190\35\0\1\u0195\62\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\6\22\1\0\1\u0196\3\22\1\0\3\22\13\0\1\22"+
+ "\1\u0197\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\6\22\1\0\4\22\1\0\3\22\13\0"+
+ "\1\22\1\u0198\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\6\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\1\22\1\u0199\4\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\1\22"+
+ "\1\u019a\1\0\1\22\1\0\13\22\7\0\6\22\1\0"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\1\0\1\u019b\5\0"+
+ "\6\22\1\u019c\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\1\0"+
+ "\1\u019d\5\0\6\22\1\u019e\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\4\22\1\u019f\6\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\6\22\1\0\1\u01a0\3\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\10\22\1\u01a1\2\22\7\0\5\22"+
+ "\1\u01a2\1\0\4\22\1\0\3\22\13\0\1\22\1\u01a3"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\6\22\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\1\22\1\u01a4\4\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\6\22\1\u01a5\4\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\4\22\1\u01a6\1\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\1\22"+
+ "\1\u01a7\4\22\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\6\22\1\0\1\u01a8\3\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\1\u01a9\12\22\7\0\6\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\u01aa\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\1\22\1\u01ab\4\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\3\22\1\u01ac\2\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\1\0\1\u01ad"+
+ "\5\0\1\22\1\u01ae\1\22\1\u01af\2\22\1\u01b0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\3\22\1\u01b1\2\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\4\22\1\u01b2\6\22"+
+ "\7\0\6\22\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\3\22\1\u01b3\2\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\7\22\1\u01b4\3\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\1\u01b5\5\22\1\0"+
+ "\4\22\1\0\3\22\13\0\1\22\1\u01b6\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\6\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\u01b7"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\6\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\6\22"+
+ "\1\0\1\u01b8\3\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\4\22\1\u01b9\1\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\1\22\1\u01ba\4\22\1\0\4\22\1\0"+
+ "\3\22\14\0\1\u01bb\2\0\1\u01bb\1\0\2\u01bb\3\0"+
+ "\1\u01bb\1\0\10\u01bb\10\0\6\u01bb\1\0\4\u01bb\1\0"+
+ "\3\u01bb\42\0\1\u012b\1\246\31\0\1\u01bc\1\u01bd\1\u01be"+
+ "\1\u01bd\30\0\1\u01bf\1\u01bd\1\0\1\u01bd\25\0\1\u01bd"+
+ "\6\0\1\u01c0\10\0\1\u01c0\2\0\1\u01c0\52\0\1\u0131"+
+ "\1\276\7\0\1\u0131\2\0\1\u0131\101\0\1\u0132\13\0"+
+ "\1\u0133\23\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\6\22\1\0\1\u01c1\3\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\4\22\1\u01c2\1\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\1\u01c3\12\22\7\0"+
+ "\6\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\1\22\1\u01c4\4\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\5\22\1\u01c5\5\22\7\0\1\u01c6\5\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\1\u01c7\3\22\1\u01c8\6\22\7\0"+
+ "\3\22\1\u01c9\2\22\1\0\4\22\1\0\3\22\13\0"+
+ "\1\22\1\u01ca\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\3\22\1\u01cb\2\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\4\22\1\u01cc\1\22"+
+ "\1\0\4\22\1\0\3\22\42\0\1\u013d\13\0\1\u013f"+
+ "\23\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\1\u01cd\12\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\6\22\1\0\4\22\1\0"+
+ "\1\u01ce\2\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\6\22\1\0\3\22"+
+ "\1\u01cf\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\6\22\1\0"+
+ "\4\22\1\0\1\u01d0\2\22\13\0\1\22\1\u01d1\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\6\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\4\22\1\u01d2"+
+ "\6\22\7\0\6\22\1\0\4\22\1\0\1\22\1\u01d3"+
+ "\1\22\42\0\1\u0145\13\0\1\u0146\23\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\6\22\1\0\1\22\1\u01d4\2\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\1\22\1\u01d5\4\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\3\22\1\u01d6\2\22\1\0"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\5\22\1\u01d7"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\1\22"+
+ "\1\u01d8\4\22\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\2\22\1\u01d9\3\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\1\u01da\5\22\1\0\4\22\1\0"+
+ "\3\22\14\0\1\124\2\0\1\124\1\u01db\2\124\3\0"+
+ "\1\124\1\0\10\124\10\0\6\124\1\0\4\124\1\0"+
+ "\3\124\14\0\1\124\2\0\1\124\1\u01dc\2\124\3\0"+
+ "\1\124\1\0\10\124\10\0\6\124\1\0\4\124\1\0"+
+ "\3\124\14\0\1\124\2\0\1\124\1\306\2\124\3\0"+
+ "\1\124\1\0\4\124\1\u01dd\3\124\10\0\6\124\1\0"+
+ "\4\124\1\0\3\124\14\0\1\124\2\0\1\124\1\306"+
+ "\2\124\3\0\1\124\1\0\10\124\10\0\6\124\1\0"+
+ "\1\124\1\u01de\2\124\1\0\3\124\14\0\1\124\2\0"+
+ "\1\124\1\u01df\2\124\3\0\1\124\1\0\10\124\10\0"+
+ "\6\124\1\0\4\124\1\0\3\124\14\0\1\u01e0\2\0"+
+ "\1\124\1\306\2\124\3\0\1\124\1\0\10\124\10\0"+
+ "\6\124\1\0\4\124\1\0\3\124\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\6\22\1\u01e1"+
+ "\4\22\7\0\6\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\6\22\1\0\2\22\1\u01e2\1\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\6\22\1\0\2\22\1\u01e3"+
+ "\1\22\1\0\3\22\13\0\1\22\1\u01e4\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\6\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\3\22\1\u01e5\7\22"+
+ "\7\0\6\22\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\1\u01e6"+
+ "\12\22\7\0\6\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\1\u01e7\5\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\7\22\1\u01e8\3\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\2\22\1\u01e9\3\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\6\22\1\u01ea\4\22"+
+ "\7\0\6\22\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\1\u01eb"+
+ "\12\22\7\0\6\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\3\22\1\u01ec\7\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\1\u01ed\5\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\6\22\1\0\1\u01ee"+
+ "\3\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\3\22\1\u01ef"+
+ "\2\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\7\22\1\u01f0"+
+ "\3\22\7\0\1\u01f1\3\22\1\u01f2\1\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\4\22\1\u01f3\6\22\7\0\6\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\4\22\1\u01f4\6\22"+
+ "\7\0\6\22\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\4\22"+
+ "\1\u01f5\6\22\7\0\6\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\1\22\1\u01f6\4\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\3\22\1\u01f7\7\22\1\0\1\u01f8"+
+ "\5\0\6\22\1\u01f9\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\1\0\1\u01fa\5\0\6\22\1\u01fb\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\6\22\1\0\1\u01fc\3\22\1\0"+
+ "\3\22\42\0\1\u0178\13\0\1\u0179\23\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\2\22\1\u01fd\3\22\1\0\4\22\1\0\3\22\13\0"+
+ "\1\22\1\u01fe\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\6\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\1\0\1\u01ff\5\0\6\22\1\u0200\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\1\u0201\12\22\7\0\6\22\1\0"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\1\0\1\u0202\5\0"+
+ "\3\22\1\u0203\2\22\1\u0204\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\6\22\1\0\1\u0205\3\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\6\22\1\0\1\u0206\3\22\1\0"+
+ "\3\22\42\0\1\u0184\13\0\1\u0185\23\0\1\22\1\u0207"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\6\22\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\5\22\1\u0208\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\4\22\1\u0209\6\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\4\22\1\u020a\6\22\7\0\6\22\1\0"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\4\22\1\u020b"+
+ "\1\22\1\0\4\22\1\0\3\22\13\0\1\22\1\u020c"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\6\22\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\6\22\1\0\1\u020d\3\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\3\22\1\u020e\7\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\33\0\1\u0106\47\0\1\u0106\100\0\1\u020f\47\0"+
+ "\1\u0102\130\0\1\u0210\52\0\1\u0211\45\0\1\u018f\65\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\4\22\1\u0212\1\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\u0213\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\1\0\1\u0214\5\0\1\22\1\u0215"+
+ "\4\22\1\u0216\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\4\22\1\u0217"+
+ "\6\22\7\0\6\22\1\0\4\22\1\0\3\22\13\0"+
+ "\1\22\1\u0218\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\6\22\1\0\4\22\1\0\3\22"+
+ "\42\0\1\u019b\13\0\1\u019c\52\0\1\u019d\13\0\1\u019e"+
+ "\23\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\2\22\1\u0219\3\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\3\22\1\u021a\1\u021b\6\22\7\0"+
+ "\6\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\1\22\1\u021c\4\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\1\u021d\12\22\7\0\6\22\1\0\4\22\1\0\3\22"+
+ "\13\0\1\22\1\u021e\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\3\22\1\u021f\7\22\7\0\6\22\1\0"+
+ "\4\22\1\0\3\22\13\0\1\22\1\u0220\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\6\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\1\0\1\u0221"+
+ "\5\0\6\22\1\u0222\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\4\22\1\u0223\1\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\1\0\1\u0224\5\0\6\22\1\u0225\4\22"+
+ "\1\0\1\22\1\u0226\1\22\12\0\1\u0227\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\6\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\1\22\1\u0228\4\22\1\0\4\22\1\0\3\22\42\0"+
+ "\1\u01ad\13\0\1\u01b0\23\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\1\0\1\u0229\5\0"+
+ "\6\22\1\u022a\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\4\22\1\u022b\1\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\4\22\1\u022c\1\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\1\u022d\5\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\1\22\1\u022e\4\22"+
+ "\1\0\4\22\1\0\3\22\13\0\1\22\1\u022f\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\6\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\1\0"+
+ "\1\u0230\5\0\6\22\1\u0231\4\22\1\0\3\22\13\0"+
+ "\1\22\1\u0232\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\6\22\1\0\4\22\1\0\3\22"+
+ "\13\0\1\22\1\u0233\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\13\0\1\22\1\u0234\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\42\0\1\u012b\1\246\1\u012c\31\0\1\u01bd"+
+ "\65\0\1\u01bc\1\u01bd\1\u01bf\1\u01bd\30\0\1\u01bf\1\u01bd"+
+ "\1\0\1\u01bd\34\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\1\0\1\u0235\5\0\6\22"+
+ "\1\u0236\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\1\u0237"+
+ "\5\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\1\u0238\12\22"+
+ "\7\0\6\22\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\6\22\1\0\1\u0239\3\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\4\22\1\u023a\1\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\1\22\1\u023b\4\22\1\0"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\1\u023c\5\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\1\22"+
+ "\1\u023d\4\22\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\1\22\1\u023e\1\0\1\22\1\0"+
+ "\13\22\7\0\6\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\1\u023f\12\22\7\0\6\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\u0240\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\6\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\10\22\1\u0241\2\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\13\0\1\22\1\u0242\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\6\22\1\0"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\1\u0243\5\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\5\22\1\u0244\5\22"+
+ "\7\0\6\22\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\6\22\1\0\3\22\1\u0245\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\3\22\1\u0246\7\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\1\u0247\12\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\1\22\1\u0248\4\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\1\0\1\u0249"+
+ "\5\0\6\22\1\u024a\4\22\1\0\3\22\13\0\1\22"+
+ "\1\u024b\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\6\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\6\22\1\0\1\u024c\3\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\6\22\1\u024d\4\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\14\0\1\u024e\2\0\1\124\1\306\2\124"+
+ "\3\0\1\124\1\0\10\124\10\0\6\124\1\0\4\124"+
+ "\1\0\3\124\14\0\1\124\2\0\1\124\1\u024f\2\124"+
+ "\3\0\1\124\1\0\10\124\10\0\6\124\1\0\4\124"+
+ "\1\0\3\124\14\0\1\124\2\0\1\124\1\u0250\2\124"+
+ "\3\0\1\124\1\0\10\124\10\0\6\124\1\0\4\124"+
+ "\1\0\3\124\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\10\22\1\u0251\2\22\7\0\6\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\u0252"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\1\0\1\u0253"+
+ "\5\0\6\22\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\1\0\1\u0254\5\0\6\22\1\u0255\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\u0256\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\6\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\6\22\1\0\1\u0257\3\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\1\u0258\5\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\2\22\1\u0259\3\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\1\u025a"+
+ "\5\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\3\22\1\u025b"+
+ "\7\22\7\0\6\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\6\22\1\u025c\4\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\1\u025d\5\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\6\22\1\0\1\u025e"+
+ "\3\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\7\22\1\u025f\3\22\7\0"+
+ "\6\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\u0260\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\6\22\1\0\4\22\1\0\3\22\13\0\1\22\1\u0261"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\6\22\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\6\22\1\0\1\u0262\3\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\5\22\1\u0263\5\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\1\u0264\5\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\4\22\1\u0265\1\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\2\22"+
+ "\1\u0266\3\22\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\1\22\1\u0267\4\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\6\22\1\0\1\u0268\3\22\1\0"+
+ "\3\22\42\0\1\u01f8\13\0\1\u01f9\52\0\1\u01fa\13\0"+
+ "\1\u01fb\23\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\4\22\1\u0269\6\22\7\0\6\22\1\0"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\6\22\1\0"+
+ "\1\u026a\3\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\1\u026b"+
+ "\5\22\1\0\4\22\1\0\3\22\42\0\1\u01ff\13\0"+
+ "\1\u0200\23\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\3\22\1\u026c\2\22\1\0"+
+ "\4\22\1\0\3\22\42\0\1\u0202\13\0\1\u0204\23\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\6\22\1\u026d\4\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\13\0\1\22\1\u026e\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\4\22\1\u026f\6\22\7\0\6\22"+
+ "\1\0\4\22\1\0\3\22\13\0\1\22\1\u0270\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\6\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\2\22\1\u0271\3\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\6\22\1\u0272\4\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\3\22\1\u0273\7\22\7\0\6\22\1\0"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\u0274\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\6\22\1\0"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\6\22\1\0"+
+ "\1\u0275\3\22\1\0\3\22\54\0\1\u0106\65\0\1\u0276"+
+ "\70\0\1\u0277\24\0\1\22\1\u0278\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\6\22\1\0"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\1\0\1\u0279\5\0"+
+ "\6\22\1\u027a\4\22\1\0\3\22\42\0\1\u0214\13\0"+
+ "\1\u0216\23\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\4\22\1\u027b\6\22\7\0\6\22\1\0"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\5\22\1\u027c\5\22\7\0"+
+ "\6\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\4\22\1\u027d\1\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\3\22\1\u027e\7\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\4\22\1\u027f\6\22\7\0\6\22\1\0"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\1\u0280\5\22"+
+ "\1\0\4\22\1\0\3\22\13\0\1\22\1\u0281\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\6\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\1\u0282\5\22\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\2\22\1\u0283\3\22\1\0\4\22\1\0\3\22"+
+ "\42\0\1\u0221\13\0\1\u0222\23\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\5\22"+
+ "\1\u0284\1\0\4\22\1\0\3\22\42\0\1\u0224\13\0"+
+ "\1\u0225\23\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\4\22\1\u0285\1\22\1\0"+
+ "\4\22\1\0\3\22\13\0\1\u0286\10\0\1\u0286\2\0"+
+ "\1\u0286\52\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\6\22\1\0\1\u0287\3\22"+
+ "\1\0\3\22\42\0\1\u0229\13\0\1\u022a\23\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\6\22"+
+ "\1\u0288\4\22\7\0\6\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\1\u0289\5\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\u028a\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\13\0\1\22\1\u028b\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\6\22\1\0\1\u028c"+
+ "\3\22\1\0\3\22\42\0\1\u0230\13\0\1\u0231\23\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\1\0\1\u028d\5\0\6\22\1\u028e\4\22\1\0"+
+ "\3\22\42\0\1\u0235\13\0\1\u0236\23\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\3\22\1\u028f"+
+ "\7\22\7\0\6\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\2\22\1\u0290\3\22\1\0\4\22\1\0"+
+ "\3\22\13\0\1\22\1\u0291\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\3\22\1\u0292\7\22\7\0\6\22"+
+ "\1\0\4\22\1\0\3\22\13\0\1\22\1\u0293\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\6\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\2\22\1\u0294\3\22\1\0\4\22\1\0\3\22\13\0"+
+ "\1\22\1\u0295\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\6\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\4\22\1\u0296\1\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\7\22\1\u0297\3\22\7\0\6\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\3\22"+
+ "\1\u0298\2\22\1\0\4\22\1\0\3\22\13\0\1\22"+
+ "\1\u0299\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\6\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\4\22\1\u029a\1\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\6\22\1\0\1\u029b\3\22"+
+ "\1\0\3\22\13\0\1\22\1\u029c\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\6\22\1\0"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\1\22\1\u029d"+
+ "\4\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\2\22\1\u029e\3\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\6\22\1\0\1\u029f\3\22\1\0\3\22"+
+ "\42\0\1\u0249\13\0\1\u024a\22\0\1\u02a0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\10\22\1\u02a1"+
+ "\2\22\7\0\6\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\1\0\1\u02a2\5\0\6\22\1\u02a3\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\4\22\1\u02a4\6\22\7\0\6\22\1\0"+
+ "\4\22\1\0\3\22\14\0\1\124\2\0\1\124\1\u02a5"+
+ "\2\124\3\0\1\124\1\0\10\124\10\0\6\124\1\0"+
+ "\4\124\1\0\3\124\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\3\22\1\u02a6\7\22\7\0"+
+ "\6\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\3\22\1\u02a7"+
+ "\7\22\7\0\6\22\1\0\4\22\1\0\3\22\17\0"+
+ "\1\u02a8\22\0\1\u0253\66\0\1\u0254\13\0\1\u0255\23\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\1\0\1\u02a9\5\0\6\22\1\u02aa\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\1\u02ab\12\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\3\22\1\u02ac\7\22\7\0\6\22"+
+ "\1\0\4\22\1\0\3\22\13\0\1\22\1\u02ad\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\6\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\5\22\1\u02ae\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\6\22\1\0\1\u02af\3\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\1\0\1\u02b0\5\0\6\22\1\u02b1\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\1\0\1\u02b2\5\0\6\22\1\u02b3"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\1\0\1\u02b4\5\0"+
+ "\6\22\1\u02b5\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\6\22\1\0\1\u02b6\3\22\1\0\3\22\13\0\1\22"+
+ "\1\u02b7\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\6\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\4\22\1\u02b8\1\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\3\22\1\u02b9\7\22\7\0\6\22\1\0"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\6\22\1\u02ba\4\22\7\0"+
+ "\6\22\1\0\4\22\1\0\3\22\13\0\1\22\1\u02bb"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\6\22\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\4\22"+
+ "\1\u02bc\6\22\7\0\6\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\6\22\1\0\1\u02bd\3\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\1\u02be\12\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\2\22\1\u02bf\3\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\2\22"+
+ "\1\u02c0\3\22\1\0\1\u02c1\3\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\6\22\1\0\1\u02c2\3\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\1\0\1\u02c3\5\0\6\22\1\u02c4\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\4\22\1\u02c5\1\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\1\u02c6\12\22\7\0"+
+ "\6\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\6\22\1\0\1\u02c7\3\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\4\22"+
+ "\1\u02c8\6\22\7\0\6\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\5\22\1\u02c9\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\3\22\1\u02ca\2\22\1\0"+
+ "\4\22\1\0\3\22\13\0\1\22\1\u02cb\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\6\22"+
+ "\1\0\4\22\1\0\3\22\17\0\1\u0190\100\0\1\u0106"+
+ "\50\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\2\22\1\u02cc\3\22\1\0\4\22"+
+ "\1\0\3\22\42\0\1\u0279\13\0\1\u027a\23\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\6\22"+
+ "\1\u02cd\4\22\7\0\6\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\6\22\1\0\4\22\1\0\1\u02ce"+
+ "\2\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\1\0\1\u02cf\5\0\6\22\1\u02d0"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\1\22\1\u02d1"+
+ "\4\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\1\u02d2\5\22\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\3\22\1\u02d3\2\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\11\22\1\u02d4\1\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\6\22\1\0\1\u02d5"+
+ "\3\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\3\22\1\u02d6\7\22\7\0"+
+ "\6\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\4\22\1\u02d7"+
+ "\6\22\7\0\6\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\4\22\1\u02d8\6\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\42\0\1\u028d\13\0\1\u028e\23\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\1\22\1\u02d9\4\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\6\22\1\0\2\22\1\u02da\1\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\4\22\1\u02db\1\22\1\0"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\1\22\1\u02dc"+
+ "\4\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\6\22\1\0\1\u02dd\3\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\2\22\1\u02de\3\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\1\u02df\12\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\4\22\1\u02e0\1\22\1\0"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\1\22\1\u02e1"+
+ "\4\22\1\0\4\22\1\0\3\22\13\0\1\22\1\u02e2"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\6\22\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\3\22"+
+ "\1\u02e3\7\22\7\0\6\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\4\22\1\u02e4\1\22\1\0\4\22"+
+ "\1\0\3\22\13\0\1\22\1\u02e5\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\6\22\1\0"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\3\22\1\u02e6\7\22\7\0"+
+ "\6\22\1\0\4\22\1\0\3\22\13\0\1\u02e7\10\0"+
+ "\1\u02e7\2\0\1\u02e7\52\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\4\22\1\u02e8"+
+ "\1\22\1\0\4\22\1\0\3\22\42\0\1\u02a2\13\0"+
+ "\1\u02a3\23\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\1\u02e9\12\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\2\22\1\u02ea\3\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\6\22"+
+ "\1\0\1\u02eb\3\22\1\0\3\22\31\0\1\u02ec\77\0"+
+ "\1\u02a9\13\0\1\u02aa\23\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\4\22\1\u02ed"+
+ "\1\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\1\22\1\u02ee\4\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\1\0\1\u02ef\5\0\6\22\1\u02f0\4\22\1\0"+
+ "\3\22\13\0\1\22\1\u02f1\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\13\0\1\22\1\u02f2\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\3\22\1\u02f3\7\22\7\0"+
+ "\6\22\1\0\4\22\1\0\3\22\42\0\1\u02b0\13\0"+
+ "\1\u02b1\52\0\1\u02b2\13\0\1\u02b3\52\0\1\u02b4\13\0"+
+ "\1\u02b5\23\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\6\22\1\0\3\22\1\u02f4"+
+ "\1\0\3\22\5\0\1\u0106\1\u0192\1\u0102\3\u0106\2\u02b7"+
+ "\2\u0106\1\u02b7\1\u0106\2\u02b7\1\u0106\1\u02b7\1\u0106\13\u02b7"+
+ "\7\u0106\6\u02b7\1\u0106\4\u02b7\1\u0106\3\u02b7\5\u0106\5\0"+
+ "\1\u02f5\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\6\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\2\22\1\u02f6\3\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\4\22\1\u02f7\6\22\7\0\6\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\6\22"+
+ "\1\0\1\u02f8\3\22\1\0\3\22\13\0\1\22\1\u02f9"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\6\22\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\1\u02fa\5\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\3\22\1\u02fb\7\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\13\0\1\22\1\u02fc\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\4\22\1\u02fd\6\22\7\0\6\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\4\22\1\u02fe\6\22"+
+ "\7\0\6\22\1\0\4\22\1\0\3\22\42\0\1\u02c3"+
+ "\13\0\1\u02c4\23\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\1\u02ff\5\22\1\0"+
+ "\4\22\1\0\3\22\13\0\1\22\1\u0300\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\6\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\1\u0301\12\22\7\0"+
+ "\6\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\4\22\1\u0302\1\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\1\0\1\u0303\5\0\6\22\1\u0304\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\6\22\1\0\1\u0305\3\22"+
+ "\1\0\3\22\42\0\1\u02cf\13\0\1\u02d0\22\0\1\u0306"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\6\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\6\22\1\u0307\4\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\13\0\1\22\1\u0308\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\12\0\1\u0309\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\6\22\1\0"+
+ "\4\22\1\0\3\22\13\0\1\22\1\u030a\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\6\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\6\22"+
+ "\1\0\1\u030b\3\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\6\22\1\0\1\u030c\3\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\6\22\1\0\1\22\1\u030d\2\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\u030e\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\6\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\5\22\1\u030f\5\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\1\22\1\u0310\4\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\4\22\1\u0311\6\22"+
+ "\7\0\6\22\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\6\22\1\0\1\u0312\3\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\3\22\1\u0313\2\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\3\22\1\u0314\7\22\7\0\6\22\1\0"+
+ "\4\22\1\0\3\22\13\0\1\22\1\u0315\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\6\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\1\22"+
+ "\1\u0316\4\22\1\0\4\22\1\0\3\22\13\0\1\22"+
+ "\1\u0317\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\6\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\1\u0318\5\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\6\22\1\0\1\u0319\3\22\1\0"+
+ "\3\22\13\0\1\22\1\u031a\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\1\u031b\5\22\1\0"+
+ "\4\22\1\0\3\22\13\0\1\22\1\u031c\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\6\22"+
+ "\1\0\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\3\22\1\u031d\7\22"+
+ "\7\0\6\22\1\0\4\22\1\0\3\22\57\0\1\u031e"+
+ "\51\0\1\u02ef\13\0\1\u02f0\23\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\1\u031f"+
+ "\5\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\1\22\1\u0320\1\0\1\22\1\0\13\22"+
+ "\7\0\6\22\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\1\0\1\u0321\5\0\6\22\1\u0322\4\22\1\0\3\22"+
+ "\13\0\1\u0323\10\0\1\u0323\2\0\1\u0323\52\0\1\22"+
+ "\1\u0324\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\6\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\2\22\1\u0325\3\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\u0326\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\6\22\1\u0327\4\22\7\0\6\22\1\0"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\3\22\1\u0328\7\22\7\0"+
+ "\6\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\1\u0329\5\22\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\1\0\1\u032a\5\0\6\22\1\u032b\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\4\22\1\u032c\1\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\1\u032d\5\22\1\0"+
+ "\4\22\1\0\3\22\13\0\1\22\1\u032e\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\6\22"+
+ "\1\0\4\22\1\0\3\22\42\0\1\u0303\13\0\1\u0304"+
+ "\23\0\1\u032f\10\0\1\u032f\2\0\1\u032f\52\0\1\u0330"+
+ "\10\0\1\u0330\2\0\1\u0330\52\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\4\22"+
+ "\1\u0331\1\22\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\6\22\1\0\1\u0332\3\22\1\0\3\22\13\0"+
+ "\1\22\1\u0333\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\6\22\1\0\4\22\1\0\3\22"+
+ "\13\0\1\22\1\u0334\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\3\22\1\u0335\7\22\7\0\6\22\1\0"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\3\22\1\u0336\7\22\7\0"+
+ "\6\22\1\0\4\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\1\u0337\12\22"+
+ "\7\0\6\22\1\0\4\22\1\0\3\22\13\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\6\22\1\0\1\u0338\3\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\5\22\1\u0339\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\2\22\1\u033a\3\22\1\0\4\22"+
+ "\1\0\3\22\13\0\1\22\1\u033b\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\6\22\1\0"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\2\22\1\u033c"+
+ "\3\22\1\0\4\22\1\0\3\22\31\0\1\u033d\50\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\6\22\1\0\1\u033e\3\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\7\0\1\22\1\u033f\4\22\1\0\4\22"+
+ "\1\0\3\22\42\0\1\u0321\13\0\1\u0322\23\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\1\0\1\u0340\5\0\6\22\1\u0341\4\22\1\0\3\22"+
+ "\13\0\1\22\1\u0342\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\1\22\1\u0343\4\22\1\0"+
+ "\4\22\1\0\3\22\13\0\1\22\1\u0344\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\6\22"+
+ "\1\0\4\22\1\0\3\22\42\0\1\u032a\13\0\1\u032b"+
+ "\22\0\1\u0345\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\13\0\1\22\1\u0346\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\1\0\1\u0347\5\0\6\22"+
+ "\1\u0348\4\22\1\0\3\22\13\0\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\6\22"+
+ "\1\0\1\u0349\3\22\1\0\3\22\13\0\2\22\2\0"+
+ "\1\22\1\0\2\22\1\0\1\22\1\0\13\22\7\0"+
+ "\2\22\1\u034a\3\22\1\0\4\22\1\0\3\22\13\0"+
+ "\2\22\2\0\1\22\1\0\2\22\1\0\1\22\1\0"+
+ "\13\22\7\0\1\u034b\5\22\1\0\4\22\1\0\3\22"+
+ "\13\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\4\22\1\u034c\6\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\13\0\1\22\1\u034d\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\6\22\1\0"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\4\22\1\u034e\6\22\7\0"+
+ "\6\22\1\0\4\22\1\0\3\22\13\0\1\22\1\u034f"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\13\22"+
+ "\7\0\6\22\1\0\4\22\1\0\3\22\42\0\1\u0340"+
+ "\13\0\1\u0341\23\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\1\0\1\u0350\5\0\6\22"+
+ "\1\u0351\4\22\1\0\3\22\13\0\1\u0352\10\0\1\u0352"+
+ "\2\0\1\u0352\52\0\2\22\2\0\1\u0353\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\42\0\1\u0347\13\0\1\u0348\23\0\2\22"+
+ "\2\0\1\22\1\0\2\22\1\0\1\22\1\0\3\22"+
+ "\1\u0354\7\22\7\0\6\22\1\0\4\22\1\0\3\22"+
+ "\13\0\1\22\1\u0355\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\6\22\1\0\4\22\1\0"+
+ "\3\22\13\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\13\22\7\0\1\u0356\5\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\6\22\1\u0357\4\22\7\0\6\22"+
+ "\1\0\4\22\1\0\3\22\42\0\1\u0350\13\0\1\u0351"+
+ "\23\0\2\22\2\0\1\22\1\0\2\22\1\0\1\22"+
+ "\1\0\13\22\1\0\1\u0358\5\0\6\22\1\u0359\4\22"+
+ "\1\0\3\22\13\0\1\22\1\u035a\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\13\22\7\0\6\22\1\0"+
+ "\4\22\1\0\3\22\13\0\2\22\2\0\1\22\1\0"+
+ "\2\22\1\0\1\22\1\0\4\22\1\u035b\6\22\7\0"+
+ "\6\22\1\0\4\22\1\0\3\22\42\0\1\u0358\13\0"+
+ "\1\u0359\23\0\2\22\2\0\1\22\1\0\2\22\1\0"+
+ "\1\22\1\0\1\u035c\12\22\7\0\6\22\1\0\4\22"+
+ "\1\0\3\22\13\0\2\22\2\0\1\22\1\0\2\22"+
+ "\1\0\1\22\1\0\13\22\7\0\1\u035d\5\22\1\0"+
+ "\4\22\1\0\3\22\12\0\1\u035e\2\22\2\0\1\22"+
+ "\1\0\2\22\1\0\1\22\1\0\13\22\7\0\6\22"+
+ "\1\0\4\22\1\0\3\22\13\0\1\u035f\10\0\1\u035f"+
+ "\2\0\1\u035f\44\0";
+
+ private static int [] zzUnpackTrans() {
+ int [] result = new int[37620];
+ int offset = 0;
+ offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackTrans(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ value--;
+ do result[j++] = value; while (--count > 0);
+ }
+ return j;
+ }
+
+
+ /* error codes */
+ private static final int ZZ_UNKNOWN_ERROR = 0;
+ private static final int ZZ_NO_MATCH = 1;
+ private static final int ZZ_PUSHBACK_2BIG = 2;
+
+ /* error messages for the codes above */
+ private static final String ZZ_ERROR_MSG[] = {
+ "Unkown internal scanner error",
+ "Error: could not match input",
+ "Error: pushback value was too large"
+ };
+
+ /**
+ * ZZ_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>
+ */
+ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
+
+ private static final String ZZ_ATTRIBUTE_PACKED_0 =
+ "\5\0\1\11\1\1\1\11\13\1\2\11\10\1\1\11"+
+ "\1\1\2\11\13\1\1\11\3\1\1\11\3\1\1\11"+
+ "\4\1\1\11\1\1\1\11\2\0\1\2\2\11\1\0"+
+ "\10\1\2\0\6\1\13\0\2\1\2\0\3\1\2\0"+
+ "\26\1\1\11\1\1\10\0\20\1\2\11\7\1\5\11"+
+ "\2\0\1\11\1\1\2\0\1\11\1\1\1\0\1\1"+
+ "\1\0\1\15\3\0\11\1\2\0\7\1\1\11\15\0"+
+ "\3\1\2\0\4\1\2\0\42\1\1\0\1\11\10\0"+
+ "\37\1\2\0\1\2\1\0\1\11\1\0\2\1\1\0"+
+ "\1\11\11\1\1\0\1\1\1\11\5\1\1\0\1\11"+
+ "\11\1\1\11\1\0\1\11\2\0\3\11\2\0\2\11"+
+ "\1\0\1\11\3\1\1\11\4\1\1\11\21\1\1\0"+
+ "\1\11\12\1\1\0\1\11\11\1\3\0\1\1\3\0"+
+ "\5\1\1\0\1\11\1\0\1\11\16\1\1\0\2\1"+
+ "\1\11\12\1\1\0\1\5\1\15\1\5\1\0\33\1"+
+ "\2\11\2\0\1\11\1\0\27\1\1\0\1\11\1\0"+
+ "\1\11\3\1\1\0\1\11\1\1\1\0\1\1\1\11"+
+ "\12\1\3\0\2\1\1\0\1\1\1\11\12\1\1\0"+
+ "\1\11\1\1\1\0\1\11\1\1\1\0\1\1\1\0"+
+ "\1\11\5\1\1\0\1\11\3\1\1\0\1\11\22\1"+
+ "\1\0\1\11\3\1\1\0\2\11\2\1\2\0\1\11"+
+ "\40\1\2\0\1\1\1\0\1\11\22\1\1\0\1\11"+
+ "\21\1\1\0\1\1\1\0\1\11\1\1\1\11\2\1"+
+ "\2\0\1\11\5\1\1\0\1\11\1\0\1\11\1\0"+
+ "\1\11\15\1\1\0\1\11\12\1\1\0\1\11\33\1"+
+ "\1\0\2\1\1\0\1\11\4\1\1\0\15\1\1\0"+
+ "\1\11\1\1\1\0\2\1\1\0\24\1\1\0\2\1"+
+ "\1\0\1\11\7\1\1\0\1\11\21\1\1\11\2\1"+
+ "\1\0\1\11\3\1\1\0\1\1\1\0\1\11\7\1"+
+ "\1\0\1\11\6\1\1\0\1\11\4\1\1\0\1\1";
+
+ private static int [] zzUnpackAttribute() {
+ int [] result = new int[863];
+ int offset = 0;
+ offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackAttribute(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ do result[j++] = value; while (--count > 0);
+ }
+ return j;
+ }
+
+ /** the input device */
+ private java.io.Reader zzReader;
+
+ /** the current state of the DFA */
+ private int zzState;
+
+ /** the current lexical state */
+ private int zzLexicalState = YYINITIAL;
+
+ /** this buffer contains the current text to be matched and is
+ the source of the yytext() string */
+ private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
+
+ /** the textposition at the last accepting state */
+ private int zzMarkedPos;
+
+ /** the textposition at the last state to be included in yytext */
+ private int zzPushbackPos;
+
+ /** the current text position in the buffer */
+ private int zzCurrentPos;
+
+ /** startRead marks the beginning of the yytext() string in the buffer */
+ private int zzStartRead;
+
+ /** endRead marks the last character in the buffer, that has been read
+ from input */
+ private int zzEndRead;
+
+ /** number of newlines encountered up to the start of the matched text */
+ private int yyline;
+
+ /** the number of characters up to the start of the matched text */
+ private int yychar;
+
+ /**
+ * the number of characters from the last newline up to the start of the
+ * matched text
+ */
+ private int yycolumn;
+
+ /**
+ * zzAtBOL == true <=> the scanner is currently at the beginning of a line
+ */
+ private boolean zzAtBOL = true;
+
+ /** zzAtEOF == true <=> the scanner is at the EOF */
+ private boolean zzAtEOF;
+
+ /* user code: */
+ private Token token(Terminal terminal)
+ {
+ Token t = new Token();
+ t.setTerminal(terminal);
+ t.setFilename(this.filename);
+
+ if (terminal == Terminal.T_SCON)
+ {
+ String sbText = stringBuffer.toString();
+ t.setOffset(sbOffset);
+ t.setLength(sbText.length());
+ t.setText(sbText);
+ t.setStartLine(sbLine);
+ t.setStartCol(sbCol);
+ }
+ else
+ {
+ t.setOffset(yychar);
+ t.setLength(yylength());
+ t.setText(yytext());
+ t.setStartLine(yyline+1);
+ t.setStartCol(yycolumn+1);
+ }
+
+ // Iterate through the string to determine the ending line and column
+ t.setEndLine(t.getStartLine());
+ t.setEndCol(t.getStartCol()-1);
+ for (int i = 0; i < t.getLength(); i++)
+ {
+ if (t.getText().charAt(i) == '\n')
+ {
+ t.setEndLine(t.getEndLine()+1);
+ t.setEndCol(1);
+ }
+ else t.setEndCol(t.getEndCol()+1);
+ }
+
+ return t;
+ }
+
+ //public static void main(String[] args) throws Exception
+ //{
+ // FreeFormLexerPhase2 l = new FreeFormLexerPhase2(System.in);
+ // Parser.parse(l);
+ //}
+
+ private StringBuffer stringBuffer = null;
+
+ private boolean wantEos = false;
+
+ private int sbOffset = -1;
+ private int sbLine = -1;
+ private int sbCol = -1;
+
+ private String filename = "<stdin>";
+ public void setFilename(String fn)
+ {
+ filename = fn;
+ }
+
+ private List/*<NonTreeToken>*/ nonTreeTokens = new LinkedList();
+ public List/*<NonTreeToken>*/ getNonTreeTokens()
+ {
+ return nonTreeTokens;
+ }
+
+ private void storeNonTreeToken()
+ {
+ nonTreeTokens.add(new NonTreeToken(this.filename,
+ yychar, // int offset
+ yyline+1, // int row
+ yycolumn+1, // int col
+ yytext()));
+ }
+
+
+ /**
+ * Creates a new scanner
+ * There is also a java.io.InputStream version of this constructor.
+ *
+ * @param in the java.io.Reader to read input from.
+ */
+ FreeFormLexerPhase1(java.io.Reader in) {
+ this.zzReader = in;
+ }
+
+ /**
+ * Creates a new scanner.
+ * There is also java.io.Reader version of this constructor.
+ *
+ * @param in the java.io.Inputstream to read input from.
+ */
+ FreeFormLexerPhase1(java.io.InputStream in) {
+ this(new java.io.InputStreamReader(in));
+ }
+
+
+ /**
+ * Refills the input buffer.
+ *
+ * @return <code>false</code>, iff there was new input.
+ *
+ * @exception java.io.IOException if any I/O-Error occurs
+ */
+ private boolean zzRefill() throws java.io.IOException {
+
+ /* first: make room (if you can) */
+ if (zzStartRead > 0) {
+ System.arraycopy(zzBuffer, zzStartRead,
+ zzBuffer, 0,
+ zzEndRead-zzStartRead);
+
+ /* translate stored positions */
+ zzEndRead-= zzStartRead;
+ zzCurrentPos-= zzStartRead;
+ zzMarkedPos-= zzStartRead;
+ zzPushbackPos-= zzStartRead;
+ zzStartRead = 0;
+ }
+
+ /* is the buffer big enough? */
+ if (zzCurrentPos >= zzBuffer.length) {
+ /* if not: blow it up */
+ char newBuffer[] = new char[zzCurrentPos*2];
+ System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
+ zzBuffer = newBuffer;
+ }
+
+ /* finally: fill the buffer with new input */
+ int numRead = zzReader.read(zzBuffer, zzEndRead,
+ zzBuffer.length-zzEndRead);
+
+ if (numRead < 0) {
+ return true;
+ }
+ else {
+ zzEndRead+= numRead;
+ return false;
+ }
+ }
+
+
+ /**
+ * Closes the input stream.
+ */
+ public final void yyclose() throws java.io.IOException {
+ zzAtEOF = true; /* indicate end of file */
+ zzEndRead = zzStartRead; /* invalidate buffer */
+
+ if (zzReader != null)
+ zzReader.close();
+ }
+
+
+ /**
+ * Resets the scanner to read from a new input stream.
+ * Does not close the old reader.
+ *
+ * All internal variables are reset, the old input stream
+ * <b>cannot</b> be reused (internal buffer is discarded and lost).
+ * Lexical state is set to <tt>ZZ_INITIAL</tt>.
+ *
+ * @param reader the new input stream
+ */
+ public final void yyreset(java.io.Reader reader) {
+ zzReader = reader;
+ zzAtBOL = true;
+ zzAtEOF = false;
+ zzEndRead = zzStartRead = 0;
+ zzCurrentPos = zzMarkedPos = zzPushbackPos = 0;
+ yyline = yychar = yycolumn = 0;
+ zzLexicalState = YYINITIAL;
+ }
+
+
+ /**
+ * Returns the current lexical state.
+ */
+ public final int yystate() {
+ return zzLexicalState;
+ }
+
+
+ /**
+ * Enters a new lexical state
+ *
+ * @param newState the new lexical state
+ */
+ public final void yybegin(int newState) {
+ zzLexicalState = newState;
+ }
+
+
+ /**
+ * Returns the text matched by the current regular expression.
+ */
+ public final String yytext() {
+ return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead );
+ }
+
+
+ /**
+ * Returns the character at position <tt>pos</tt> from the
+ * matched text.
+ *
+ * It is equivalent to yytext().charAt(pos), but faster
+ *
+ * @param pos the position of the character to fetch.
+ * A value from 0 to yylength()-1.
+ *
+ * @return the character at position pos
+ */
+ public final char yycharat(int pos) {
+ return zzBuffer[zzStartRead+pos];
+ }
+
+
+ /**
+ * Returns the length of the matched text region.
+ */
+ public final int yylength() {
+ return zzMarkedPos-zzStartRead;
+ }
+
+
+ /**
+ * Reports an error that occured while scanning.
+ *
+ * In a wellformed scanner (no or only correct usage of
+ * yypushback(int) and a match-all fallback rule) this method
+ * will only be called with things that "Can't Possibly Happen".
+ * If this method is called, something is seriously wrong
+ * (e.g. a JFlex bug producing a faulty scanner etc.).
+ *
+ * Usual syntax/scanner level error handling should be done
+ * in error fallback rules.
+ *
+ * @param errorCode the code of the errormessage to display
+ */
+ private void zzScanError(int errorCode) {
+ String message;
+ try {
+ message = ZZ_ERROR_MSG[errorCode];
+ }
+ catch (ArrayIndexOutOfBoundsException e) {
+ message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
+ }
+
+ throw new Error(message);
+ }
+
+
+ /**
+ * Pushes the specified amount of characters back into the input stream.
+ *
+ * They will be read again by then next call of the scanning method
+ *
+ * @param number the number of characters to be read again.
+ * This number must not be greater than yylength()!
+ */
+ public void yypushback(int number) {
+ if ( number > yylength() )
+ zzScanError(ZZ_PUSHBACK_2BIG);
+
+ zzMarkedPos -= number;
+ }
+
+
+ /**
+ * Resumes scanning until the next regular expression is matched,
+ * the end of input is encountered or an I/O-Error occurs.
+ *
+ * @return the next token
+ * @exception java.io.IOException if any I/O-Error occurs
+ */
+ public Token yylex() throws java.io.IOException, Exception {
+ int zzInput;
+ int zzAction;
+
+ // cached fields:
+ int zzCurrentPosL;
+ int zzMarkedPosL;
+ int zzEndReadL = zzEndRead;
+ char [] zzBufferL = zzBuffer;
+ char [] zzCMapL = ZZ_CMAP;
+
+ int [] zzTransL = ZZ_TRANS;
+ int [] zzRowMapL = ZZ_ROWMAP;
+ int [] zzAttrL = ZZ_ATTRIBUTE;
+ int zzPushbackPosL = zzPushbackPos = -1;
+ boolean zzWasPushback;
+
+ while (true) {
+ zzMarkedPosL = zzMarkedPos;
+
+ yychar+= zzMarkedPosL-zzStartRead;
+
+ boolean zzR = false;
+ for (zzCurrentPosL = zzStartRead; zzCurrentPosL < zzMarkedPosL;
+ zzCurrentPosL++) {
+ switch (zzBufferL[zzCurrentPosL]) {
+ case '\u000B':
+ case '\u000C':
+ case '\u0085':
+ case '\u2028':
+ case '\u2029':
+ yyline++;
+ yycolumn = 0;
+ zzR = false;
+ break;
+ case '\r':
+ yyline++;
+ yycolumn = 0;
+ zzR = true;
+ break;
+ case '\n':
+ if (zzR)
+ zzR = false;
+ else {
+ yyline++;
+ yycolumn = 0;
+ }
+ break;
+ default:
+ zzR = false;
+ yycolumn++;
+ }
+ }
+
+ if (zzR) {
+ // peek one character ahead if it is \n (if we have counted one line too much)
+ boolean zzPeek;
+ if (zzMarkedPosL < zzEndReadL)
+ zzPeek = zzBufferL[zzMarkedPosL] == '\n';
+ else if (zzAtEOF)
+ zzPeek = false;
+ else {
+ boolean eof = zzRefill();
+ zzEndReadL = zzEndRead;
+ zzMarkedPosL = zzMarkedPos;
+ zzBufferL = zzBuffer;
+ if (eof)
+ zzPeek = false;
+ else
+ zzPeek = zzBufferL[zzMarkedPosL] == '\n';
+ }
+ if (zzPeek) yyline--;
+ }
+ zzAction = -1;
+
+ zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
+
+ zzState = zzLexicalState;
+
+ zzWasPushback = false;
+
+ zzForAction: {
+ while (true) {
+
+ if (zzCurrentPosL < zzEndReadL)
+ zzInput = zzBufferL[zzCurrentPosL++];
+ else if (zzAtEOF) {
+ zzInput = YYEOF;
+ break zzForAction;
+ }
+ else {
+ // store back cached positions
+ zzCurrentPos = zzCurrentPosL;
+ zzMarkedPos = zzMarkedPosL;
+ zzPushbackPos = zzPushbackPosL;
+ boolean eof = zzRefill();
+ // get translated positions and possibly new buffer
+ zzCurrentPosL = zzCurrentPos;
+ zzMarkedPosL = zzMarkedPos;
+ zzBufferL = zzBuffer;
+ zzEndReadL = zzEndRead;
+ zzPushbackPosL = zzPushbackPos;
+ if (eof) {
+ zzInput = YYEOF;
+ break zzForAction;
+ }
+ else {
+ zzInput = zzBufferL[zzCurrentPosL++];
+ }
+ }
+ int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
+ if (zzNext == -1) break zzForAction;
+ zzState = zzNext;
+
+ int zzAttributes = zzAttrL[zzState];
+ if ( (zzAttributes & 2) == 2 )
+ zzPushbackPosL = zzCurrentPosL;
+
+ if ( (zzAttributes & 1) == 1 ) {
+ zzWasPushback = (zzAttributes & 4) == 4;
+ zzAction = zzState;
+ zzMarkedPosL = zzCurrentPosL;
+ if ( (zzAttributes & 8) == 8 ) break zzForAction;
+ }
+
+ }
+ }
+
+ // store back cached position
+ zzMarkedPos = zzMarkedPosL;
+ if (zzWasPushback)
+ zzMarkedPos = zzPushbackPosL;
+
+ switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
+ case 122:
+ { wantEos = true; yybegin(OPERATORorFORMAT); return token(Terminal.T_FORMAT);
+ }
+ case 199: break;
+ case 143:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_INQUIRE);
+ }
+ case 200: break;
+ case 48:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_OUT);
+ }
+ case 201: break;
+ case 28:
+ { wantEos = true; return token(Terminal.T_XCON);
+ }
+ case 202: break;
+ case 172:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_BACKSPACE);
+ }
+ case 203: break;
+ case 103:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_CLOSE);
+ }
+ case 204: break;
+ case 19:
+ { wantEos = true; return token(Terminal.T_LESSTHAN);
+ }
+ case 205: break;
+ case 27:
+ { wantEos = true; return token(Terminal.T_PCON);
+ }
+ case 206: break;
+ case 4:
+ { storeNonTreeToken();
+ }
+ case 207: break;
+ case 192:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ALLOCATABLE);
+ }
+ case 208: break;
+ case 120:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_INTENT);
+ }
+ case 209: break;
+ case 177:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_POSITIONEQ);
+ }
+ case 210: break;
+ case 109:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_WRITE);
+ }
+ case 211: break;
+ case 175:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_INTERFACE);
+ }
+ case 212: break;
+ case 25:
+ { stringBuffer.append('\"');
+ yybegin(YYINITIAL);
+ wantEos = true;
+ return token(Terminal.T_SCON);
+ }
+ case 213: break;
+ case 171:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_DIMENSION);
+ }
+ case 214: break;
+ case 169:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ELEMENTAL);
+ }
+ case 215: break;
+ case 73:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_GOTO);
+ }
+ case 216: break;
+ case 9:
+ { wantEos = true; return token(Terminal.T_MINUS);
+ }
+ case 217: break;
+ case 52:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_EXIT);
+ }
+ case 218: break;
+ case 156:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_OPTIONAL);
+ }
+ case 219: break;
+ case 107:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_RECLEQ);
+ }
+ case 220: break;
+ case 84:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_RECEQ);
+ }
+ case 221: break;
+ case 34:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_LPARENSLASH);
+ }
+ case 222: break;
+ case 138:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_OPENEDEQ);
+ }
+ case 223: break;
+ case 105:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_UNITEQ);
+ }
+ case 224: break;
+ case 155:
+ { wantEos = true; yybegin(OPERATORorFORMAT); return token(Terminal.T_OPERATOR);
+ }
+ case 225: break;
+ case 180:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_PROCEDURE);
+ }
+ case 226: break;
+ case 66:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_OPEN);
+ }
+ case 227: break;
+ case 184:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_DEALLOCATE);
+ }
+ case 228: break;
+ case 18:
+ { wantEos = true; return token(Terminal.T_GREATERTHAN);
+ }
+ case 229: break;
+ case 110:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_WHERE);
+ }
+ case 230: break;
+ case 44:
+ { stringBuffer.append('\"');
+ }
+ case 231: break;
+ case 115:
+ { wantEos = true; return token(Terminal.T_DOUBLE);
+ }
+ case 232: break;
+ case 37:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_TO);
+ }
+ case 233: break;
+ case 158:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ALLOCATE);
+ }
+ case 234: break;
+ case 17:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_COLON);
+ }
+ case 235: break;
+ case 197:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENDSUBROUTINE);
+ }
+ case 236: break;
+ case 72:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_STOP);
+ }
+ case 237: break;
+ case 125:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_NAMEDEQ);
+ }
+ case 238: break;
+ case 161:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_SEQUENCE);
+ }
+ case 239: break;
+ case 159:
+ { wantEos = true; yybegin(IMPLICIT); return token(Terminal.T_IMPLICIT);
+ }
+ case 240: break;
+ case 6:
+ { wantEos = true; return token(Terminal.T_ICON);
+ }
+ case 241: break;
+ case 100:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_PAUSE);
+ }
+ case 242: break;
+ case 16:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_EQUALS);
+ }
+ case 243: break;
+ case 95:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_INOUT);
+ }
+ case 244: break;
+ case 118:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_BLANKEQ);
+ }
+ case 245: break;
+ case 92:
+ { wantEos = true; return token(Terminal.T_AND);
+ }
+ case 246: break;
+ case 104:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_CYCLE);
+ }
+ case 247: break;
+ case 8:
+ { wantEos = true; return token(Terminal.T_PLUS);
+ }
+ case 248: break;
+ case 82:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_READ);
+ }
+ case 249: break;
+ case 43:
+ { stringBuffer.append('\'');
+ }
+ case 250: break;
+ case 101:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_PRINT);
+ }
+ case 251: break;
+ case 36:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_EQGREATERTHAN);
+ }
+ case 252: break;
+ case 98:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_SIZEEQ);
+ }
+ case 253: break;
+ case 54:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ELSE);
+ }
+ case 254: break;
+ case 40:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_SLASHRPAREN);
+ }
+ case 255: break;
+ case 116:
+ { wantEos = true; return token(Terminal.T_NEQV);
+ }
+ case 256: break;
+ case 32:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_IN);
+ }
+ case 257: break;
+ case 24:
+ { stringBuffer.append('\'');
+ yybegin(YYINITIAL);
+ wantEos = true;
+ return token(Terminal.T_SCON);
+ }
+ case 258: break;
+ case 182:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_RECURSIVE);
+ }
+ case 259: break;
+ case 99:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_STATEQ);
+ }
+ case 260: break;
+ case 88:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENDDO);
+ }
+ case 261: break;
+ case 128:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_RETURN);
+ }
+ case 262: break;
+ case 23:
+ { throw new Exception("Lexer Error (" + filename + ", line " + (yyline+1) + ", col " + (yycolumn+1) + "): String literal spans multiple lines without continuation");
+ }
+ case 263: break;
+ case 149:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_NUMBEREQ);
+ }
+ case 264: break;
+ case 7:
+ { wantEos = true; return token(Terminal.T_IDENT);
+ }
+ case 265: break;
+ case 144:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_STATUSEQ);
+ }
+ case 266: break;
+ case 112:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_EXISTEQ);
+ }
+ case 267: break;
+ case 191:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_EQUIVALENCE);
+ }
+ case 268: break;
+ case 154:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENDWHERE);
+ }
+ case 269: break;
+ case 121:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_FORALL);
+ }
+ case 270: break;
+ case 33:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_GO);
+ }
+ case 271: break;
+ case 59:
+ { wantEos = true; return token(Terminal.T_GE);
+ }
+ case 272: break;
+ case 126:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_COMMON);
+ }
+ case 273: break;
+ case 31:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_IF);
+ }
+ case 274: break;
+ case 75:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_PURE);
+ }
+ case 275: break;
+ case 157:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ADVANCEEQ);
+ }
+ case 276: break;
+ case 56:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_DATA);
+ }
+ case 277: break;
+ case 64:
+ { wantEos = true; return token(Terminal.T_BCON);
+ }
+ case 278: break;
+ case 173:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_BLOCKDATA);
+ }
+ case 279: break;
+ case 166:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENDFORALL);
+ }
+ case 280: break;
+ case 108:
+ { wantEos = true; return token(Terminal.T_KINDEQ);
+ }
+ case 281: break;
+ case 50:
+ { wantEos = true; return token(Terminal.T_FCON);
+ }
+ case 282: break;
+ case 46:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_END);
+ }
+ case 283: break;
+ case 135:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_DEFAULT);
+ }
+ case 284: break;
+ case 137:
+ { wantEos = true; return token(Terminal.T_FALSE);
+ }
+ case 285: break;
+ case 176:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_INTRINSIC);
+ }
+ case 286: break;
+ case 62:
+ { wantEos = true; return token(Terminal.T_LE);
+ }
+ case 287: break;
+ case 145:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_POINTER);
+ }
+ case 288: break;
+ case 174:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_IOLENGTHEQ);
+ }
+ case 289: break;
+ case 139:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ACCESSEQ);
+ }
+ case 290: break;
+ case 58:
+ { wantEos = true; return token(Terminal.T_OR);
+ }
+ case 291: break;
+ case 53:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENDEQ);
+ }
+ case 292: break;
+ case 55:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ERREQ);
+ }
+ case 293: break;
+ case 49:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_USE);
+ }
+ case 294: break;
+ case 21:
+ { wantEos = true; return token(Terminal.T_SLASH);
+ }
+ case 295: break;
+ case 68:
+ { wantEos = true; return token(Terminal.T_ZCON);
+ }
+ case 296: break;
+ case 20:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_PERCENT);
+ }
+ case 297: break;
+ case 35:
+ { wantEos = true; return token(Terminal.T_EQEQ);
+ }
+ case 298: break;
+ case 45:
+ { wantEos = true; return token(Terminal.T_RCON);
+ }
+ case 299: break;
+ case 26:
+ { wantEos = true; return token(Terminal.T_POW);
+ }
+ case 300: break;
+ case 195:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENDINTERFACE);
+ }
+ case 301: break;
+ case 94:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_BLOCK);
+ }
+ case 302: break;
+ case 22:
+ { stringBuffer.append( yytext() );
+ }
+ case 303: break;
+ case 86:
+ { wantEos = true; return token(Terminal.T_TYPE);
+ }
+ case 304: break;
+ case 131:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_TARGET);
+ }
+ case 305: break;
+ case 87:
+ { wantEos = true; return token(Terminal.T_XIMPL);
+ }
+ case 306: break;
+ case 14:
+ { wantEos = true; return token(Terminal.T_COMMA);
+ }
+ case 307: break;
+ case 102:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_NAMEEQ);
+ }
+ case 308: break;
+ case 91:
+ { wantEos = true; return token(Terminal.T_EQV);
+ }
+ case 309: break;
+ case 79:
+ { wantEos = true; return token(Terminal.T_LENEQ);
+ }
+ case 310: break;
+ case 163:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_NAMELIST);
+ }
+ case 311: break;
+ case 147:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_PRIVATE);
+ }
+ case 312: break;
+ case 67:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ONLY);
+ }
+ case 313: break;
+ case 117:
+ { wantEos = true; return token(Terminal.T_TRUE);
+ }
+ case 314: break;
+ case 119:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ASSIGN);
+ }
+ case 315: break;
+ case 93:
+ { wantEos = true; return token(Terminal.T_NOT);
+ }
+ case 316: break;
+ case 152:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_EXTERNAL);
+ }
+ case 317: break;
+ case 190:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENDFUNCTION);
+ }
+ case 318: break;
+ case 164:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_CONTAINS);
+ }
+ case 319: break;
+ case 15:
+ { wantEos = true; return token(Terminal.T_RPAREN);
+ }
+ case 320: break;
+ case 10:
+ { stringBuffer = new StringBuffer();
+ stringBuffer.append('\'');
+ sbOffset = yychar;
+ sbLine = yyline+1;
+ sbCol = yycolumn+1;
+ yybegin(QUOTED);
+ }
+ case 321: break;
+ case 113:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ELSEIF);
+ }
+ case 322: break;
+ case 146:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_PROGRAM);
+ }
+ case 323: break;
+ case 38:
+ { wantEos = true; return token(Terminal.T_GREATERTHANEQ);
+ }
+ case 324: break;
+ case 42:
+ { wantEos = true; return token(Terminal.T_SLASHSLASH);
+ }
+ case 325: break;
+ case 183:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENDPROGRAM);
+ }
+ case 326: break;
+ case 141:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_IOSTATEQ);
+ }
+ case 327: break;
+ case 71:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_SAVE);
+ }
+ case 328: break;
+ case 70:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_FMTEQ);
+ }
+ case 329: break;
+ case 85:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_THEN);
+ }
+ case 330: break;
+ case 114:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_DELIMEQ);
+ }
+ case 331: break;
+ case 76:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_NONE);
+ }
+ case 332: break;
+ case 129:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_REWIND);
+ }
+ case 333: break;
+ case 47:
+ { wantEos = true; return token(Terminal.T_XDOP);
+ }
+ case 334: break;
+ case 127:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_RESULT);
+ }
+ case 335: break;
+ case 97:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_FILEEQ);
+ }
+ case 336: break;
+ case 29:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_DO);
+ }
+ case 337: break;
+ case 111:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_WHILE);
+ }
+ case 338: break;
+ case 193:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_SEQUENTIALEQ);
+ }
+ case 339: break;
+ case 178:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_PARAMETER);
+ }
+ case 340: break;
+ case 60:
+ { wantEos = true; return token(Terminal.T_GT);
+ }
+ case 341: break;
+ case 130:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_MODULE);
+ }
+ case 342: break;
+ case 90:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENTRY);
+ }
+ case 343: break;
+ case 5:
+ { wantEos = true; return token(Terminal.T_ASTERISK);
+ }
+ case 344: break;
+ case 153:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENDBLOCK);
+ }
+ case 345: break;
+ case 65:
+ { wantEos = true; return token(Terminal.T_OCON);
+ }
+ case 346: break;
+ case 148:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_NULLIFY);
+ }
+ case 347: break;
+ case 78:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_NMLEQ);
+ }
+ case 348: break;
+ case 13:
+ { wantEos = true; return token(Terminal.T_LPAREN);
+ }
+ case 349: break;
+ case 170:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ELSEWHERE);
+ }
+ case 350: break;
+ case 134:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENDTYPE);
+ }
+ case 351: break;
+ case 189:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_READWRITEEQ);
+ }
+ case 352: break;
+ case 179:
+ { wantEos = true; return token(Terminal.T_PRECISION);
+ }
+ case 353: break;
+ case 168:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENDMODULE);
+ }
+ case 354: break;
+ case 167:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENDSELECT);
+ }
+ case 355: break;
+ case 77:
+ { wantEos = true; return token(Terminal.T_NULL);
+ }
+ case 356: break;
+ case 41:
+ { wantEos = true; return token(Terminal.T_SLASHEQ);
+ }
+ case 357: break;
+ case 81:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_CALL);
+ }
+ case 358: break;
+ case 136:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_DIRECTEQ);
+ }
+ case 359: break;
+ case 198:
+ { wantEos = true; return token(Terminal.T_DOUBLEPRECISION);
+ }
+ case 360: break;
+ case 63:
+ { wantEos = true; return token(Terminal.T_LT);
+ }
+ case 361: break;
+ case 51:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_EOREQ);
+ }
+ case 362: break;
+ case 151:
+ { wantEos = true; return token(Terminal.T_COMPLEX);
+ }
+ case 363: break;
+ case 123:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_SELECT);
+ }
+ case 364: break;
+ case 187:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_SELECTCASE);
+ }
+ case 365: break;
+ case 57:
+ { wantEos = true; return token(Terminal.T_EQ);
+ }
+ case 366: break;
+ case 181:
+ { wantEos = true; return token(Terminal.T_CHARACTER);
+ }
+ case 367: break;
+ case 140:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ACTIONEQ);
+ }
+ case 368: break;
+ case 185:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ASSIGNMENT);
+ }
+ case 369: break;
+ case 106:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_READEQ);
+ }
+ case 370: break;
+ case 150:
+ { wantEos = true; return token(Terminal.T_LOGICAL);
+ }
+ case 371: break;
+ case 39:
+ { wantEos = true; return token(Terminal.T_LESSTHANEQ);
+ }
+ case 372: break;
+ case 74:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_PADEQ);
+ }
+ case 373: break;
+ case 80:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_CASE);
+ }
+ case 374: break;
+ case 69:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_FILE);
+ }
+ case 375: break;
+ case 124:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_PUBLIC);
+ }
+ case 376: break;
+ case 61:
+ { wantEos = true; return token(Terminal.T_NE);
+ }
+ case 377: break;
+ case 186:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_FORMATTEDEQ);
+ }
+ case 378: break;
+ case 162:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_NEXTRECEQ);
+ }
+ case 379: break;
+ case 133:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENDFILE);
+ }
+ case 380: break;
+ case 132:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_WRITEEQ);
+ }
+ case 381: break;
+ case 12:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_UNDERSCORE);
+ }
+ case 382: break;
+ case 2:
+ { boolean b = wantEos; wantEos = false; if (b) return token(Terminal.T_EOS);
+ }
+ case 383: break;
+ case 96:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_FORMEQ);
+ }
+ case 384: break;
+ case 1:
+ { throw new Exception("Lexer Error (" + filename + ", line " + (yyline+1) + ", col " + (yycolumn+1) + "): Unexpected character " + yytext());
+ }
+ case 385: break;
+ case 30:
+ { wantEos = true; return token(Terminal.T_DCON);
+ }
+ case 386: break;
+ case 194:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENDBLOCKDATA);
+ }
+ case 387: break;
+ case 160:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_FUNCTION);
+ }
+ case 388: break;
+ case 196:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_UNFORMATTEDEQ);
+ }
+ case 389: break;
+ case 188:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_SUBROUTINE);
+ }
+ case 390: break;
+ case 142:
+ { wantEos = true; return token(Terminal.T_INTEGER);
+ }
+ case 391: break;
+ case 165:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_CONTINUE);
+ }
+ case 392: break;
+ case 11:
+ { stringBuffer = new StringBuffer();
+ stringBuffer.append('\"');
+ sbOffset = yychar;
+ sbLine = yyline+1;
+ sbCol = yycolumn+1;
+ yybegin(DBLQUOTED);
+ }
+ case 393: break;
+ case 83:
+ { wantEos = true; return token(Terminal.T_REAL);
+ }
+ case 394: break;
+ case 89:
+ { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENDIF);
+ }
+ case 395: break;
+ case 3:
+ {
+ }
+ case 396: break;
+ default:
+ if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
+ zzAtEOF = true;
+ switch (zzLexicalState) {
+ case OPERATORorFORMAT: {
+ wantEos = false; yybegin(YYINITIAL); return token(Terminal.END_OF_INPUT);
+ }
+ case 864: break;
+ case DBLQUOTED: {
+ throw new Exception("Lexer Error (" + filename + ", line " + (yyline+1) + ", col " + (yycolumn+1) + "): End of file encountered before string literal terminated");
+ }
+ case 865: break;
+ case QUOTED: {
+ throw new Exception("Lexer Error (" + filename + ", line " + (yyline+1) + ", col " + (yycolumn+1) + "): End of file encountered before string literal terminated");
+ }
+ case 866: break;
+ case YYINITIAL: {
+ wantEos = false; yybegin(YYINITIAL); return token(Terminal.END_OF_INPUT);
+ }
+ case 867: break;
+ case IMPLICIT: {
+ wantEos = false; yybegin(YYINITIAL); return token(Terminal.END_OF_INPUT);
+ }
+ case 868: break;
+ default:
+ return null;
+ }
+ }
+ else {
+ zzScanError(ZZ_NO_MATCH);
+ }
+ }
+ }
+ }
+
+
+}
diff --git a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FreeFormLexerPhase2.java b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FreeFormLexerPhase2.java
new file mode 100644
index 00000000..35349be3
--- /dev/null
+++ b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FreeFormLexerPhase2.java
@@ -0,0 +1,1508 @@
+package org.eclipse.photran.internal.core.f95modelparser;
+
+import java.io.PrintStream;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.Vector;
+import java.util.regex.Pattern;
+
+import org.eclipse.photran.internal.core.f95modelparser.Parser;
+import org.eclipse.photran.internal.core.f95modelparser.Terminal;
+import org.eclipse.photran.internal.core.f95modelparser.Token;
+
+/**
+ * This is the lexical analyzer that is used directly in the Fortran parser.
+ *
+ * This lexer uses a "dumb" JFlex lexer (FreeFormLexerPhase1) for tokenization.
+ * The JFlex lexer, however, assumes that every entry in its
+ * keyword/keyphrase list is not an identifier. Unfortunately, this isn't correct:
+ * Fortran has no problem with variables named "if" and arrays named "function".
+ * Additionally, a token like "len=" will be recognized in an assignment statement
+ * like "len=3", in which case it should be split into two tokens (T_IDENT T_EQUALS).
+ *
+ * FreeFormLexerPhase2 is responsible for deciding which keywords should really
+ * be identifiers. It reads an entire statement from the JFlex lexer, then
+ * uses a combination of Sale's algorithm and some additional analyses to make
+ * these decisions. It then passes on the (modified) tokens to the parser.
+ *
+ * @author Jeffrey Overbey
+ *
+ * @see FreeFormLexerPhase1
+ * @see Parser
+ */
+class FreeFormLexerPhase2 implements ILexer
+{
+ private ILexer yylex;
+ private Vector tokenStream = new Vector();
+ private ListIterator tokenIt = tokenStream.listIterator();
+
+ private int firstTokenPos = 0;
+ private int idPos = -1;
+ private VarDeclIdPosPair varDeclIdPosPair = null;
+ private boolean openContextComma = false;
+ private boolean openContextEquals = false;
+ private boolean letterFollowsParenthetical = false;
+ private int tokenFollowingParentheticalPos = -1;
+ private int[] parenDepth;
+ private boolean[] retainAsKeyword;
+
+ private String filename = "<stdin>";
+
+ /**
+ * Map token IDs to rules that determine (based on context) the contexts
+ * in which those tokens should be keywords.
+ */
+ HashMap/*<Terminal, LinkedList<Rule>>*/ rules = new HashMap();
+
+ /**
+ * Creates a new scanner.
+ * There is also a java.io.InputStream version of this constructor.
+ *
+ * @param in the java.io.Reader to read input from.
+ * @param filename the name of the file being read
+ */
+ public FreeFormLexerPhase2(java.io.Reader in, String filename)
+ {
+ yylex = new FreeFormLexerPhase1(in);
+ this.filename = filename;
+ buildAdditionalRules();
+ }
+
+ /**
+ * Creates a new scanner.
+ * There is also java.io.Reader version of this constructor.
+ *
+ * @param in the java.io.Inputstream to read input from.
+ * @param filename the name of the file being read
+ */
+ public FreeFormLexerPhase2(java.io.InputStream in, String filename)
+ {
+ yylex = new FreeFormLexerPhase1(in);
+ this.filename = filename;
+ yylex.setFilename(filename); // Phase 1 should know the filename too
+ buildAdditionalRules();
+ }
+
+ /**
+ * Creates a new scanner.
+ *
+ * @param phase1Lexer the phase 1 lexer to read tokens from
+ * @param filename the name of the file being read
+ */
+ public FreeFormLexerPhase2(ILexer phase1Lexer, String filename)
+ {
+ yylex = phase1Lexer;
+ this.filename = filename;
+ yylex.setFilename(filename); // Phase 1 should know the filename too
+ buildAdditionalRules();
+ }
+
+ /**
+ * Sets the name of the file being read
+ * @param filename the filename of the input file (for error reporting)
+ */
+ public void setFilename(String filename)
+ {
+ this.filename = filename;
+ }
+
+ /**
+ * Resumes scanning until the next regular expression is matched,
+ * the end of input is encountered or an I/O-Error occurs.
+ *
+ * @return the next token
+ * @exception Exception if any I/O-Error or lexer exceptions occur
+ */
+ public Token yylex() throws Exception
+ {
+ if (!tokenIt.hasNext())
+ processNextStatement();
+
+ if (tokenIt.hasNext())
+ return (Token)tokenIt.next();
+ else
+ return null;
+ }
+
+ /**
+ * Read a statement into <code>tokenStream</code> using the JFlex lexer,
+ * and replace keywords with identifiers as necessary
+ */
+ private void processNextStatement() throws Exception
+ {
+ readNextStatement();
+
+ retainAsKeyword = new boolean[tokenStream.size()];
+ for (int i = 0; i < retainAsKeyword.length; i++)
+ retainAsKeyword[i] = false;
+
+ firstTokenPos = stmtBeginsWithLabel() ? 1 : 0;
+ if (stmtBeginsWithNameColon()) firstTokenPos += 2;
+
+ parenDepth = new int[tokenStream.size()];
+ for (int i = 0; i < parenDepth.length; i++)
+ parenDepth[i] = 0;
+
+ salesScan();
+ markSalesChanges();
+
+ // Find the identifier naming the subprogram
+ idPos = getSubprogramDeclIdPos();
+
+ // Find the identifier naming the variable
+ varDeclIdPosPair = getVarDeclIdPos();
+
+ markAdditionalChanges(); // Must have idPos set
+
+ markSubprogramChanges(); // Must have idPos set
+
+ applyChanges();
+
+// for (int i = 0; i < tokenStream.size(); i++)
+// {
+// Token t = (Token)tokenStream.elementAt(i);
+// System.out.print(Token.getTokenName(t.id));
+// System.out.print("(" + t.text + ")");
+// //System.out.print(", " + parenDepth[i]);
+// System.out.print("," + retainAsKeyword[i]);
+// System.out.print(" ");
+// }
+// System.out.println();
+
+ tokenIt = tokenStream.listIterator();
+ }
+
+ /**
+ * Read an entire statement into tokenStream using the JFlex lexer
+ */
+ private void readNextStatement() throws Exception
+ {
+ Token t;
+ tokenStream.clear();
+ do
+ {
+ t = yylex.yylex();
+ if (t != null)
+ {
+ t.setFilename(filename);
+ tokenStream.add(t);
+ }
+ // if (t != null) { System.out.print(t.id + ":"); }
+ }
+ while (t != null && t.getTerminal() != Terminal.T_EOS && t.getTerminal() != Terminal.END_OF_INPUT);
+ }
+
+ /* ----- IDENTIFY CHANGES -----------------------------------------------*/
+
+ /**
+ * To apply Sale's algorithm, we must identify whether there is
+ * <ul>
+ * <li>an open context comma,
+ * <li>an open context equals, and/or
+ * <li>a letter immediately following a right parenthesis
+ * </ul>
+ *
+ * For convenience, we also set the parenDepth[] array here. E.g.,
+ * <pre>
+ * Token stream: a ( b ( c ) ( d ) e ) f
+ * Paren depth: 0 1 1 2 2 1 2 2 1 1 0 0
+ * </pre>
+ */
+ private void salesScan()
+ {
+ openContextComma = false;
+ openContextEquals = false;
+ letterFollowsParenthetical = false;
+
+ int currentParenDepth = 0; // Track nested parentheses
+ boolean justClosedParen = false; // Does this token immediately follow T_RPAREN?
+ boolean firstParenthetical = true; // Is this the first non-nested T_RPAREN?
+ boolean inArrayLiteral = false; // Are we inside an (/ array literal /)
+ for (int i = 0; i < tokenStream.size(); i++)
+ {
+ Token t = (Token)tokenStream.elementAt(i);
+
+ if (currentParenDepth == 0)
+ {
+ if (t.getTerminal() == Terminal.T_LPARENSLASH)
+ inArrayLiteral = true;
+ else if (t.getTerminal() == Terminal.T_SLASHRPAREN)
+ inArrayLiteral = false;
+
+ if (!inArrayLiteral)
+ {
+ if (t.getTerminal() == Terminal.T_COMMA)
+ openContextComma = true;
+ else if (t.getTerminal() == Terminal.T_EQUALS || t.getTerminal() == Terminal.T_EQGREATERTHAN)
+ openContextEquals = true;
+ else if (endsWithEquals(t))
+ openContextEquals = true;
+
+ if (justClosedParen && firstParenthetical)
+ {
+ firstParenthetical = false;
+ tokenFollowingParentheticalPos = i;
+
+ letterFollowsParenthetical =
+ t.getText().trim().length() > 0
+ && Character.isLetter(t.getText().trim().charAt(0));
+ }
+ }
+ }
+ justClosedParen = false;
+ if (t.getTerminal() == Terminal.T_LPAREN)
+ {
+ currentParenDepth++;
+ }
+ else if (t.getTerminal() == Terminal.T_RPAREN)
+ {
+ currentParenDepth--;
+ justClosedParen = true;
+ }
+
+ parenDepth[i] = currentParenDepth;
+ }
+ }
+
+ /**
+ * Sale's algorithm determines whether the first token is a keyword
+ * or an identifier as well as the first token after the first
+ * closing parenthesis at the top level.
+ */
+ private void markSalesChanges()
+ {
+ if (!openContextComma && !openContextEquals)
+ retainAsKeyword[firstTokenPos] = true;
+
+ if (openContextEquals && !openContextComma)
+ retainAsKeyword[firstTokenPos] = false;
+
+ if (openContextComma)
+ retainAsKeyword[firstTokenPos] = true;
+
+ if (letterFollowsParenthetical)
+ {
+ retainAsKeyword[firstTokenPos] = true;
+ retainAsKeyword[tokenFollowingParentheticalPos] =
+ ((Token)tokenStream.elementAt(firstTokenPos)).getTerminal() == Terminal.T_IF && !openContextEquals;
+ }
+ }
+
+ /**
+ * Sale's algorithm doesn't take care of some of our tokens, such as
+ * T_INOUT or T_LENEQ. We define additional rules to identify where
+ * these should occur as keywords rather than identifiers.
+ */
+ private void buildAdditionalRules()
+ {
+ // R421
+ shouldAlwaysBeKeyword(Terminal.T_TRUE);
+ shouldAlwaysBeKeyword(Terminal.T_FALSE);
+
+ // R429, R540
+ addRule(Terminal.T_NULL,
+ new MustBeFollowedBy(Terminal.T_LPAREN, Terminal.T_RPAREN));
+
+ // R430, also R542/R502 (Types in IMPLICIT statement)
+ addRules(Terminal.T_TYPE,
+ new StmtMustStartWithOneOf(Terminal.T_END, Terminal.T_IMPLICIT),
+ new MustBePrecededByOneOf(Terminal.T_END, Terminal.T_IMPLICIT, Terminal.T_COMMA));
+
+ // R502
+ addRule(Terminal.T_PRECISION,
+ new MustBePrecededBy(Terminal.T_DOUBLE));
+
+ // R426, R503, R511
+ addRules(Terminal.T_POINTER,
+ new MustBePartOfTypeDecl(),
+ new MustBePrecededBy(Terminal.T_COMMA));
+ applySameRulesTo(Terminal.T_PARAMETER);
+ applySameRulesTo(Terminal.T_PUBLIC); // R511
+ applySameRulesTo(Terminal.T_PRIVATE); // R511
+ applySameRulesTo(Terminal.T_ALLOCATABLE);
+ applySameRulesTo(Terminal.T_DIMENSION);
+ applySameRulesTo(Terminal.T_EXTERNAL);
+ applySameRulesTo(Terminal.T_INTENT);
+ applySameRulesTo(Terminal.T_INTRINSIC);
+ applySameRulesTo(Terminal.T_OPTIONAL);
+ applySameRulesTo(Terminal.T_SAVE);
+ applySameRulesTo(Terminal.T_TARGET);
+
+ // R506, R507
+ addRules(Terminal.T_KINDEQ,
+ new MustBePartOfTypeDeclOrStmtMustStartWith(Terminal.T_IMPLICIT),
+ new MustBePrecededByOneOf(Terminal.T_LPAREN, Terminal.T_COMMA));
+ applySameRulesTo(Terminal.T_LENEQ);
+
+ // R512
+ addRules(Terminal.T_IN,
+ new MustBePartOfTypeDeclOrStmtMustStartWith(Terminal.T_INTENT),
+ new MustBePrecededByOneOf(Terminal.T_LPAREN, Terminal.T_IN, Terminal.T_OUT));
+ applySameRulesTo(Terminal.T_OUT);
+ applySameRulesTo(Terminal.T_INOUT);
+
+ // R541
+ addRules(Terminal.T_NONE,
+ new MustBePrecededBy(Terminal.T_IMPLICIT),
+ new MustBeFollowedBy(Terminal.T_EOS));
+
+ // R542/R502 (Types in IMPLICIT statement)
+ addRules(Terminal.T_INTEGER,
+ new StmtMustStartWith(Terminal.T_IMPLICIT),
+ new MustBePrecededByOneOf(Terminal.T_IMPLICIT, Terminal.T_COMMA));
+ applySameRulesTo(Terminal.T_REAL);
+ applySameRulesTo(Terminal.T_DOUBLEPRECISION);
+ applySameRulesTo(Terminal.T_COMPLEX);
+ applySameRulesTo(Terminal.T_LOGICAL);
+ applySameRulesTo(Terminal.T_CHARACTER);
+ applySameRulesTo(Terminal.T_DOUBLE);
+
+ // R622
+ addRules(Terminal.T_STATEQ,
+ new StmtMustStartWithOneOf(Terminal.T_ALLOCATE,
+ Terminal.T_DEALLOCATE),
+ new MustBePrecededBy(Terminal.T_COMMA),
+ new ParenDepthMustBe(1));
+
+ // R746
+ addRules(Terminal.T_WHERE,
+ new StmtMustStartWith(Terminal.T_END),
+ new MustBePrecededBy(Terminal.T_END));
+
+ // R748
+ addRules(Terminal.T_FORALL,
+ new StmtMustStartWith(Terminal.T_END),
+ new MustBePrecededBy(Terminal.T_END));
+
+ // R803, R804
+ addRule(Terminal.T_THEN,
+ new StmtMustStartWithOneOf(Terminal.T_IF, Terminal.T_ELSE, Terminal.T_ELSEIF));
+
+ // R804, R806
+ addRules(Terminal.T_IF,
+ new StmtMustStartWithOneOf(Terminal.T_ELSE, Terminal.T_END),
+ new MustBePrecededByOneOf(Terminal.T_ELSE, Terminal.T_END));
+
+ // R809
+ addRules(Terminal.T_CASE,
+ new StmtMustStartWith(Terminal.T_SELECT),
+ new MustBePrecededBy(Terminal.T_SELECT));
+
+ // R811
+ addRules(Terminal.T_SELECT,
+ new StmtMustStartWith(Terminal.T_END),
+ new MustBePrecededBy(Terminal.T_END));
+
+ // R813
+ addRule(Terminal.T_DEFAULT,
+ new MustBePrecededBy(Terminal.T_CASE));
+
+ // R821
+ addRule(Terminal.T_WHILE,
+ new MustBePrecededByOneOf(Terminal.T_DO, Terminal.T_COMMA, Terminal.T_ICON));
+
+ // R825
+ addRules(Terminal.T_DO,
+ new StmtMustStartWith(Terminal.T_END),
+ new MustBePrecededBy(Terminal.T_END));
+
+ // R836
+ addRules(Terminal.T_TO,
+ new StmtMustStartWithOneOf(Terminal.T_GO, Terminal.T_ASSIGN),
+ new MustBePrecededByOneOf(Terminal.T_GO, Terminal.T_ICON));
+
+ // R905, R924
+ addRules(Terminal.T_FILEEQ,
+ new StmtMustStartWithOneOf(Terminal.T_OPEN, Terminal.T_INQUIRE),
+ new MustBeInSpecList(),
+ new MustBePrecededByOneOf(Terminal.T_LPAREN, Terminal.T_COMMA));
+ applySameRulesTo(Terminal.T_ACCESSEQ);
+ applySameRulesTo(Terminal.T_FORMEQ);
+ applySameRulesTo(Terminal.T_RECLEQ);
+ applySameRulesTo(Terminal.T_BLANKEQ);
+ applySameRulesTo(Terminal.T_POSITIONEQ);
+ applySameRulesTo(Terminal.T_ACTIONEQ);
+ applySameRulesTo(Terminal.T_DELIMEQ);
+ applySameRulesTo(Terminal.T_PADEQ);
+
+ // R905, R908
+ addRules(Terminal.T_STATUSEQ,
+ new StmtMustStartWithOneOf(Terminal.T_OPEN, Terminal.T_CLOSE),
+ new MustBeInSpecList(),
+ new MustBePrecededByOneOf(Terminal.T_LPAREN, Terminal.T_COMMA));
+
+ // R905, R908, R912, R922, R924
+ addRules(Terminal.T_UNITEQ,
+ // Statement start token is checked in MustBeInSpecList()
+ new MustBeInSpecList(),
+ new MustBePrecededByOneOf(Terminal.T_LPAREN, Terminal.T_COMMA));
+ applySameRulesTo(Terminal.T_ERREQ);
+ applySameRulesTo(Terminal.T_IOSTATEQ);
+
+ // R912
+ addRules(Terminal.T_FMTEQ,
+ new StmtMustStartWithOneOf(Terminal.T_READ, Terminal.T_WRITE),
+ new MustBeInSpecList(),
+ new MustBePrecededByOneOf(Terminal.T_LPAREN, Terminal.T_COMMA));
+ applySameRulesTo(Terminal.T_RECEQ);
+ applySameRulesTo(Terminal.T_ENDEQ);
+ applySameRulesTo(Terminal.T_EOREQ);
+ applySameRulesTo(Terminal.T_NMLEQ);
+ applySameRulesTo(Terminal.T_ADVANCEEQ);
+ applySameRulesTo(Terminal.T_SIZEEQ);
+ applySameRulesTo(Terminal.T_OR);
+
+ // R923, R924
+ addRules(Terminal.T_IOLENGTHEQ,
+ new StmtMustStartWith(Terminal.T_INQUIRE),
+ new MustBeInSpecList(),
+ new MustBePrecededByOneOf(Terminal.T_LPAREN, Terminal.T_COMMA));
+ applySameRulesTo(Terminal.T_EXISTEQ);
+ applySameRulesTo(Terminal.T_OPENEDEQ);
+ applySameRulesTo(Terminal.T_NUMBEREQ);
+ applySameRulesTo(Terminal.T_NAMEDEQ);
+ applySameRulesTo(Terminal.T_NAMEEQ);
+ applySameRulesTo(Terminal.T_SEQUENTIALEQ);
+ applySameRulesTo(Terminal.T_DIRECTEQ);
+ applySameRulesTo(Terminal.T_FORMATTEDEQ);
+ applySameRulesTo(Terminal.T_UNFORMATTEDEQ);
+ applySameRulesTo(Terminal.T_NEXTRECEQ);
+ applySameRulesTo(Terminal.T_READEQ);
+ applySameRulesTo(Terminal.T_WRITEEQ);
+ applySameRulesTo(Terminal.T_READWRITEEQ);
+
+ // R1103, R1106, R1114, R1204, R1220, R1224
+ addRules(Terminal.T_PROGRAM,
+ new StmtMustStartWith(Terminal.T_END),
+ new MustBePrecededBy(Terminal.T_END));
+ applySameRulesTo(Terminal.T_MODULE);
+ applySameRulesTo(Terminal.T_BLOCK);
+ applySameRulesTo(Terminal.T_BLOCKDATA);
+ applySameRulesTo(Terminal.T_INTERFACE);
+ applySameRulesTo(Terminal.T_FUNCTION);
+ applySameRulesTo(Terminal.T_SUBROUTINE);
+
+ // R1114
+ addRules(Terminal.T_DATA,
+ new StmtMustStartWithOneOf(Terminal.T_BLOCK, Terminal.T_END),
+ new MustBePrecededBy(Terminal.T_BLOCK));
+
+ // R1107
+ addRules(Terminal.T_ONLY,
+ new StmtMustStartWith(Terminal.T_USE),
+ new MustBePrecededBy(Terminal.T_COMMA),
+ new MustBeFollowedBy(Terminal.T_COLON));
+
+ // 1206
+ addRules(Terminal.T_PROCEDURE,
+ new StmtMustStartWith(Terminal.T_MODULE),
+ new MustBePrecededBy(Terminal.T_MODULE));
+
+ // R1207
+ addRule(Terminal.T_OPERATOR,
+ new MustBeFollowedBy(Terminal.T_LPAREN, ANY_DEFINED_OPERATOR, Terminal.T_RPAREN));
+ addRule(Terminal.T_ASSIGNMENT,
+ new MustBeFollowedBy(Terminal.T_LPAREN, Terminal.T_EQUALS, Terminal.T_RPAREN));
+
+ // Function and subroutine declarations are handled separately
+ }
+
+ /**
+ * Apply the rules built in buildAdditionalRules. These rules are only
+ * used to determine when a token should NOT be an identifier. E.g.,
+ * if T_PUBLIC has already been marked as a keyword by Sale's algorithm
+ * (because it starts a statement according to R522), the "additional
+ * rules" above will not match, but markAdditionalChanges() will leave it
+ * alone, so it will still be a keyword.
+ *
+ * Expects idPos to be set appropriately.
+ */
+ private void markAdditionalChanges()
+ {
+ if (varDeclIdPosPair != null)
+ retainAsKeyword[firstTokenPos] = true;
+
+ for (int tokenPos = firstTokenPos; tokenPos < tokenStream.size(); tokenPos++)
+ {
+ Terminal thistokenTerminal = ((Token)tokenStream.elementAt(tokenPos)).getTerminal();
+ if (rules.containsKey(thistokenTerminal))
+ {
+ LinkedList ruleList = (LinkedList)rules.get(thistokenTerminal);
+ if (allRulesApplyToTokenAtPosition(ruleList, tokenPos))
+ retainAsKeyword[tokenPos] = true;
+ }
+ }
+ }
+
+ /**
+ * @param ruleList
+ * @param tokenPos
+ */
+ private boolean allRulesApplyToTokenAtPosition(LinkedList ruleList, int tokenPos) {
+ ListIterator it = ruleList.listIterator();
+ while (it.hasNext())
+ {
+ Rule r = (Rule)it.next();
+ if (!r.appliesToTokenAt(tokenPos))
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * buildAdditionalRules does not contain rules for subprogram declarations.
+ * It's easier to detect whether a statement is a subprogram declaration
+ * and make the changes here than to try to build up rules (since the context
+ * is a bit more difficult to specify using our Rule classes).
+ *
+ * Expects idPos to be set appropriately.
+ */
+ private void markSubprogramChanges()
+ {
+ if (idPos == -1) return; // Not a subprogram declaration
+
+ // Everything at paren nesting level 0 is a keyword except the identifier
+ for (int i = 0; i < tokenStream.size(); i++)
+ if (parenDepth[i] == 0)
+ retainAsKeyword[i] = (i != idPos);
+ }
+
+ /**
+ * Determines whether the current statement is a subprogram declaration and,
+ * if so, returns the position of the identifier that is the subprogram name.
+ *
+ * Subprogram declarations must start with a series of
+ * TYPE(...), RECURSIVE, PURE, and ELEMENTAL keywords,
+ * followed immediately by FUNCTION or SUBROUTINE and an identifier.
+ * A function declaration must then be followed by a left parenthesis,
+ * an optional list of parameters, a right parenthesis, and possibly
+ * a RESULT(name) clause. A subroutine does not have a result clause,
+ * the parameter list is optional.
+ *
+ * @return the position of the identifier that names the subprogram (i.e.,
+ * its index in tokenStream) if the statement is a subprogram declaration,
+ * and -1 otherwise.
+ */
+ private int getSubprogramDeclIdPos() {
+ int idPos = -1, i;
+
+ // Find keywords up through the FUNCTION or SUBROUTINE keyword
+ for (i = 0; i < tokenStream.size(); i++)
+ {
+ // Ignore tokens in parenthesis for this scan
+ if (parenDepth[i] == 0)
+ {
+ Token pret = (Token)tokenStream.elementAt(i > 0 ? i-1 : 0);
+ Token t = (Token)tokenStream.elementAt(i);
+
+ if (!isType(t)
+ && !(t.getTerminal() == Terminal.T_PRECISION && pret.getTerminal() == Terminal.T_DOUBLE)
+ && t.getTerminal() != Terminal.T_RECURSIVE
+ && t.getTerminal() != Terminal.T_PURE
+ && t.getTerminal() != Terminal.T_ELEMENTAL
+ && t.getTerminal() != Terminal.T_FUNCTION
+ && t.getTerminal() != Terminal.T_SUBROUTINE
+ && t.getTerminal() != Terminal.T_RPAREN)
+ return -1;
+
+ if (t.getTerminal() == Terminal.T_FUNCTION
+ || t.getTerminal() == Terminal.T_SUBROUTINE)
+ {
+ idPos = i;
+ break;
+ }
+ }
+ }
+
+ // Make sure we bailed on the FUNCTION or SUBROUTINE keyword
+ if (idPos != i) return -1;
+
+ // The identifier is immediately after the FUNCTION or SUBROUTINE keyword
+ idPos++; i++;
+ if (idPos >= tokenStream.size()) return -1;
+
+ // Now make sure the only thing left at this level is RESULT
+ for (++i; i < tokenStream.size(); i++)
+ {
+ // Ignore tokens in parenthesis for this scan
+ if (parenDepth[i] == 0)
+ {
+ Token t = (Token)tokenStream.elementAt(i);
+
+ if (t.getTerminal() != Terminal.T_RPAREN && t.getTerminal() != Terminal.T_RESULT && t.getTerminal() != Terminal.T_EOS)
+ return -1;
+ }
+ }
+
+ return idPos;
+ }
+
+ private class VarDeclIdPosPair
+ {
+ public int declKeywordsStartAt = -1;
+ public int declIdentifierPos = -1;
+ }
+
+ private VarDeclIdPosPair getVarDeclIdPos()
+ {
+ // If this looks like a subprogram declaration, this rule doesn't apply
+ // (yeah, this doesn't catch arrays named FUNCTION... somehow I doubt
+ // that's really a problem...)
+ if (idPos != -1) return null;
+
+ // Start i at the first token of the statement
+ int i = firstTokenPos;
+ if (!isType((Token)tokenStream.elementAt(i))) return null;
+
+ // Declaration keywords start just after the type name, unless
+ // the first four tokens are TYPE(name) ...
+ if (i+3 < tokenStream.size()
+ && ((Token)tokenStream.elementAt(i)).getTerminal() == Terminal.T_TYPE
+ && ((Token)tokenStream.elementAt(i+1)).getTerminal() == Terminal.T_LPAREN
+ && ((Token)tokenStream.elementAt(i+3)).getTerminal() == Terminal.T_RPAREN)
+ i += 4;
+ // ...or the first four tokens are DOUBLE PRECISION * <kind>
+ else if (i+3 < tokenStream.size()
+ && ((Token)tokenStream.elementAt(i)).getTerminal() == Terminal.T_DOUBLE
+ && ((Token)tokenStream.elementAt(i+1)).getTerminal() == Terminal.T_PRECISION
+ && ((Token)tokenStream.elementAt(i+2)).getTerminal() == Terminal.T_ASTERISK
+ && ((Token)tokenStream.elementAt(i+3)).getTerminal() == Terminal.T_ICON)
+ i += 4;
+ // ...or the first three tokens are <type> * <kind>
+ else if (i+2 < tokenStream.size()
+ && ((Token)tokenStream.elementAt(i+1)).getTerminal() == Terminal.T_ASTERISK
+ && ((Token)tokenStream.elementAt(i+2)).getTerminal() == Terminal.T_ICON)
+ i += 3;
+ // ...or the first two tokens are DOUBLE PRECISION
+ else if (i+1 < tokenStream.size()
+ && ((Token)tokenStream.elementAt(i)).getTerminal() == Terminal.T_DOUBLE
+ && ((Token)tokenStream.elementAt(i+1)).getTerminal() == Terminal.T_PRECISION)
+ i += 2;
+ else
+ ++i;
+
+ int declKeywordsStartAt = i;
+ int declIdentifierPos = -1;
+
+ boolean lastWasComma = false;
+
+ // Expect ", keyword, keyword identifier" or
+ // Expect ", keyword, keyword :: identifier" with possible parenthesized
+ // expressions after keywords
+ for ( ; i < tokenStream.size() && declIdentifierPos == -1; i++)
+ {
+ Token t = ((Token)tokenStream.elementAt(i));
+
+ // Skip parenthesized parts...
+ if (parenDepth[i] > 0 || t.getTerminal() == Terminal.T_RPAREN)
+ continue;
+
+ // Is this a comma? Note that and keep searching...
+ else if (t.getTerminal() == Terminal.T_COMMA)
+ {
+ lastWasComma = true;
+ continue;
+ }
+
+ // Did we just follow a comma? Keep searching...
+ else if (lastWasComma)
+ {
+ lastWasComma = false;
+ continue;
+ }
+
+ // We didn't follow a comma... is this ::?
+ else if (t.getTerminal() == Terminal.T_COLON)
+ {
+ if (i+2 >= tokenStream.size()) return null;
+ if (((Token)tokenStream.elementAt(i+1)).getTerminal() == Terminal.T_COLON)
+ {
+ declIdentifierPos = i+2;
+ break;
+ }
+ else
+ return null;
+ }
+
+ // We didn't follow a comma or :: and we're at paren level 0:
+ // This is the identifier!
+ else
+ {
+ declIdentifierPos = i;
+ break;
+ }
+ }
+
+ VarDeclIdPosPair ret = new VarDeclIdPosPair();
+ ret.declKeywordsStartAt = declKeywordsStartAt;
+ ret.declIdentifierPos = declIdentifierPos;
+ return ret;
+ }
+
+ /* ----- RULES ----------------------------------------------------------*/
+
+ private LinkedList ruleList;
+
+ private void shouldAlwaysBeKeyword(Terminal tokenTerminal)
+ {
+ ruleList = new LinkedList();
+ applyRulesTo(tokenTerminal);
+ }
+
+ private void addRule(Terminal tokenTerminal, Rule rule)
+ {
+ ruleList = new LinkedList();
+ ruleList.add(rule);
+ applyRulesTo(tokenTerminal);
+ }
+
+ private void addRules(Terminal tokenTerminal, Rule rule1, Rule rule2)
+ {
+ ruleList = new LinkedList();
+ ruleList.add(rule1);
+ ruleList.add(rule2);
+ applyRulesTo(tokenTerminal);
+ }
+
+ private void addRules(Terminal tokenTerminal, Rule rule1, Rule rule2, Rule rule3)
+ {
+ ruleList = new LinkedList();
+ ruleList.add(rule1);
+ ruleList.add(rule2);
+ ruleList.add(rule3);
+ applyRulesTo(tokenTerminal);
+ }
+
+ private void applySameRulesTo(Terminal tokenTerminal)
+ {
+ applyRulesTo(tokenTerminal);
+ }
+
+ private void applyRulesTo(Terminal tokenTerminal)
+ {
+ if (rules.containsKey(tokenTerminal))
+ throw new Error("Multiple rule lists specified for token " + tokenTerminal.getDescription());
+ rules.put(tokenTerminal, ruleList);
+ }
+
+ /* ----- RULES ----------------------------------------------------------*/
+
+ private abstract class Rule
+ {
+ public abstract boolean appliesToTokenAt(int tokenPos);
+ }
+
+ /**
+ * The statement must be a type declaration statement, and the token
+ * under investigation must appear before the name of the variable being
+ * declared (i.e., it must be part of the type declaration and not part
+ * of the initialization expression, if any).
+ *
+ * Expects varDeclIdPosPair and idPos to be set.
+ */
+ private final class MustBePartOfTypeDecl extends Rule
+ {
+ public boolean appliesToTokenAt(int tokenPos)
+ {
+ int declKeywordsStartAt = -1;
+ int declIdentifierPos = -1;
+
+ if (varDeclIdPosPair != null)
+ {
+ // Part of a variable declaration
+ declKeywordsStartAt = varDeclIdPosPair.declKeywordsStartAt;
+ declIdentifierPos = varDeclIdPosPair.declIdentifierPos;
+ }
+ else if (idPos > 0)
+ {
+ // Part of the return type in a function declaration
+ declKeywordsStartAt = 1;
+ declIdentifierPos = idPos;
+ }
+ else return false;
+
+ // Return whether this token is somewhere in the declaration keywords
+ // and at paren depth 0 or 1
+ return tokenPos >= declKeywordsStartAt
+ && tokenPos < declIdentifierPos
+ && parenDepth[tokenPos] <= 1;
+ }
+ }
+
+ /**
+ * Either MustBePartOfTypeDecl or StmtMustStartWith should hold
+ *
+ * Expects varDeclIdPosPair and idPos to be set.
+ */
+ private final class MustBePartOfTypeDeclOrStmtMustStartWith extends Rule
+ {
+ private Terminal tokenTerminal = ALWAYS_RETURN_TRUE;
+
+ public MustBePartOfTypeDeclOrStmtMustStartWith(Terminal tokenTerminal)
+ {
+ this.tokenTerminal = tokenTerminal;
+ }
+
+ public boolean appliesToTokenAt(int tokenPos)
+ {
+ return (new MustBePartOfTypeDecl().appliesToTokenAt(tokenPos))
+ || (new StmtMustStartWith(tokenTerminal).appliesToTokenAt(tokenPos));
+ }
+ }
+
+ /**
+ * A particular token or sequence of tokens must appear immediately before
+ * the token being investigated.
+ */
+ private final class MustBePrecededBy extends Rule
+ {
+ Terminal secondTokenPriorId = ALWAYS_RETURN_TRUE;
+ Terminal firstTokenPriorId = ALWAYS_RETURN_TRUE;
+
+ public MustBePrecededBy(Terminal tokenTerminal)
+ {
+ firstTokenPriorId = tokenTerminal;
+ }
+
+ public MustBePrecededBy(Terminal tokenTerminal1, Terminal tokenTerminal2)
+ {
+ secondTokenPriorId = tokenTerminal1;
+ firstTokenPriorId = tokenTerminal2;
+ }
+
+ public boolean appliesToTokenAt(int tokenPos)
+ {
+ return matchToken(tokenPos-2, secondTokenPriorId)
+ && matchToken(tokenPos-1, firstTokenPriorId);
+ }
+ }
+
+ /**
+ * The token immediately before the token being investigated must be one
+ * of a given set.
+ */
+ private final class MustBePrecededByOneOf extends Rule
+ {
+ Terminal possibility1 = ALWAYS_RETURN_TRUE,
+ possibility2 = ALWAYS_RETURN_TRUE,
+ possibility3 = ALWAYS_RETURN_TRUE;
+
+ public MustBePrecededByOneOf(Terminal tokenTerminal1, Terminal tokenTerminal2)
+ {
+ possibility1 = tokenTerminal1;
+ possibility2 = tokenTerminal2;
+ }
+
+ public MustBePrecededByOneOf(Terminal tokenTerminal1, Terminal tokenTerminal2, Terminal tokenTerminal3)
+ {
+ possibility1 = tokenTerminal1;
+ possibility2 = tokenTerminal2;
+ possibility3 = tokenTerminal3;
+ }
+
+ public boolean appliesToTokenAt(int tokenPos)
+ {
+ return matchToken(tokenPos-1, possibility1)
+ || matchToken(tokenPos-1, possibility2)
+ || matchToken(tokenPos-1, possibility3);
+ }
+ }
+
+ /**
+ * Wildcard referring to any token.
+ *
+ * A particular token or sequence of tokens must appear immediately after
+ * the token being investigated. The wildcard ANY_DEFINED_OPERATOR can
+ * also be used.
+ */
+ private final Terminal ANY_TOKEN = new Terminal()
+ {
+ public int getActionRow()
+ {
+ throw new Error("Cannot process ANY_TOKEN as lookahead!");
+ }
+
+ public String getDescription()
+ {
+ throw new Error("Cannot describe ANY_TOKEN");
+ }
+ };
+
+ /**
+ * Wildcard referring to any defined operator (obviously)
+ */
+ private final Terminal ANY_DEFINED_OPERATOR = new Terminal()
+ {
+ public int getActionRow()
+ {
+ throw new Error("Cannot process ANY_DEFINED_OPERATOR as lookahead!");
+ }
+
+ public String getDescription()
+ {
+ throw new Error("Cannot describe ANY_DEFINED_OPERATOR");
+ }
+
+ };
+
+ /**
+ * This is used when we need a reasonable default in some places...
+ */
+ private final Terminal ALWAYS_RETURN_TRUE = new Terminal()
+ {
+ public int getActionRow()
+ {
+ throw new Error("Cannot process ALWAYS_RETURN_TRUE as lookahead!");
+ }
+
+ public String getDescription()
+ {
+ throw new Error("Cannot describe ALWAYS_RETURN_TRUE");
+ }
+
+ };
+
+ private final class MustBeFollowedBy extends Rule
+ {
+ Terminal firstTokenAfterId = ALWAYS_RETURN_TRUE;
+ Terminal secondTokenAfterId = ALWAYS_RETURN_TRUE;
+ Terminal thirdTokenAfterId = ALWAYS_RETURN_TRUE;
+
+ public MustBeFollowedBy(Terminal tokenTerminal)
+ {
+ firstTokenAfterId = tokenTerminal;
+ }
+
+ public MustBeFollowedBy(Terminal tokenTerminal1, Terminal tokenTerminal2)
+ {
+ firstTokenAfterId = tokenTerminal1;
+ secondTokenAfterId = tokenTerminal2;
+ }
+
+ public MustBeFollowedBy(Terminal tokenTerminal1, Terminal tokenTerminal2, Terminal tokenTerminal3)
+ {
+ firstTokenAfterId = tokenTerminal1;
+ secondTokenAfterId = tokenTerminal2;
+ thirdTokenAfterId = tokenTerminal3;
+ }
+
+ public boolean appliesToTokenAt(int tokenPos)
+ {
+ return matchToken(tokenPos+1, firstTokenAfterId)
+ && matchToken(tokenPos+2, secondTokenAfterId)
+ && matchToken(tokenPos+3, thirdTokenAfterId);
+ }
+ }
+
+ /**
+ * The statement must start with the given token, and that token must have
+ * been identified by Sale's algorithm as being a keyword (not an
+ * identifier).
+ */
+ private final class StmtMustStartWith extends Rule
+ {
+ private Terminal tokenTerminal = ALWAYS_RETURN_TRUE;
+
+ public StmtMustStartWith(Terminal tokenTerminal)
+ {
+ this.tokenTerminal = tokenTerminal;
+ }
+
+ public boolean appliesToTokenAt(int tokenPos)
+ {
+ return (matchToken(firstTokenPos, tokenTerminal)
+ || matchToken(tokenFollowingParentheticalPos, tokenTerminal))
+ && retainAsKeyword[firstTokenPos];
+ }
+ }
+
+ /**
+ * The statement must start a token from a given set, and that token must
+ * have been identified by Sale's algorithm as being a keyword (not an
+ * identifier).
+ */
+ private final class StmtMustStartWithOneOf extends Rule
+ {
+ private Terminal[] possibilities;
+
+ public StmtMustStartWithOneOf(Terminal tokenTerminal1, Terminal tokenTerminal2)
+ {
+ possibilities = new Terminal[2];
+ possibilities[0] = tokenTerminal1;
+ possibilities[1] = tokenTerminal2;
+ }
+
+ public StmtMustStartWithOneOf(Terminal tokenTerminal1, Terminal tokenTerminal2, Terminal tokenTerminal3)
+ {
+ possibilities = new Terminal[3];
+ possibilities[0] = tokenTerminal1;
+ possibilities[1] = tokenTerminal2;
+ possibilities[2] = tokenTerminal3;
+ }
+
+ public StmtMustStartWithOneOf(Terminal tokenTerminal1, Terminal tokenTerminal2, Terminal tokenTerminal3, Terminal tokenTerminal4)
+ {
+ possibilities = new Terminal[4];
+ possibilities[0] = tokenTerminal1;
+ possibilities[1] = tokenTerminal2;
+ possibilities[2] = tokenTerminal3;
+ possibilities[3] = tokenTerminal4;
+ }
+
+ public StmtMustStartWithOneOf(Terminal tokenTerminal1,
+ Terminal tokenTerminal2,
+ Terminal tokenTerminal3,
+ Terminal tokenTerminal4,
+ Terminal tokenTerminal5,
+ Terminal tokenTerminal6,
+ Terminal tokenTerminal7,
+ Terminal tokenTerminal8)
+ {
+ possibilities = new Terminal[8];
+ possibilities[0] = tokenTerminal1;
+ possibilities[1] = tokenTerminal2;
+ possibilities[2] = tokenTerminal3;
+ possibilities[3] = tokenTerminal4;
+ possibilities[4] = tokenTerminal5;
+ possibilities[5] = tokenTerminal6;
+ possibilities[6] = tokenTerminal7;
+ possibilities[7] = tokenTerminal8;
+ }
+
+ public boolean appliesToTokenAt(int tokenPos)
+ {
+ if (!retainAsKeyword[firstTokenPos]) return false;
+
+ boolean match = false;
+ for (int i = 0; i < possibilities.length && !match; i++)
+ match = match
+ || matchToken(firstTokenPos, possibilities[i]) && retainAsKeyword[firstTokenPos]
+ || matchToken(tokenFollowingParentheticalPos, possibilities[i]) && retainAsKeyword[tokenFollowingParentheticalPos];
+ return match;
+ }
+ }
+
+ /**
+ * The token must be nested in parentheses of a given depth.
+ * In the string a(b(c)(d)e)f, a and f are at level 0, b and
+ * e are at level 1, and c and d are at level 2.
+ */
+ private final class ParenDepthMustBe extends Rule
+ {
+ private int depth = -1;
+
+ public ParenDepthMustBe(int depth)
+ {
+ this.depth = depth;
+ }
+
+ public boolean appliesToTokenAt(int tokenPos)
+ {
+ return parenDepth[tokenPos] == depth;
+ }
+ }
+
+ /**
+ * The token must appear in the spec list for an OPEN, CLOSE, READ,
+ * WRITE, BACKSPACE, END FILE, REWIND, or INQUIRE statement. I.e., the statement
+ * must begin as such, the next token must be a left parenthesis, and the
+ * token being investigated must appear before the corresponding closing
+ * parenthesis.
+ */
+ private final class MustBeInSpecList extends Rule
+ {
+ public boolean appliesToTokenAt(int tokenPos)
+ {
+ Token t = (Token)tokenStream.elementAt(firstTokenPos);
+ int specListStartsAt = firstTokenPos + 1;
+
+ // Check statement start token
+ if (t.getTerminal() != Terminal.T_OPEN
+ && t.getTerminal() != Terminal.T_CLOSE
+ && t.getTerminal() != Terminal.T_READ
+ && t.getTerminal() != Terminal.T_WRITE
+ && t.getTerminal() != Terminal.T_BACKSPACE
+ && t.getTerminal() != Terminal.T_ENDFILE
+ && t.getTerminal() != Terminal.T_END
+ && t.getTerminal() != Terminal.T_REWIND
+ && t.getTerminal() != Terminal.T_INQUIRE)
+ {
+ if (t.getTerminal() != Terminal.T_IF || tokenFollowingParentheticalPos < 0)
+ return false;
+
+ t = (Token)tokenStream.elementAt(tokenFollowingParentheticalPos);
+
+ if (t.getTerminal() != Terminal.T_OPEN
+ && t.getTerminal() != Terminal.T_CLOSE
+ && t.getTerminal() != Terminal.T_READ
+ && t.getTerminal() != Terminal.T_WRITE
+ && t.getTerminal() != Terminal.T_BACKSPACE
+ && t.getTerminal() != Terminal.T_ENDFILE
+ && t.getTerminal() != Terminal.T_END
+ && t.getTerminal() != Terminal.T_REWIND
+ && t.getTerminal() != Terminal.T_INQUIRE)
+ return false;
+
+ specListStartsAt = tokenFollowingParentheticalPos + 1;
+ }
+
+ // If first token is END, must be followed by FILE
+ if (t.getTerminal() == Terminal.T_END)
+ {
+ t = (firstTokenPos+1 >= tokenStream.size()
+ ? null
+ : (Token)tokenStream.elementAt(firstTokenPos+1));
+ if (t == null)
+ return false;
+ else if (t.getTerminal() != Terminal.T_FILE)
+ return false;
+ else
+ specListStartsAt++;
+ }
+
+ // Match a left parenthesis
+ t = (specListStartsAt >= tokenStream.size()
+ ? null
+ : (Token)tokenStream.elementAt(specListStartsAt));
+ if (t == null || t.getTerminal() != Terminal.T_LPAREN) return false;
+
+ int specListEndsAt = specListStartsAt;
+
+ // Skip stuff in parenthesis
+ for (specListEndsAt++;
+ specListEndsAt < tokenStream.size() && parenDepth[specListEndsAt] > 0;
+ specListEndsAt++)
+ ;
+
+ // Match a right parenthesis
+ t = (specListEndsAt >= tokenStream.size()
+ ? null
+ : (Token)tokenStream.elementAt(specListEndsAt));
+ if (t == null || t.getTerminal() != Terminal.T_RPAREN) return false;
+
+ return tokenPos >= specListStartsAt
+ && tokenPos <= specListEndsAt
+ && parenDepth[tokenPos] == 1;
+ }
+ }
+
+ /**
+ * Determines whether a token in a given position represents a given terminal
+ * or falls into a certain terminal class.
+ * @param tokenPos the position of the token to match (in tokenStream)
+ * @param targetTerminal the Terminal the token should have, -1 to always return
+ * true, ANY_TOKEN to match any token at all, and ANY_DEFINED_OPERATOR
+ * to match any Fortran defined operator (.and., .eq., .whatever.).
+ * @return true iff the token in the given position matches the target ID
+ */
+ private boolean matchToken(int tokenPos, Terminal targetTerminal)
+ {
+ if (targetTerminal == ALWAYS_RETURN_TRUE) return true;
+
+ if (tokenPos < 0 || tokenPos >= tokenStream.size()) return false;
+
+ Token actualToken = (tokenPos >= 0 && tokenPos <= tokenStream.size()
+ ? (Token)tokenStream.elementAt(tokenPos)
+ : null);
+
+ if (targetTerminal == ANY_TOKEN)
+ return actualToken != null;
+ else if (targetTerminal == ANY_DEFINED_OPERATOR)
+ return actualToken != null
+ &&(
+ ( actualToken.getText().startsWith(".")
+ && actualToken.getText().endsWith(".") )
+
+ ||(
+ actualToken.getTerminal() == Terminal.T_SLASHSLASH||
+ actualToken.getTerminal() == Terminal.T_ASTERISK ||
+ actualToken.getTerminal() == Terminal.T_POW ||
+ actualToken.getTerminal() == Terminal.T_SLASH ||
+ actualToken.getTerminal() == Terminal.T_PLUS ||
+ actualToken.getTerminal() == Terminal.T_MINUS ||
+ actualToken.getTerminal() == Terminal.T_EQ ||
+ actualToken.getTerminal() == Terminal.T_LE ||
+ actualToken.getTerminal() == Terminal.T_LT ||
+ actualToken.getTerminal() == Terminal.T_NE ||
+ actualToken.getTerminal() == Terminal.T_GE ||
+ actualToken.getTerminal() == Terminal.T_GT ||
+ actualToken.getTerminal() == Terminal.T_EQEQ ||
+ actualToken.getTerminal() == Terminal.T_SLASHEQ ||
+ actualToken.getTerminal() == Terminal.T_LESSTHAN ||
+ actualToken.getTerminal() == Terminal.T_LESSTHANEQ||
+ actualToken.getTerminal() == Terminal.T_GREATERTHAN||
+ actualToken.getTerminal() == Terminal.T_GREATERTHANEQ||
+ actualToken.getTerminal() == Terminal.T_NOT ||
+ actualToken.getTerminal() == Terminal.T_AND ||
+ actualToken.getTerminal() == Terminal.T_OR ||
+ actualToken.getTerminal() == Terminal.T_EQV ||
+ actualToken.getTerminal() == Terminal.T_NEQV
+ )
+ );
+
+ else
+ return actualToken.getTerminal() == targetTerminal;
+ }
+
+ /* ----- APPLY CHANGES --------------------------------------------------*/
+
+ /**
+ * Iterate through the tokens in the statement. If a token can be
+ * an identifier, make it one UNLESS the corresponding entry in
+ * retainAsKeyword is set.
+ */
+ private void applyChanges()
+ {
+ Vector identifiersContainingEqualSigns = new Vector();
+ Vector identifiersStarred = new Vector();
+ for (int i = 0; i < tokenStream.size(); i++)
+ {
+ Token t = (Token)tokenStream.elementAt(i);
+ if (canBeIdentifier(t) && !retainAsKeyword[i])
+ {
+ t.setTerminal(Terminal.T_IDENT);
+ if (endsWithEquals(t))
+ identifiersContainingEqualSigns.add(new Integer(i));
+ }
+ else if (isStarredType(t) && !retainAsKeyword[i])
+ {
+ t.setTerminal(Terminal.T_IDENT);
+ identifiersStarred.add(new Integer(i));
+ }
+
+ }
+
+ // If, say, "len=" was changed into an identifier, split it into
+ // two tokens: the identifier "len" and the equals token
+ for (int j = 0; j < identifiersContainingEqualSigns.size(); j++)
+ {
+ // i is the position of the "xyz=" token in tokenStream
+ int i = ((Integer)identifiersContainingEqualSigns.elementAt(j)).intValue();
+
+ // t is the "xyz=" token: split it
+ Token t = (Token)tokenStream.elementAt(i);
+ Token afterT = (i < tokenStream.size()-1 ? (Token)tokenStream.elementAt(i+1) : null);
+ String textWithoutEquals = t.getText().substring(0, t.getText().length()-1).trim();
+ int numCharsRemoved = t.getText().length() - textWithoutEquals.length();
+
+ if (afterT != null && afterT.getTerminal() == Terminal.T_EQUALS && afterT.getStartCol() == t.getEndCol()+1)
+ {
+ // split "xyz=" "=" into "xyz" "=="
+ afterT.setTerminal(Terminal.T_EQEQ);
+ afterT.setStartCol(afterT.getStartCol()-1);
+ afterT.setOffset(afterT.getOffset()-1);
+ afterT.setLength(afterT.getLength()+1);
+ afterT.setText("==");
+
+ t.setText(textWithoutEquals);
+ t.setEndCol(t.getEndCol() - numCharsRemoved);
+ t.setLength(t.getLength() - numCharsRemoved);
+ }
+ else
+ {
+ // split "xyz=" into "xyz" "="
+ Token eq = new Token();
+ eq.setTerminal(Terminal.T_EQUALS);
+ eq.setFilename(t.getFilename());
+ eq.setStartLine(t.getEndLine());
+ eq.setStartCol(t.getEndCol());
+ eq.setEndLine(t.getEndLine());
+ eq.setEndCol(t.getEndCol());
+ eq.setOffset(t.getOffset() + t.getLength() - 1);
+ eq.setLength(1);
+ eq.setText("=");
+
+ t.setText(textWithoutEquals);
+ t.setEndCol(t.getEndCol() - numCharsRemoved);
+ t.setLength(t.getLength() - numCharsRemoved);
+
+ tokenStream.insertElementAt(eq, i+j+1);
+ }
+ }
+
+ // If, say, "integer*3" was changed into an identifier, split it into
+ // three tokens: the identifier "integer", the asterisk, and the number 3
+ for (int j = 0; j < identifiersStarred.size(); j++)
+ {
+ // i is the position of the "integer*3" token in tokenStream
+ int i = ((Integer)identifiersStarred.elementAt(j)).intValue();
+
+ // t is the "integer*3" token: split it
+ Token t = (Token)tokenStream.elementAt(i);
+ int starPos = t.getText().indexOf("*");
+ String textBeforeStar = t.getText().substring(0, starPos);
+ String textAfterStar = t.getText().substring(starPos+1, t.getText().length());
+ int numCharsRemoved = t.getText().length() - textAfterStar.length() - 1;
+
+ // split "integer*3" into "integer" "*" "3"
+ Token star = new Token();
+ star.setTerminal(Terminal.T_ASTERISK);
+ star.setFilename(t.getFilename());
+ star.setStartLine(t.getEndLine());
+ star.setEndLine(t.getEndLine());
+ star.setStartCol(t.getEndCol() - textAfterStar.length());
+ star.setEndCol(t.getEndCol() - textAfterStar.length());
+ star.setOffset(t.getOffset() + textBeforeStar.length());
+ star.setLength(1);
+ star.setText("*");
+
+ Token num = new Token();
+ num.setTerminal(Terminal.T_ICON);
+ num.setFilename(t.getFilename());
+ num.setStartLine(star.getEndLine());
+ num.setStartCol(star.getEndCol() + 1);
+ num.setEndLine(num.getStartLine());
+ num.setEndCol(num.getStartCol() + textAfterStar.length() - 1);
+ num.setOffset(star.getOffset() + 1);
+ num.setLength(textAfterStar.length());
+ num.setText(textAfterStar);
+
+ t.setText(textBeforeStar);
+ t.setEndCol(t.getEndCol() - numCharsRemoved);
+ t.setLength(t.getLength() - numCharsRemoved);
+
+ tokenStream.insertElementAt(star, i+(2*j)+1);
+ tokenStream.insertElementAt(num, i+(2*j)+2);
+ }
+ }
+
+ /* ----- UTILITY FUNCTIONS ----------------------------------------------*/
+
+ private Pattern idPattern = Pattern.compile("[A-Za-z][A-Za-z0-9_]*([ \t]*=)?");
+ private Pattern starredTypePattern = Pattern.compile("[A-Za-z]+\\*[0-9]+");
+ private Pattern iconPattern = Pattern.compile("[0-9]+|[0-9]+(E|e)[0-9]+\\.[0-9]+");
+
+ /**
+ * @param t
+ * @return true iff the given token can be an identifier
+ */
+ private boolean canBeIdentifier(Token t)
+ {
+ return idPattern.matcher(t.getText()).matches();
+ }
+
+ /**
+ * @param t
+ * @return true iff the given token is a starred type
+ */
+ private boolean isStarredType(Token t)
+ {
+ return starredTypePattern.matcher(t.getText()).matches();
+ }
+
+ /**
+ * @param t
+ * @return true iff the given token is a keyword followed by an equal sign
+ */
+ private boolean endsWithEquals(Token t)
+ {
+ if (t.getText().length() < 2) return false;
+ if (!canBeIdentifier(t)) return false;
+
+ char lastChar = t.getText().charAt(t.getText().length()-1);
+ if (lastChar != '=') return false;
+
+ char nextToLastChar = t.getText().charAt(t.getText().length()-2);
+ return Character.isLetter(nextToLastChar) || Character.isWhitespace(nextToLastChar);
+ }
+
+// /**
+// * @param id
+// * @return true iff the given token ID corresponds to an "end" token
+// */
+// private boolean isEndToken(int id)
+// {
+// return id == Terminal.T_ENDMODULE
+// || id == Terminal.T_ENDFILE
+// || id == Terminal.T_ENDSUBROUTINE
+// || id == Terminal.T_ENDFUNCTION
+// || id == Terminal.T_END
+// || id == Terminal.T_ENDIF
+// || id == Terminal.T_ENDFORALL
+// || id == Terminal.T_ENDEQ
+// || id == Terminal.T_ENDBLOCKDATA
+// || id == Terminal.T_ENDTYPE
+// || id == Terminal.T_ENDDO
+// || id == Terminal.T_ENDPROGRAM
+// || id == Terminal.T_ENDINTERFACE
+// || id == Terminal.T_ENDBLOCK
+// || id == Terminal.T_ENDWHERE
+// || id == Terminal.T_ENDSELECT;
+// }
+
+ /**
+ * @return true iff the token can represent a type
+ */
+ private boolean isType(Token type)
+ {
+ return type.getTerminal() == Terminal.T_CHARACTER
+ || type.getTerminal() == Terminal.T_COMPLEX
+ || type.getTerminal() == Terminal.T_DOUBLE
+ || type.getTerminal() == Terminal.T_DOUBLEPRECISION
+ || type.getTerminal() == Terminal.T_INTEGER
+ || type.getTerminal() == Terminal.T_LOGICAL
+ || type.getTerminal() == Terminal.T_REAL
+ || type.getTerminal() == Terminal.T_TYPE
+ ;
+ }
+
+ /**
+ * @return true iff the current statement begins with a label
+ * (and, thus, the first "real" token is in the second position)
+ */
+ private boolean stmtBeginsWithLabel()
+ {
+ // Is the first token an integer constant?
+ return iconPattern.matcher(((Token)tokenStream.elementAt(0)).getText()).matches();
+ }
+
+ /**
+ * @return true iff the tokens starting at firstTokenPos
+ * are T_IDENT T_COLON.
+ *
+ * R740, R748, and several other productions allow an optional label,
+ * a name, and a colon to precede the statement.
+ */
+ private boolean stmtBeginsWithNameColon()
+ {
+ if (firstTokenPos+1 >= tokenStream.size()) return false;
+
+ return ((Token)tokenStream.elementAt(firstTokenPos)).getTerminal() == Terminal.T_IDENT
+ && ((Token)tokenStream.elementAt(firstTokenPos+1)).getTerminal() == Terminal.T_COLON;
+ }
+
+ public void printCurrentStatementOn(PrintStream s)
+ {
+ for (int i = 0; i < tokenStream.size(); i++)
+ {
+ Token t = (Token)tokenStream.elementAt(i);
+ s.print(t.getText().replaceAll("\\n", "<end of line>"));
+ s.print(" ");
+ }
+ s.println();
+ }
+
+ public void printCurrentStatementTokensOn(PrintStream s)
+ {
+ for (int i = 0; i < tokenStream.size(); i++)
+ {
+ Token t = (Token)tokenStream.elementAt(i);
+ s.print(t.getTerminal().getDescription());
+ s.print("(" + t.getText().replaceAll("\\n", "\\\\n") + ")");
+ //THESE DON'T WORK: The stream gets bigger than the arrays if tokens
+ // are split, so these will be inaccurate and may
+ // cause array bounds exceptions
+ //s.print(", " + parenDepth[i]);
+ //s.print("," + retainAsKeyword[i]);
+ s.print(" ");
+ }
+ s.println();
+ }
+
+ public List/*<NonTreeToken>*/ getNonTreeTokens()
+ {
+ return yylex.getNonTreeTokens();
+ }
+}
diff --git a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/ILexer.java b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/ILexer.java
new file mode 100644
index 00000000..0b152bbe
--- /dev/null
+++ b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/ILexer.java
@@ -0,0 +1,19 @@
+package org.eclipse.photran.internal.core.f95modelparser;
+
+import java.util.List;
+
+import org.eclipse.photran.internal.core.f95modelparser.Token;
+
+/**
+ * Common interface implemented by fixed and free form Fortran lexers
+ *
+ * @author joverbey
+ */
+public interface ILexer
+{
+ Token yylex() throws Exception;
+
+ void setFilename(String filename);
+
+ public List/* <NonTreeToken> */getNonTreeTokens();
+}
diff --git a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/IPresentationBlock.java b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/IPresentationBlock.java
new file mode 100644
index 00000000..f450575d
--- /dev/null
+++ b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/IPresentationBlock.java
@@ -0,0 +1,98 @@
+package org.eclipse.photran.internal.core.f95modelparser;
+
+/**
+ * Common super-interface for <code>Token</code>s and <code>NonTreeToken</code>s, essentially,
+ * anything that will be printed by the <code>SourcePrinter</code> when source code is reproduced
+ * from a parse tree and <code>Presentation</code>.
+ *
+ * @author joverbey
+ */
+public interface IPresentationBlock
+{
+ /**
+ * Returns the filename in which the token occurred
+ */
+ public abstract String getFilename();
+
+ /**
+ * Sets the filename in which the token occurred
+ */
+ public abstract void setFilename(String value);
+
+ /**
+ * Returns the line number on which the token starts (1=first line, 2=second, etc.)
+ */
+ public abstract int getStartLine();
+
+ /**
+ * Sets the line number on which the token starts (1=first line, 2=second, etc.)
+ */
+ public abstract void setStartLine(int value);
+
+ /**
+ * Returns the column number on which the token starts (1=first column, 2=second, etc.)
+ */
+ public abstract int getStartCol();
+
+ /**
+ * Sets the column number on which the token starts (1=first column, 2=second, etc.)
+ */
+ public abstract void setStartCol(int value);
+
+ /**
+ * Returns the line number on which the token ends (1=first line, 2=second, etc.)
+ */
+ public abstract int getEndLine();
+
+ /**
+ * Sets the line number on which the token ends (1=first line, 2=second, etc.)
+ */
+ public abstract void setEndLine(int value);
+
+ /**
+ * Returns the column number on which the token ends (1=first column, 2=second, etc.)
+ */
+ public abstract int getEndCol();
+
+ /**
+ * Sets the column number on which the token ends (1=first column, 2=second, etc.)
+ */
+ public abstract void setEndCol(int value);
+
+ /**
+ * Returns the start of the token, as a character offset in the file 0=first character,
+ * 1=second, etc.
+ */
+ public abstract int getOffset();
+
+ /**
+ * Sets the start of the token, as a character offset in the file 0=first character, 1=second,
+ * etc.
+ */
+ public abstract void setOffset(int value);
+
+ /**
+ * Returns the length of the token text, in characters
+ */
+ public abstract int getLength();
+
+ /**
+ * Sets the length of the token text, in characters
+ */
+ public abstract void setLength(int value);
+
+ /**
+ * Returns the token text
+ */
+ public abstract String getText();
+
+ /**
+ * Sets the token text
+ */
+ public abstract void setText(String value);
+
+ /**
+ * Double-dispatch method for visiting all types of <code>IPresentationBlocks</code>
+ */
+ public abstract void visitUsing(IPresentationBlockVisitor v);
+} \ No newline at end of file
diff --git a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/IPresentationBlockVisitor.java b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/IPresentationBlockVisitor.java
new file mode 100644
index 00000000..61170e19
--- /dev/null
+++ b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/IPresentationBlockVisitor.java
@@ -0,0 +1,14 @@
+package org.eclipse.photran.internal.core.f95modelparser;
+
+
+/**
+ * Visitor for <code>Token</code>s and <code>NonTreeToken</code>s
+ *
+ * @author joverbey
+ */
+public interface IPresentationBlockVisitor
+{
+ public void visitToken(Token token);
+
+ public void visitNonTreeToken(NonTreeToken nonTreeToken);
+}
diff --git a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/Lexer.java b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/Lexer.java
new file mode 100644
index 00000000..2073c05b
--- /dev/null
+++ b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/Lexer.java
@@ -0,0 +1,42 @@
+package org.eclipse.photran.internal.core.f95modelparser;
+
+import java.io.InputStream;
+import java.io.Reader;
+
+/**
+ * Provides factory methods for creating Fortran lexers
+ *
+ * @author joverbey
+ */
+public final class Lexer
+{
+ private Lexer() {;}
+
+ public static ILexer createFreeFormLexer(InputStream in, String filename)
+ {
+ return new FreeFormLexerPhase2(in, filename);
+ }
+
+ public static ILexer createFreeFormLexer(Reader in, String filename)
+ {
+ return new FreeFormLexerPhase2(in, filename);
+ }
+
+ public static ILexer createFixedFormLexer(InputStream in, String filename)
+ {
+ return new FixedFormLexerPhase2(in, filename);
+ }
+
+ public static ILexer createLexer(InputStream in, String filename, boolean isFixedForm)
+ {
+ if (isFixedForm)
+ return createFixedFormLexer(in, filename);
+ else
+ return createFreeFormLexer(in, filename);
+ }
+
+// public static ILexer createFixedFormLexer(Reader in, String filename)
+// {
+// return new FixedFormLexerPhase2(in, filename);
+// }
+}
diff --git a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/NonTreeToken.java b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/NonTreeToken.java
new file mode 100644
index 00000000..b6785e22
--- /dev/null
+++ b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/NonTreeToken.java
@@ -0,0 +1,141 @@
+package org.eclipse.photran.internal.core.f95modelparser;
+
+
+/**
+ * Represents a comment, line continuation, or other entity that is
+ * in the source code but is not included in the parse tree.
+ *
+ * @author joverbey
+ */
+public class NonTreeToken implements IPresentationBlock
+{
+ private String filename;
+
+ private int offset, length;
+
+ private int startLine, endLine;
+
+ private int startCol, endCol;
+
+ private String text;
+
+ public NonTreeToken(String filename, int offset, int row, int col, String text)
+ {
+ this.text = text;
+ this.filename = filename;
+ this.offset = offset;
+ this.length = text.length();
+ this.startLine = row;
+ this.startCol = col;
+ this.endLine = row + countNumberOfNewLinesIn(text);
+ determineEndCol();
+ }
+
+ private int countNumberOfNewLinesIn(String string)
+ {
+ int count = 0;
+ int lastOccurrence = -1, nextOccurrence;
+
+ for (nextOccurrence = string.indexOf('\n', lastOccurrence+1);
+ nextOccurrence > 0;
+ lastOccurrence = nextOccurrence, nextOccurrence = string.indexOf('\n', lastOccurrence+1))
+ count++;
+
+ return count;
+ }
+
+ private void determineEndCol()
+ {
+ endCol = startCol;
+ for (int i = 0; i < text.length(); i++)
+ if (text.charAt(i) == '\n')
+ endCol = 0;
+ else
+ endCol++;
+ }
+
+ public String getFilename()
+ {
+ return filename;
+ }
+
+ public void setFilename(String value)
+ {
+ this.filename = value;
+ }
+
+ public int getStartLine()
+ {
+ return this.startLine;
+ }
+
+ public void setStartLine(int value)
+ {
+ this.startLine = value;
+ }
+
+ public int getStartCol()
+ {
+ return this.startCol;
+ }
+
+ public void setStartCol(int value)
+ {
+ this.startCol = value;
+ }
+
+ public int getEndLine()
+ {
+ return this.endLine;
+ }
+
+ public void setEndLine(int value)
+ {
+ this.endLine = value;
+ }
+
+ public int getEndCol()
+ {
+ return this.endCol;
+ }
+
+ public void setEndCol(int value)
+ {
+ this.endCol = value;
+ }
+
+ public int getOffset()
+ {
+ return this.offset;
+ }
+
+ public void setOffset(int value)
+ {
+ this.offset = value;
+ }
+
+ public int getLength()
+ {
+ return this.length;
+ }
+
+ public void setLength(int value)
+ {
+ this.length = value;
+ }
+
+ public String getText()
+ {
+ return this.text;
+ }
+
+ public void setText(String value)
+ {
+ this.text = value;
+ }
+
+ public void visitUsing(IPresentationBlockVisitor v)
+ {
+ v.visitNonTreeToken(this);
+ }
+}
diff --git a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/Nonterminal.java b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/Nonterminal.java
new file mode 100644
index 00000000..401d21d4
--- /dev/null
+++ b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/Nonterminal.java
@@ -0,0 +1,6551 @@
+// Generated by Rex version 1.0 alpha 5
+
+package org.eclipse.photran.internal.core.f95modelparser;
+
+
+/**
+ * Enumerates the nonterminal symbols in the grammar being parsed
+ */
+public abstract class Nonterminal extends TerminalOrNonterminal implements ParserSymbol
+{
+ /**
+ * Returns the row of the parser's Goto table associated with this nonterminal
+ */
+ abstract int getGoToRow();
+
+ /**
+ * Returns a string describing the nonterminal
+ */
+ public abstract String getDescription();
+
+ abstract int getNumberOfSymbolsOnValueStack();
+
+ public static class XelseifstmtNonterminal extends Nonterminal
+ {
+ private XelseifstmtNonterminal() {;} // Singleton
+ private static XelseifstmtNonterminal singletonInstance = null;
+ public static final XelseifstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XelseifstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xElseIfStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 0; }
+ }
+ public static final Nonterminal.XelseifstmtNonterminal XELSEIFSTMT = XelseifstmtNonterminal.getInstance();
+
+ public static class XbackspacestmtNonterminal extends Nonterminal
+ {
+ private XbackspacestmtNonterminal() {;} // Singleton
+ private static XbackspacestmtNonterminal singletonInstance = null;
+ public static final XbackspacestmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XbackspacestmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xBackspaceStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 1; }
+ }
+ public static final Nonterminal.XbackspacestmtNonterminal XBACKSPACESTMT = XbackspacestmtNonterminal.getInstance();
+
+ public static class XendforallstmtNonterminal extends Nonterminal
+ {
+ private XendforallstmtNonterminal() {;} // Singleton
+ private static XendforallstmtNonterminal singletonInstance = null;
+ public static final XendforallstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XendforallstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndForallStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 2; }
+ }
+ public static final Nonterminal.XendforallstmtNonterminal XENDFORALLSTMT = XendforallstmtNonterminal.getInstance();
+
+ public static class XexprlistNonterminal extends Nonterminal
+ {
+ private XexprlistNonterminal() {;} // Singleton
+ private static XexprlistNonterminal singletonInstance = null;
+ public static final XexprlistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XexprlistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xExprList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 3; }
+ }
+ public static final Nonterminal.XexprlistNonterminal XEXPRLIST = XexprlistNonterminal.getInstance();
+
+ public static class Xmaskedelsewherestmt53ReductionNonterminal extends Nonterminal
+ {
+ private Xmaskedelsewherestmt53ReductionNonterminal() {;} // Singleton
+ private static Xmaskedelsewherestmt53ReductionNonterminal singletonInstance = null;
+ public static final Xmaskedelsewherestmt53ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xmaskedelsewherestmt53ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xMaskedElsewhereStmt@53>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 4; }
+ }
+ public static final Nonterminal.Xmaskedelsewherestmt53ReductionNonterminal XMASKEDELSEWHERESTMT53 = Xmaskedelsewherestmt53ReductionNonterminal.getInstance();
+
+ public static class XsfdatarefNonterminal extends Nonterminal
+ {
+ private XsfdatarefNonterminal() {;} // Singleton
+ private static XsfdatarefNonterminal singletonInstance = null;
+ public static final XsfdatarefNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XsfdatarefNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSFDataRef>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 5; }
+ }
+ public static final Nonterminal.XsfdatarefNonterminal XSFDATAREF = XsfdatarefNonterminal.getInstance();
+
+ public static class XrdctlspecNonterminal extends Nonterminal
+ {
+ private XrdctlspecNonterminal() {;} // Singleton
+ private static XrdctlspecNonterminal singletonInstance = null;
+ public static final XrdctlspecNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XrdctlspecNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xRdCtlSpec>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 6; }
+ }
+ public static final Nonterminal.XrdctlspecNonterminal XRDCTLSPEC = XrdctlspecNonterminal.getInstance();
+
+ public static class XprogramstmtNonterminal extends Nonterminal
+ {
+ private XprogramstmtNonterminal() {;} // Singleton
+ private static XprogramstmtNonterminal singletonInstance = null;
+ public static final XprogramstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XprogramstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xProgramStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 7; }
+ }
+ public static final Nonterminal.XprogramstmtNonterminal XPROGRAMSTMT = XprogramstmtNonterminal.getInstance();
+
+ public static class XsectionsubscriptNonterminal extends Nonterminal
+ {
+ private XsectionsubscriptNonterminal() {;} // Singleton
+ private static XsectionsubscriptNonterminal singletonInstance = null;
+ public static final XsectionsubscriptNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XsectionsubscriptNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSectionSubscript>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 8; }
+ }
+ public static final Nonterminal.XsectionsubscriptNonterminal XSECTIONSUBSCRIPT = XsectionsubscriptNonterminal.getInstance();
+
+ public static class XstopstmtNonterminal extends Nonterminal
+ {
+ private XstopstmtNonterminal() {;} // Singleton
+ private static XstopstmtNonterminal singletonInstance = null;
+ public static final XstopstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XstopstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xStopStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 9; }
+ }
+ public static final Nonterminal.XstopstmtNonterminal XSTOPSTMT = XstopstmtNonterminal.getInstance();
+
+ public static class Xvariable16ReductionNonterminal extends Nonterminal
+ {
+ private Xvariable16ReductionNonterminal() {;} // Singleton
+ private static Xvariable16ReductionNonterminal singletonInstance = null;
+ public static final Xvariable16ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xvariable16ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xVariable@16>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 10; }
+ }
+ public static final Nonterminal.Xvariable16ReductionNonterminal XVARIABLE16 = Xvariable16ReductionNonterminal.getInstance();
+
+ public static class XsfexprNonterminal extends Nonterminal
+ {
+ private XsfexprNonterminal() {;} // Singleton
+ private static XsfexprNonterminal singletonInstance = null;
+ public static final XsfexprNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XsfexprNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSFExpr>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 11; }
+ }
+ public static final Nonterminal.XsfexprNonterminal XSFEXPR = XsfexprNonterminal.getInstance();
+
+ public static class XforallbodyNonterminal extends Nonterminal
+ {
+ private XforallbodyNonterminal() {;} // Singleton
+ private static XforallbodyNonterminal singletonInstance = null;
+ public static final XforallbodyNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XforallbodyNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xForallBody>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 12; }
+ }
+ public static final Nonterminal.XforallbodyNonterminal XFORALLBODY = XforallbodyNonterminal.getInstance();
+
+ public static class XinitializationNonterminal extends Nonterminal
+ {
+ private XinitializationNonterminal() {;} // Singleton
+ private static XinitializationNonterminal singletonInstance = null;
+ public static final XinitializationNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XinitializationNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xInitialization>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 13; }
+ }
+ public static final Nonterminal.XinitializationNonterminal XINITIALIZATION = XinitializationNonterminal.getInstance();
+
+ public static class XforallheaderNonterminal extends Nonterminal
+ {
+ private XforallheaderNonterminal() {;} // Singleton
+ private static XforallheaderNonterminal singletonInstance = null;
+ public static final XforallheaderNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XforallheaderNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xForallHeader>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 14; }
+ }
+ public static final Nonterminal.XforallheaderNonterminal XFORALLHEADER = XforallheaderNonterminal.getInstance();
+
+ public static class Xlevel4expr42ReductionNonterminal extends Nonterminal
+ {
+ private Xlevel4expr42ReductionNonterminal() {;} // Singleton
+ private static Xlevel4expr42ReductionNonterminal singletonInstance = null;
+ public static final Xlevel4expr42ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xlevel4expr42ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xLevel4Expr@42>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 2; }
+
+ int getGoToRow() { return 15; }
+ }
+ public static final Nonterminal.Xlevel4expr42ReductionNonterminal XLEVEL4EXPR42 = Xlevel4expr42ReductionNonterminal.getInstance();
+
+ public static class XcasestmtNonterminal extends Nonterminal
+ {
+ private XcasestmtNonterminal() {;} // Singleton
+ private static XcasestmtNonterminal singletonInstance = null;
+ public static final XcasestmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcasestmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xCaseStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 16; }
+ }
+ public static final Nonterminal.XcasestmtNonterminal XCASESTMT = XcasestmtNonterminal.getInstance();
+
+ public static class XobsoleteactionstmtNonterminal extends Nonterminal
+ {
+ private XobsoleteactionstmtNonterminal() {;} // Singleton
+ private static XobsoleteactionstmtNonterminal singletonInstance = null;
+ public static final XobsoleteactionstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XobsoleteactionstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xObsoleteActionStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 17; }
+ }
+ public static final Nonterminal.XobsoleteactionstmtNonterminal XOBSOLETEACTIONSTMT = XobsoleteactionstmtNonterminal.getInstance();
+
+ public static class XlengthselectorNonterminal extends Nonterminal
+ {
+ private XlengthselectorNonterminal() {;} // Singleton
+ private static XlengthselectorNonterminal singletonInstance = null;
+ public static final XlengthselectorNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XlengthselectorNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xLengthSelector>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 18; }
+ }
+ public static final Nonterminal.XlengthselectorNonterminal XLENGTHSELECTOR = XlengthselectorNonterminal.getInstance();
+
+ public static class Xendifstmt59ReductionNonterminal extends Nonterminal
+ {
+ private Xendifstmt59ReductionNonterminal() {;} // Singleton
+ private static Xendifstmt59ReductionNonterminal singletonInstance = null;
+ public static final Xendifstmt59ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xendifstmt59ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndIfStmt@59>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 19; }
+ }
+ public static final Nonterminal.Xendifstmt59ReductionNonterminal XENDIFSTMT59 = Xendifstmt59ReductionNonterminal.getInstance();
+
+ public static class XinquirespecNonterminal extends Nonterminal
+ {
+ private XinquirespecNonterminal() {;} // Singleton
+ private static XinquirespecNonterminal singletonInstance = null;
+ public static final XinquirespecNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XinquirespecNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xInquireSpec>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 20; }
+ }
+ public static final Nonterminal.XinquirespecNonterminal XINQUIRESPEC = XinquirespecNonterminal.getInstance();
+
+ public static class XformateditNonterminal extends Nonterminal
+ {
+ private XformateditNonterminal() {;} // Singleton
+ private static XformateditNonterminal singletonInstance = null;
+ public static final XformateditNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XformateditNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xFormatedit>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 21; }
+ }
+ public static final Nonterminal.XformateditNonterminal XFORMATEDIT = XformateditNonterminal.getInstance();
+
+ public static class XaccessidlistNonterminal extends Nonterminal
+ {
+ private XaccessidlistNonterminal() {;} // Singleton
+ private static XaccessidlistNonterminal singletonInstance = null;
+ public static final XaccessidlistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XaccessidlistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAccessIdList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 22; }
+ }
+ public static final Nonterminal.XaccessidlistNonterminal XACCESSIDLIST = XaccessidlistNonterminal.getInstance();
+
+ public static class XdatastmtvalueNonterminal extends Nonterminal
+ {
+ private XdatastmtvalueNonterminal() {;} // Singleton
+ private static XdatastmtvalueNonterminal singletonInstance = null;
+ public static final XdatastmtvalueNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XdatastmtvalueNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xDataStmtValue>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 23; }
+ }
+ public static final Nonterminal.XdatastmtvalueNonterminal XDATASTMTVALUE = XdatastmtvalueNonterminal.getInstance();
+
+ public static class XunitidentifierNonterminal extends Nonterminal
+ {
+ private XunitidentifierNonterminal() {;} // Singleton
+ private static XunitidentifierNonterminal singletonInstance = null;
+ public static final XunitidentifierNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XunitidentifierNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xUnitIdentifier>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 24; }
+ }
+ public static final Nonterminal.XunitidentifierNonterminal XUNITIDENTIFIER = XunitidentifierNonterminal.getInstance();
+
+ public static class Xvariable15ReductionNonterminal extends Nonterminal
+ {
+ private Xvariable15ReductionNonterminal() {;} // Singleton
+ private static Xvariable15ReductionNonterminal singletonInstance = null;
+ public static final Xvariable15ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xvariable15ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xVariable@15>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 4; }
+
+ int getGoToRow() { return 25; }
+ }
+ public static final Nonterminal.Xvariable15ReductionNonterminal XVARIABLE15 = Xvariable15ReductionNonterminal.getInstance();
+
+ public static class XsavestmtNonterminal extends Nonterminal
+ {
+ private XsavestmtNonterminal() {;} // Singleton
+ private static XsavestmtNonterminal singletonInstance = null;
+ public static final XsavestmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XsavestmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSaveStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 26; }
+ }
+ public static final Nonterminal.XsavestmtNonterminal XSAVESTMT = XsavestmtNonterminal.getInstance();
+
+ public static class XequivalenceobjectlistNonterminal extends Nonterminal
+ {
+ private XequivalenceobjectlistNonterminal() {;} // Singleton
+ private static XequivalenceobjectlistNonterminal singletonInstance = null;
+ public static final XequivalenceobjectlistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XequivalenceobjectlistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEquivalenceObjectList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 27; }
+ }
+ public static final Nonterminal.XequivalenceobjectlistNonterminal XEQUIVALENCEOBJECTLIST = XequivalenceobjectlistNonterminal.getInstance();
+
+ public static class XconnectspeclistNonterminal extends Nonterminal
+ {
+ private XconnectspeclistNonterminal() {;} // Singleton
+ private static XconnectspeclistNonterminal singletonInstance = null;
+ public static final XconnectspeclistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XconnectspeclistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xConnectSpecList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 28; }
+ }
+ public static final Nonterminal.XconnectspeclistNonterminal XCONNECTSPECLIST = XconnectspeclistNonterminal.getInstance();
+
+ public static class XsubroutineinterfacerangeNonterminal extends Nonterminal
+ {
+ private XsubroutineinterfacerangeNonterminal() {;} // Singleton
+ private static XsubroutineinterfacerangeNonterminal singletonInstance = null;
+ public static final XsubroutineinterfacerangeNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XsubroutineinterfacerangeNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSubroutineInterfaceRange>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 29; }
+ }
+ public static final Nonterminal.XsubroutineinterfacerangeNonterminal XSUBROUTINEINTERFACERANGE = XsubroutineinterfacerangeNonterminal.getInstance();
+
+ public static class XsubroutinearglistNonterminal extends Nonterminal
+ {
+ private XsubroutinearglistNonterminal() {;} // Singleton
+ private static XsubroutinearglistNonterminal singletonInstance = null;
+ public static final XsubroutinearglistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XsubroutinearglistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSubroutineArgList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 30; }
+ }
+ public static final Nonterminal.XsubroutinearglistNonterminal XSUBROUTINEARGLIST = XsubroutinearglistNonterminal.getInstance();
+
+ public static class XinquirestmtNonterminal extends Nonterminal
+ {
+ private XinquirestmtNonterminal() {;} // Singleton
+ private static XinquirestmtNonterminal singletonInstance = null;
+ public static final XinquirestmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XinquirestmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xInquireStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 31; }
+ }
+ public static final Nonterminal.XinquirestmtNonterminal XINQUIRESTMT = XinquirestmtNonterminal.getInstance();
+
+ public static class XsfvarnameNonterminal extends Nonterminal
+ {
+ private XsfvarnameNonterminal() {;} // Singleton
+ private static XsfvarnameNonterminal singletonInstance = null;
+ public static final XsfvarnameNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XsfvarnameNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSFVarName>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 32; }
+ }
+ public static final Nonterminal.XsfvarnameNonterminal XSFVARNAME = XsfvarnameNonterminal.getInstance();
+
+ public static class XexplicitshapespeclistNonterminal extends Nonterminal
+ {
+ private XexplicitshapespeclistNonterminal() {;} // Singleton
+ private static XexplicitshapespeclistNonterminal singletonInstance = null;
+ public static final XexplicitshapespeclistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XexplicitshapespeclistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xExplicitShapeSpecList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 33; }
+ }
+ public static final Nonterminal.XexplicitshapespeclistNonterminal XEXPLICITSHAPESPECLIST = XexplicitshapespeclistNonterminal.getInstance();
+
+ public static class XgenericspecNonterminal extends Nonterminal
+ {
+ private XgenericspecNonterminal() {;} // Singleton
+ private static XgenericspecNonterminal singletonInstance = null;
+ public static final XgenericspecNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XgenericspecNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xGenericSpec>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 34; }
+ }
+ public static final Nonterminal.XgenericspecNonterminal XGENERICSPEC = XgenericspecNonterminal.getInstance();
+
+ public static class XcomponentinitializationNonterminal extends Nonterminal
+ {
+ private XcomponentinitializationNonterminal() {;} // Singleton
+ private static XcomponentinitializationNonterminal singletonInstance = null;
+ public static final XcomponentinitializationNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcomponentinitializationNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xComponentInitialization>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 35; }
+ }
+ public static final Nonterminal.XcomponentinitializationNonterminal XCOMPONENTINITIALIZATION = XcomponentinitializationNonterminal.getInstance();
+
+ public static class XvariablecommaNonterminal extends Nonterminal
+ {
+ private XvariablecommaNonterminal() {;} // Singleton
+ private static XvariablecommaNonterminal singletonInstance = null;
+ public static final XvariablecommaNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XvariablecommaNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xVariableComma>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 36; }
+ }
+ public static final Nonterminal.XvariablecommaNonterminal XVARIABLECOMMA = XvariablecommaNonterminal.getInstance();
+
+ public static class XmoduleNonterminal extends Nonterminal
+ {
+ private XmoduleNonterminal() {;} // Singleton
+ private static XmoduleNonterminal singletonInstance = null;
+ public static final XmoduleNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XmoduleNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xModule>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 37; }
+ }
+ public static final Nonterminal.XmoduleNonterminal XMODULE = XmoduleNonterminal.getInstance();
+
+ public static class XwherebodyconstructNonterminal extends Nonterminal
+ {
+ private XwherebodyconstructNonterminal() {;} // Singleton
+ private static XwherebodyconstructNonterminal singletonInstance = null;
+ public static final XwherebodyconstructNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XwherebodyconstructNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xWhereBodyConstruct>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 38; }
+ }
+ public static final Nonterminal.XwherebodyconstructNonterminal XWHEREBODYCONSTRUCT = XwherebodyconstructNonterminal.getInstance();
+
+ public static class XfunctionreferenceNonterminal extends Nonterminal
+ {
+ private XfunctionreferenceNonterminal() {;} // Singleton
+ private static XfunctionreferenceNonterminal singletonInstance = null;
+ public static final XfunctionreferenceNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XfunctionreferenceNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xFunctionReference>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 39; }
+ }
+ public static final Nonterminal.XfunctionreferenceNonterminal XFUNCTIONREFERENCE = XfunctionreferenceNonterminal.getInstance();
+
+ public static class XcharlengthNonterminal extends Nonterminal
+ {
+ private XcharlengthNonterminal() {;} // Singleton
+ private static XcharlengthNonterminal singletonInstance = null;
+ public static final XcharlengthNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcharlengthNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xCharLength>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 40; }
+ }
+ public static final Nonterminal.XcharlengthNonterminal XCHARLENGTH = XcharlengthNonterminal.getInstance();
+
+ public static class XaddoperandNonterminal extends Nonterminal
+ {
+ private XaddoperandNonterminal() {;} // Singleton
+ private static XaddoperandNonterminal singletonInstance = null;
+ public static final XaddoperandNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XaddoperandNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAddOperand>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 41; }
+ }
+ public static final Nonterminal.XaddoperandNonterminal XADDOPERAND = XaddoperandNonterminal.getInstance();
+
+ public static class Xcexpr41ReductionNonterminal extends Nonterminal
+ {
+ private Xcexpr41ReductionNonterminal() {;} // Singleton
+ private static Xcexpr41ReductionNonterminal singletonInstance = null;
+ public static final Xcexpr41ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xcexpr41ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xCExpr@41>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 2; }
+
+ int getGoToRow() { return 42; }
+ }
+ public static final Nonterminal.Xcexpr41ReductionNonterminal XCEXPR41 = Xcexpr41ReductionNonterminal.getInstance();
+
+ public static class XpointerstmtNonterminal extends Nonterminal
+ {
+ private XpointerstmtNonterminal() {;} // Singleton
+ private static XpointerstmtNonterminal singletonInstance = null;
+ public static final XpointerstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XpointerstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xPointerStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 43; }
+ }
+ public static final Nonterminal.XpointerstmtNonterminal XPOINTERSTMT = XpointerstmtNonterminal.getInstance();
+
+ public static class XinvalidentitydeclNonterminal extends Nonterminal
+ {
+ private XinvalidentitydeclNonterminal() {;} // Singleton
+ private static XinvalidentitydeclNonterminal singletonInstance = null;
+ public static final XinvalidentitydeclNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XinvalidentitydeclNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xInvalidEntityDecl>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 44; }
+ }
+ public static final Nonterminal.XinvalidentitydeclNonterminal XINVALIDENTITYDECL = XinvalidentitydeclNonterminal.getInstance();
+
+ public static class XnamedconstantuseNonterminal extends Nonterminal
+ {
+ private XnamedconstantuseNonterminal() {;} // Singleton
+ private static XnamedconstantuseNonterminal singletonInstance = null;
+ public static final XnamedconstantuseNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XnamedconstantuseNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xNamedConstantUse>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 45; }
+ }
+ public static final Nonterminal.XnamedconstantuseNonterminal XNAMEDCONSTANTUSE = XnamedconstantuseNonterminal.getInstance();
+
+ public static class XnamedconstantdefNonterminal extends Nonterminal
+ {
+ private XnamedconstantdefNonterminal() {;} // Singleton
+ private static XnamedconstantdefNonterminal singletonInstance = null;
+ public static final XnamedconstantdefNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XnamedconstantdefNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xNamedConstantDef>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 46; }
+ }
+ public static final Nonterminal.XnamedconstantdefNonterminal XNAMEDCONSTANTDEF = XnamedconstantdefNonterminal.getInstance();
+
+ public static class XrewindstmtNonterminal extends Nonterminal
+ {
+ private XrewindstmtNonterminal() {;} // Singleton
+ private static XrewindstmtNonterminal singletonInstance = null;
+ public static final XrewindstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XrewindstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xRewindStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 47; }
+ }
+ public static final Nonterminal.XrewindstmtNonterminal XREWINDSTMT = XrewindstmtNonterminal.getInstance();
+
+ public static class StartReductionNonterminal extends Nonterminal
+ {
+ private StartReductionNonterminal() {;} // Singleton
+ private static StartReductionNonterminal singletonInstance = null;
+ public static final StartReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new StartReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<@start>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 48; }
+ }
+ public static final Nonterminal.StartReductionNonterminal START = StartReductionNonterminal.getInstance();
+
+ public static class XblockdatastmtNonterminal extends Nonterminal
+ {
+ private XblockdatastmtNonterminal() {;} // Singleton
+ private static XblockdatastmtNonterminal singletonInstance = null;
+ public static final XblockdatastmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XblockdatastmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xBlockDataStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 49; }
+ }
+ public static final Nonterminal.XblockdatastmtNonterminal XBLOCKDATASTMT = XblockdatastmtNonterminal.getInstance();
+
+ public static class XmodulestmtNonterminal extends Nonterminal
+ {
+ private XmodulestmtNonterminal() {;} // Singleton
+ private static XmodulestmtNonterminal singletonInstance = null;
+ public static final XmodulestmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XmodulestmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xModuleStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 50; }
+ }
+ public static final Nonterminal.XmodulestmtNonterminal XMODULESTMT = XmodulestmtNonterminal.getInstance();
+
+ public static class XcommonblocknameNonterminal extends Nonterminal
+ {
+ private XcommonblocknameNonterminal() {;} // Singleton
+ private static XcommonblocknameNonterminal singletonInstance = null;
+ public static final XcommonblocknameNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcommonblocknameNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xCommonBlockName>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 51; }
+ }
+ public static final Nonterminal.XcommonblocknameNonterminal XCOMMONBLOCKNAME = XcommonblocknameNonterminal.getInstance();
+
+ public static class XallocatablestmtNonterminal extends Nonterminal
+ {
+ private XallocatablestmtNonterminal() {;} // Singleton
+ private static XallocatablestmtNonterminal singletonInstance = null;
+ public static final XallocatablestmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XallocatablestmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAllocatableStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 52; }
+ }
+ public static final Nonterminal.XallocatablestmtNonterminal XALLOCATABLESTMT = XallocatablestmtNonterminal.getInstance();
+
+ public static class XdatarefNonterminal extends Nonterminal
+ {
+ private XdatarefNonterminal() {;} // Singleton
+ private static XdatarefNonterminal singletonInstance = null;
+ public static final XdatarefNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XdatarefNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xDataRef>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 53; }
+ }
+ public static final Nonterminal.XdatarefNonterminal XDATAREF = XdatarefNonterminal.getInstance();
+
+ public static class Xlevel5expr46ReductionNonterminal extends Nonterminal
+ {
+ private Xlevel5expr46ReductionNonterminal() {;} // Singleton
+ private static Xlevel5expr46ReductionNonterminal singletonInstance = null;
+ public static final Xlevel5expr46ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xlevel5expr46ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xLevel5Expr@46>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 2; }
+
+ int getGoToRow() { return 54; }
+ }
+ public static final Nonterminal.Xlevel5expr46ReductionNonterminal XLEVEL5EXPR46 = Xlevel5expr46ReductionNonterminal.getInstance();
+
+ public static class XstmtfunctionstmtNonterminal extends Nonterminal
+ {
+ private XstmtfunctionstmtNonterminal() {;} // Singleton
+ private static XstmtfunctionstmtNonterminal singletonInstance = null;
+ public static final XstmtfunctionstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XstmtfunctionstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xStmtFunctionStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 55; }
+ }
+ public static final Nonterminal.XstmtfunctionstmtNonterminal XSTMTFUNCTIONSTMT = XstmtfunctionstmtNonterminal.getInstance();
+
+ public static class XsavedcommonblockNonterminal extends Nonterminal
+ {
+ private XsavedcommonblockNonterminal() {;} // Singleton
+ private static XsavedcommonblockNonterminal singletonInstance = null;
+ public static final XsavedcommonblockNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XsavedcommonblockNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSavedCommonBlock>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 56; }
+ }
+ public static final Nonterminal.XsavedcommonblockNonterminal XSAVEDCOMMONBLOCK = XsavedcommonblockNonterminal.getInstance();
+
+ public static class XcasebodyconstructNonterminal extends Nonterminal
+ {
+ private XcasebodyconstructNonterminal() {;} // Singleton
+ private static XcasebodyconstructNonterminal singletonInstance = null;
+ public static final XcasebodyconstructNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcasebodyconstructNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xCaseBodyConstruct>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 57; }
+ }
+ public static final Nonterminal.XcasebodyconstructNonterminal XCASEBODYCONSTRUCT = XcasebodyconstructNonterminal.getInstance();
+
+ public static class XsfdummyargnameNonterminal extends Nonterminal
+ {
+ private XsfdummyargnameNonterminal() {;} // Singleton
+ private static XsfdummyargnameNonterminal singletonInstance = null;
+ public static final XsfdummyargnameNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XsfdummyargnameNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSFDummyArgName>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 58; }
+ }
+ public static final Nonterminal.XsfdummyargnameNonterminal XSFDUMMYARGNAME = XsfdummyargnameNonterminal.getInstance();
+
+ public static class XreadstmtNonterminal extends Nonterminal
+ {
+ private XreadstmtNonterminal() {;} // Singleton
+ private static XreadstmtNonterminal singletonInstance = null;
+ public static final XreadstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XreadstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xReadStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 59; }
+ }
+ public static final Nonterminal.XreadstmtNonterminal XREADSTMT = XreadstmtNonterminal.getInstance();
+
+ public static class XarraydeclaratorNonterminal extends Nonterminal
+ {
+ private XarraydeclaratorNonterminal() {;} // Singleton
+ private static XarraydeclaratorNonterminal singletonInstance = null;
+ public static final XarraydeclaratorNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XarraydeclaratorNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xArrayDeclarator>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 60; }
+ }
+ public static final Nonterminal.XarraydeclaratorNonterminal XARRAYDECLARATOR = XarraydeclaratorNonterminal.getInstance();
+
+ public static class XprefixspeclistNonterminal extends Nonterminal
+ {
+ private XprefixspeclistNonterminal() {;} // Singleton
+ private static XprefixspeclistNonterminal singletonInstance = null;
+ public static final XprefixspeclistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XprefixspeclistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xPrefixSpecList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 61; }
+ }
+ public static final Nonterminal.XprefixspeclistNonterminal XPREFIXSPECLIST = XprefixspeclistNonterminal.getInstance();
+
+ public static class XcommaexpNonterminal extends Nonterminal
+ {
+ private XcommaexpNonterminal() {;} // Singleton
+ private static XcommaexpNonterminal singletonInstance = null;
+ public static final XcommaexpNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcommaexpNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xCommaExp>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 62; }
+ }
+ public static final Nonterminal.XcommaexpNonterminal XCOMMAEXP = XcommaexpNonterminal.getInstance();
+
+ public static class XcaseconstructNonterminal extends Nonterminal
+ {
+ private XcaseconstructNonterminal() {;} // Singleton
+ private static XcaseconstructNonterminal singletonInstance = null;
+ public static final XcaseconstructNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcaseconstructNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xCaseConstruct>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 63; }
+ }
+ public static final Nonterminal.XcaseconstructNonterminal XCASECONSTRUCT = XcaseconstructNonterminal.getInstance();
+
+ public static class XintrinsicstmtNonterminal extends Nonterminal
+ {
+ private XintrinsicstmtNonterminal() {;} // Singleton
+ private static XintrinsicstmtNonterminal singletonInstance = null;
+ public static final XintrinsicstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XintrinsicstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xIntrinsicStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 64; }
+ }
+ public static final Nonterminal.XintrinsicstmtNonterminal XINTRINSICSTMT = XintrinsicstmtNonterminal.getInstance();
+
+ public static class XcasevaluerangelistNonterminal extends Nonterminal
+ {
+ private XcasevaluerangelistNonterminal() {;} // Singleton
+ private static XcasevaluerangelistNonterminal singletonInstance = null;
+ public static final XcasevaluerangelistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcasevaluerangelistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xCaseValueRangeList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 65; }
+ }
+ public static final Nonterminal.XcasevaluerangelistNonterminal XCASEVALUERANGELIST = XcasevaluerangelistNonterminal.getInstance();
+
+ public static class XfunctionarglistNonterminal extends Nonterminal
+ {
+ private XfunctionarglistNonterminal() {;} // Singleton
+ private static XfunctionarglistNonterminal singletonInstance = null;
+ public static final XfunctionarglistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XfunctionarglistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xFunctionArgList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 66; }
+ }
+ public static final Nonterminal.XfunctionarglistNonterminal XFUNCTIONARGLIST = XfunctionarglistNonterminal.getInstance();
+
+ public static class XspecificationpartconstructNonterminal extends Nonterminal
+ {
+ private XspecificationpartconstructNonterminal() {;} // Singleton
+ private static XspecificationpartconstructNonterminal singletonInstance = null;
+ public static final XspecificationpartconstructNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XspecificationpartconstructNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSpecificationPartConstruct>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 67; }
+ }
+ public static final Nonterminal.XspecificationpartconstructNonterminal XSPECIFICATIONPARTCONSTRUCT = XspecificationpartconstructNonterminal.getInstance();
+
+ public static class XforallstmtNonterminal extends Nonterminal
+ {
+ private XforallstmtNonterminal() {;} // Singleton
+ private static XforallstmtNonterminal singletonInstance = null;
+ public static final XforallstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XforallstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xForallStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 68; }
+ }
+ public static final Nonterminal.XforallstmtNonterminal XFORALLSTMT = XforallstmtNonterminal.getInstance();
+
+ public static class XintrinsicprocedurenameNonterminal extends Nonterminal
+ {
+ private XintrinsicprocedurenameNonterminal() {;} // Singleton
+ private static XintrinsicprocedurenameNonterminal singletonInstance = null;
+ public static final XintrinsicprocedurenameNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XintrinsicprocedurenameNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xIntrinsicProcedureName>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 69; }
+ }
+ public static final Nonterminal.XintrinsicprocedurenameNonterminal XINTRINSICPROCEDURENAME = XintrinsicprocedurenameNonterminal.getInstance();
+
+ public static class XintentparNonterminal extends Nonterminal
+ {
+ private XintentparNonterminal() {;} // Singleton
+ private static XintentparNonterminal singletonInstance = null;
+ public static final XintentparNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XintentparNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xIntentPar>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 70; }
+ }
+ public static final Nonterminal.XintentparNonterminal XINTENTPAR = XintentparNonterminal.getInstance();
+
+ public static class Xelsewherestmt54ReductionNonterminal extends Nonterminal
+ {
+ private Xelsewherestmt54ReductionNonterminal() {;} // Singleton
+ private static Xelsewherestmt54ReductionNonterminal singletonInstance = null;
+ public static final Xelsewherestmt54ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xelsewherestmt54ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xElsewhereStmt@54>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 71; }
+ }
+ public static final Nonterminal.Xelsewherestmt54ReductionNonterminal XELSEWHERESTMT54 = Xelsewherestmt54ReductionNonterminal.getInstance();
+
+ public static class XpositionspeclistNonterminal extends Nonterminal
+ {
+ private XpositionspeclistNonterminal() {;} // Singleton
+ private static XpositionspeclistNonterminal singletonInstance = null;
+ public static final XpositionspeclistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XpositionspeclistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xPositionSpecList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 72; }
+ }
+ public static final Nonterminal.XpositionspeclistNonterminal XPOSITIONSPECLIST = XpositionspeclistNonterminal.getInstance();
+
+ public static class XintentparlistNonterminal extends Nonterminal
+ {
+ private XintentparlistNonterminal() {;} // Singleton
+ private static XintentparlistNonterminal singletonInstance = null;
+ public static final XintentparlistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XintentparlistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xIntentParList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 73; }
+ }
+ public static final Nonterminal.XintentparlistNonterminal XINTENTPARLIST = XintentparlistNonterminal.getInstance();
+
+ public static class XelsepartNonterminal extends Nonterminal
+ {
+ private XelsepartNonterminal() {;} // Singleton
+ private static XelsepartNonterminal singletonInstance = null;
+ public static final XelsepartNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XelsepartNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xElsePart>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 74; }
+ }
+ public static final Nonterminal.XelsepartNonterminal XELSEPART = XelsepartNonterminal.getInstance();
+
+ public static class XspecificationstmtNonterminal extends Nonterminal
+ {
+ private XspecificationstmtNonterminal() {;} // Singleton
+ private static XspecificationstmtNonterminal singletonInstance = null;
+ public static final XspecificationstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XspecificationstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSpecificationStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 75; }
+ }
+ public static final Nonterminal.XspecificationstmtNonterminal XSPECIFICATIONSTMT = XspecificationstmtNonterminal.getInstance();
+
+ public static class XifstmtNonterminal extends Nonterminal
+ {
+ private XifstmtNonterminal() {;} // Singleton
+ private static XifstmtNonterminal singletonInstance = null;
+ public static final XifstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XifstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xIfStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 76; }
+ }
+ public static final Nonterminal.XifstmtNonterminal XIFSTMT = XifstmtNonterminal.getInstance();
+
+ public static class Xfunctionstmt79ReductionNonterminal extends Nonterminal
+ {
+ private Xfunctionstmt79ReductionNonterminal() {;} // Singleton
+ private static Xfunctionstmt79ReductionNonterminal singletonInstance = null;
+ public static final Xfunctionstmt79ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xfunctionstmt79ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xFunctionStmt@79>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 4; }
+
+ int getGoToRow() { return 77; }
+ }
+ public static final Nonterminal.Xfunctionstmt79ReductionNonterminal XFUNCTIONSTMT79 = Xfunctionstmt79ReductionNonterminal.getInstance();
+
+ public static class XequivalencesetNonterminal extends Nonterminal
+ {
+ private XequivalencesetNonterminal() {;} // Singleton
+ private static XequivalencesetNonterminal singletonInstance = null;
+ public static final XequivalencesetNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XequivalencesetNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEquivalenceSet>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 78; }
+ }
+ public static final Nonterminal.XequivalencesetNonterminal XEQUIVALENCESET = XequivalencesetNonterminal.getInstance();
+
+ public static class XprocedurenameNonterminal extends Nonterminal
+ {
+ private XprocedurenameNonterminal() {;} // Singleton
+ private static XprocedurenameNonterminal singletonInstance = null;
+ public static final XprocedurenameNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XprocedurenameNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xProcedureName>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 79; }
+ }
+ public static final Nonterminal.XprocedurenameNonterminal XPROCEDURENAME = XprocedurenameNonterminal.getInstance();
+
+ public static class XuftermNonterminal extends Nonterminal
+ {
+ private XuftermNonterminal() {;} // Singleton
+ private static XuftermNonterminal singletonInstance = null;
+ public static final XuftermNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XuftermNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xUFTerm>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 80; }
+ }
+ public static final Nonterminal.XuftermNonterminal XUFTERM = XuftermNonterminal.getInstance();
+
+ public static class XvariableNonterminal extends Nonterminal
+ {
+ private XvariableNonterminal() {;} // Singleton
+ private static XvariableNonterminal singletonInstance = null;
+ public static final XvariableNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XvariableNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xVariable>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 81; }
+ }
+ public static final Nonterminal.XvariableNonterminal XVARIABLE = XvariableNonterminal.getInstance();
+
+ public static class XselectcasebodyNonterminal extends Nonterminal
+ {
+ private XselectcasebodyNonterminal() {;} // Singleton
+ private static XselectcasebodyNonterminal singletonInstance = null;
+ public static final XselectcasebodyNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XselectcasebodyNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSelectCaseBody>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 82; }
+ }
+ public static final Nonterminal.XselectcasebodyNonterminal XSELECTCASEBODY = XselectcasebodyNonterminal.getInstance();
+
+ public static class XinterfacebodyNonterminal extends Nonterminal
+ {
+ private XinterfacebodyNonterminal() {;} // Singleton
+ private static XinterfacebodyNonterminal singletonInstance = null;
+ public static final XinterfacebodyNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XinterfacebodyNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xInterfaceBody>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 83; }
+ }
+ public static final Nonterminal.XinterfacebodyNonterminal XINTERFACEBODY = XinterfacebodyNonterminal.getInstance();
+
+ public static class Xformatstmt67ReductionNonterminal extends Nonterminal
+ {
+ private Xformatstmt67ReductionNonterminal() {;} // Singleton
+ private static Xformatstmt67ReductionNonterminal singletonInstance = null;
+ public static final Xformatstmt67ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xformatstmt67ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xFormatStmt@67>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 84; }
+ }
+ public static final Nonterminal.Xformatstmt67ReductionNonterminal XFORMATSTMT67 = Xformatstmt67ReductionNonterminal.getInstance();
+
+ public static class XdimensionstmtNonterminal extends Nonterminal
+ {
+ private XdimensionstmtNonterminal() {;} // Singleton
+ private static XdimensionstmtNonterminal singletonInstance = null;
+ public static final XdimensionstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XdimensionstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xDimensionStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 85; }
+ }
+ public static final Nonterminal.XdimensionstmtNonterminal XDIMENSIONSTMT = XdimensionstmtNonterminal.getInstance();
+
+ public static class XoptionalparNonterminal extends Nonterminal
+ {
+ private XoptionalparNonterminal() {;} // Singleton
+ private static XoptionalparNonterminal singletonInstance = null;
+ public static final XoptionalparNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XoptionalparNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xOptionalPar>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 86; }
+ }
+ public static final Nonterminal.XoptionalparNonterminal XOPTIONALPAR = XoptionalparNonterminal.getInstance();
+
+ public static class XunsignedarithmeticconstantNonterminal extends Nonterminal
+ {
+ private XunsignedarithmeticconstantNonterminal() {;} // Singleton
+ private static XunsignedarithmeticconstantNonterminal singletonInstance = null;
+ public static final XunsignedarithmeticconstantNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XunsignedarithmeticconstantNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xUnsignedArithmeticConstant>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 87; }
+ }
+ public static final Nonterminal.XunsignedarithmeticconstantNonterminal XUNSIGNEDARITHMETICCONSTANT = XunsignedarithmeticconstantNonterminal.getInstance();
+
+ public static class XdeallocatestmtNonterminal extends Nonterminal
+ {
+ private XdeallocatestmtNonterminal() {;} // Singleton
+ private static XdeallocatestmtNonterminal singletonInstance = null;
+ public static final XdeallocatestmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XdeallocatestmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xDeallocateStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 88; }
+ }
+ public static final Nonterminal.XdeallocatestmtNonterminal XDEALLOCATESTMT = XdeallocatestmtNonterminal.getInstance();
+
+ public static class XfunctionparNonterminal extends Nonterminal
+ {
+ private XfunctionparNonterminal() {;} // Singleton
+ private static XfunctionparNonterminal singletonInstance = null;
+ public static final XfunctionparNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XfunctionparNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xFunctionPar>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 89; }
+ }
+ public static final Nonterminal.XfunctionparNonterminal XFUNCTIONPAR = XfunctionparNonterminal.getInstance();
+
+ public static class XexternalnamelistNonterminal extends Nonterminal
+ {
+ private XexternalnamelistNonterminal() {;} // Singleton
+ private static XexternalnamelistNonterminal singletonInstance = null;
+ public static final XexternalnamelistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XexternalnamelistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xExternalNameList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 90; }
+ }
+ public static final Nonterminal.XexternalnamelistNonterminal XEXTERNALNAMELIST = XexternalnamelistNonterminal.getInstance();
+
+ public static class Xentrystmt85ReductionNonterminal extends Nonterminal
+ {
+ private Xentrystmt85ReductionNonterminal() {;} // Singleton
+ private static Xentrystmt85ReductionNonterminal singletonInstance = null;
+ public static final Xentrystmt85ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xentrystmt85ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEntryStmt@85>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 3; }
+
+ int getGoToRow() { return 91; }
+ }
+ public static final Nonterminal.Xentrystmt85ReductionNonterminal XENTRYSTMT85 = Xentrystmt85ReductionNonterminal.getInstance();
+
+ public static class XmainrangeNonterminal extends Nonterminal
+ {
+ private XmainrangeNonterminal() {;} // Singleton
+ private static XmainrangeNonterminal singletonInstance = null;
+ public static final XmainrangeNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XmainrangeNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xMainRange>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 92; }
+ }
+ public static final Nonterminal.XmainrangeNonterminal XMAINRANGE = XmainrangeNonterminal.getInstance();
+
+ public static class XstructureconstructorNonterminal extends Nonterminal
+ {
+ private XstructureconstructorNonterminal() {;} // Singleton
+ private static XstructureconstructorNonterminal singletonInstance = null;
+ public static final XstructureconstructorNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XstructureconstructorNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xStructureConstructor>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 93; }
+ }
+ public static final Nonterminal.XstructureconstructorNonterminal XSTRUCTURECONSTRUCTOR = XstructureconstructorNonterminal.getInstance();
+
+ public static class XconcatopNonterminal extends Nonterminal
+ {
+ private XconcatopNonterminal() {;} // Singleton
+ private static XconcatopNonterminal singletonInstance = null;
+ public static final XconcatopNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XconcatopNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xConcatOp>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 94; }
+ }
+ public static final Nonterminal.XconcatopNonterminal XCONCATOP = XconcatopNonterminal.getInstance();
+
+ public static class XwherestmtNonterminal extends Nonterminal
+ {
+ private XwherestmtNonterminal() {;} // Singleton
+ private static XwherestmtNonterminal singletonInstance = null;
+ public static final XwherestmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XwherestmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xWhereStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 95; }
+ }
+ public static final Nonterminal.XwherestmtNonterminal XWHERESTMT = XwherestmtNonterminal.getInstance();
+
+ public static class XonlyNonterminal extends Nonterminal
+ {
+ private XonlyNonterminal() {;} // Singleton
+ private static XonlyNonterminal singletonInstance = null;
+ public static final XonlyNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XonlyNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xOnly>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 96; }
+ }
+ public static final Nonterminal.XonlyNonterminal XONLY = XonlyNonterminal.getInstance();
+
+ public static class XmultopNonterminal extends Nonterminal
+ {
+ private XmultopNonterminal() {;} // Singleton
+ private static XmultopNonterminal singletonInstance = null;
+ public static final XmultopNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XmultopNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xMultOp>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 97; }
+ }
+ public static final Nonterminal.XmultopNonterminal XMULTOP = XmultopNonterminal.getInstance();
+
+ public static class XsftermNonterminal extends Nonterminal
+ {
+ private XsftermNonterminal() {;} // Singleton
+ private static XsftermNonterminal singletonInstance = null;
+ public static final XsftermNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XsftermNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSFTerm>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 98; }
+ }
+ public static final Nonterminal.XsftermNonterminal XSFTERM = XsftermNonterminal.getInstance();
+
+ public static class XentitydeclNonterminal extends Nonterminal
+ {
+ private XentitydeclNonterminal() {;} // Singleton
+ private static XentitydeclNonterminal singletonInstance = null;
+ public static final XentitydeclNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XentitydeclNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEntityDecl>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 99; }
+ }
+ public static final Nonterminal.XentitydeclNonterminal XENTITYDECL = XentitydeclNonterminal.getInstance();
+
+ public static class XactionstmtNonterminal extends Nonterminal
+ {
+ private XactionstmtNonterminal() {;} // Singleton
+ private static XactionstmtNonterminal singletonInstance = null;
+ public static final XactionstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XactionstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xActionStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 100; }
+ }
+ public static final Nonterminal.XactionstmtNonterminal XACTIONSTMT = XactionstmtNonterminal.getInstance();
+
+ public static class XassumedsizespecNonterminal extends Nonterminal
+ {
+ private XassumedsizespecNonterminal() {;} // Singleton
+ private static XassumedsizespecNonterminal singletonInstance = null;
+ public static final XassumedsizespecNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XassumedsizespecNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAssumedSizeSpec>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 101; }
+ }
+ public static final Nonterminal.XassumedsizespecNonterminal XASSUMEDSIZESPEC = XassumedsizespecNonterminal.getInstance();
+
+ public static class XcomponentnameNonterminal extends Nonterminal
+ {
+ private XcomponentnameNonterminal() {;} // Singleton
+ private static XcomponentnameNonterminal singletonInstance = null;
+ public static final XcomponentnameNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcomponentnameNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xComponentName>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 102; }
+ }
+ public static final Nonterminal.XcomponentnameNonterminal XCOMPONENTNAME = XcomponentnameNonterminal.getInstance();
+
+ public static class XarrayspecNonterminal extends Nonterminal
+ {
+ private XarrayspecNonterminal() {;} // Singleton
+ private static XarrayspecNonterminal singletonInstance = null;
+ public static final XarrayspecNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XarrayspecNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xArraySpec>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 103; }
+ }
+ public static final Nonterminal.XarrayspecNonterminal XARRAYSPEC = XarrayspecNonterminal.getInstance();
+
+ public static class XlabeldostmtNonterminal extends Nonterminal
+ {
+ private XlabeldostmtNonterminal() {;} // Singleton
+ private static XlabeldostmtNonterminal singletonInstance = null;
+ public static final XlabeldostmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XlabeldostmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xLabelDoStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 104; }
+ }
+ public static final Nonterminal.XlabeldostmtNonterminal XLABELDOSTMT = XlabeldostmtNonterminal.getInstance();
+
+ public static class XnameliststmtNonterminal extends Nonterminal
+ {
+ private XnameliststmtNonterminal() {;} // Singleton
+ private static XnameliststmtNonterminal singletonInstance = null;
+ public static final XnameliststmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XnameliststmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xNamelistStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 105; }
+ }
+ public static final Nonterminal.XnameliststmtNonterminal XNAMELISTSTMT = XnameliststmtNonterminal.getInstance();
+
+ public static class XscalarmaskexprNonterminal extends Nonterminal
+ {
+ private XscalarmaskexprNonterminal() {;} // Singleton
+ private static XscalarmaskexprNonterminal singletonInstance = null;
+ public static final XscalarmaskexprNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XscalarmaskexprNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xScalarMaskExpr>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 106; }
+ }
+ public static final Nonterminal.XscalarmaskexprNonterminal XSCALARMASKEXPR = XscalarmaskexprNonterminal.getInstance();
+
+ public static class XpointerobjectNonterminal extends Nonterminal
+ {
+ private XpointerobjectNonterminal() {;} // Singleton
+ private static XpointerobjectNonterminal singletonInstance = null;
+ public static final XpointerobjectNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XpointerobjectNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xPointerObject>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 107; }
+ }
+ public static final Nonterminal.XpointerobjectNonterminal XPOINTEROBJECT = XpointerobjectNonterminal.getInstance();
+
+ public static class XallocationNonterminal extends Nonterminal
+ {
+ private XallocationNonterminal() {;} // Singleton
+ private static XallocationNonterminal singletonInstance = null;
+ public static final XallocationNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XallocationNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAllocation>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 108; }
+ }
+ public static final Nonterminal.XallocationNonterminal XALLOCATION = XallocationNonterminal.getInstance();
+
+ public static class XprivatesequencestmtNonterminal extends Nonterminal
+ {
+ private XprivatesequencestmtNonterminal() {;} // Singleton
+ private static XprivatesequencestmtNonterminal singletonInstance = null;
+ public static final XprivatesequencestmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XprivatesequencestmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xPrivateSequenceStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 109; }
+ }
+ public static final Nonterminal.XprivatesequencestmtNonterminal XPRIVATESEQUENCESTMT = XprivatesequencestmtNonterminal.getInstance();
+
+ public static class XendtypestmtNonterminal extends Nonterminal
+ {
+ private XendtypestmtNonterminal() {;} // Singleton
+ private static XendtypestmtNonterminal singletonInstance = null;
+ public static final XendtypestmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XendtypestmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndTypeStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 110; }
+ }
+ public static final Nonterminal.XendtypestmtNonterminal XENDTYPESTMT = XendtypestmtNonterminal.getInstance();
+
+ public static class XprogramunitNonterminal extends Nonterminal
+ {
+ private XprogramunitNonterminal() {;} // Singleton
+ private static XprogramunitNonterminal singletonInstance = null;
+ public static final XprogramunitNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XprogramunitNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xProgramUnit>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 111; }
+ }
+ public static final Nonterminal.XprogramunitNonterminal XPROGRAMUNIT = XprogramunitNonterminal.getInstance();
+
+ public static class XfmtspecNonterminal extends Nonterminal
+ {
+ private XfmtspecNonterminal() {;} // Singleton
+ private static XfmtspecNonterminal singletonInstance = null;
+ public static final XfmtspecNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XfmtspecNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xFmtSpec>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 112; }
+ }
+ public static final Nonterminal.XfmtspecNonterminal XFMTSPEC = XfmtspecNonterminal.getInstance();
+
+ public static class XexecutionpartconstructNonterminal extends Nonterminal
+ {
+ private XexecutionpartconstructNonterminal() {;} // Singleton
+ private static XexecutionpartconstructNonterminal singletonInstance = null;
+ public static final XexecutionpartconstructNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XexecutionpartconstructNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xExecutionPartConstruct>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 113; }
+ }
+ public static final Nonterminal.XexecutionpartconstructNonterminal XEXECUTIONPARTCONSTRUCT = XexecutionpartconstructNonterminal.getInstance();
+
+ public static class XsubroutinestmtNonterminal extends Nonterminal
+ {
+ private XsubroutinestmtNonterminal() {;} // Singleton
+ private static XsubroutinestmtNonterminal singletonInstance = null;
+ public static final XsubroutinestmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XsubroutinestmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSubroutineStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 114; }
+ }
+ public static final Nonterminal.XsubroutinestmtNonterminal XSUBROUTINESTMT = XsubroutinestmtNonterminal.getInstance();
+
+ public static class XendifstmtNonterminal extends Nonterminal
+ {
+ private XendifstmtNonterminal() {;} // Singleton
+ private static XendifstmtNonterminal singletonInstance = null;
+ public static final XendifstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XendifstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndIfStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 115; }
+ }
+ public static final Nonterminal.XendifstmtNonterminal XENDIFSTMT = XendifstmtNonterminal.getInstance();
+
+ public static class Xdimensionstmt11ReductionNonterminal extends Nonterminal
+ {
+ private Xdimensionstmt11ReductionNonterminal() {;} // Singleton
+ private static Xdimensionstmt11ReductionNonterminal singletonInstance = null;
+ public static final Xdimensionstmt11ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xdimensionstmt11ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xDimensionStmt@11>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 2; }
+
+ int getGoToRow() { return 116; }
+ }
+ public static final Nonterminal.Xdimensionstmt11ReductionNonterminal XDIMENSIONSTMT11 = Xdimensionstmt11ReductionNonterminal.getInstance();
+
+ public static class XelsewhereconstructNonterminal extends Nonterminal
+ {
+ private XelsewhereconstructNonterminal() {;} // Singleton
+ private static XelsewhereconstructNonterminal singletonInstance = null;
+ public static final XelsewhereconstructNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XelsewhereconstructNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xElsewhereConstruct>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 117; }
+ }
+ public static final Nonterminal.XelsewhereconstructNonterminal XELSEWHERECONSTRUCT = XelsewhereconstructNonterminal.getInstance();
+
+ public static class XexternalstmtNonterminal extends Nonterminal
+ {
+ private XexternalstmtNonterminal() {;} // Singleton
+ private static XexternalstmtNonterminal singletonInstance = null;
+ public static final XexternalstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XexternalstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xExternalStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 118; }
+ }
+ public static final Nonterminal.XexternalstmtNonterminal XEXTERNALSTMT = XexternalstmtNonterminal.getInstance();
+
+ public static class XaddopNonterminal extends Nonterminal
+ {
+ private XaddopNonterminal() {;} // Singleton
+ private static XaddopNonterminal singletonInstance = null;
+ public static final XaddopNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XaddopNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAddOp>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 119; }
+ }
+ public static final Nonterminal.XaddopNonterminal XADDOP = XaddopNonterminal.getInstance();
+
+ public static class XequivopNonterminal extends Nonterminal
+ {
+ private XequivopNonterminal() {;} // Singleton
+ private static XequivopNonterminal singletonInstance = null;
+ public static final XequivopNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XequivopNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEquivOp>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 120; }
+ }
+ public static final Nonterminal.XequivopNonterminal XEQUIVOP = XequivopNonterminal.getInstance();
+
+ public static class XequivoperandNonterminal extends Nonterminal
+ {
+ private XequivoperandNonterminal() {;} // Singleton
+ private static XequivoperandNonterminal singletonInstance = null;
+ public static final XequivoperandNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XequivoperandNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEquivOperand>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 121; }
+ }
+ public static final Nonterminal.XequivoperandNonterminal XEQUIVOPERAND = XequivoperandNonterminal.getInstance();
+
+ public static class XdefinedoperatorNonterminal extends Nonterminal
+ {
+ private XdefinedoperatorNonterminal() {;} // Singleton
+ private static XdefinedoperatorNonterminal singletonInstance = null;
+ public static final XdefinedoperatorNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XdefinedoperatorNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xDefinedOperator>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 122; }
+ }
+ public static final Nonterminal.XdefinedoperatorNonterminal XDEFINEDOPERATOR = XdefinedoperatorNonterminal.getInstance();
+
+ public static class Xusestmt72ReductionNonterminal extends Nonterminal
+ {
+ private Xusestmt72ReductionNonterminal() {;} // Singleton
+ private static Xusestmt72ReductionNonterminal singletonInstance = null;
+ public static final Xusestmt72ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xusestmt72ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xUseStmt@72>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 123; }
+ }
+ public static final Nonterminal.Xusestmt72ReductionNonterminal XUSESTMT72 = Xusestmt72ReductionNonterminal.getInstance();
+
+ public static class XiocontrolspecNonterminal extends Nonterminal
+ {
+ private XiocontrolspecNonterminal() {;} // Singleton
+ private static XiocontrolspecNonterminal singletonInstance = null;
+ public static final XiocontrolspecNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XiocontrolspecNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xIoControlSpec>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 124; }
+ }
+ public static final Nonterminal.XiocontrolspecNonterminal XIOCONTROLSPEC = XiocontrolspecNonterminal.getInstance();
+
+ public static class Xsubroutinestmt82ReductionNonterminal extends Nonterminal
+ {
+ private Xsubroutinestmt82ReductionNonterminal() {;} // Singleton
+ private static Xsubroutinestmt82ReductionNonterminal singletonInstance = null;
+ public static final Xsubroutinestmt82ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xsubroutinestmt82ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSubroutineStmt@82>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 3; }
+
+ int getGoToRow() { return 125; }
+ }
+ public static final Nonterminal.Xsubroutinestmt82ReductionNonterminal XSUBROUTINESTMT82 = Xsubroutinestmt82ReductionNonterminal.getInstance();
+
+ public static class Xendifstmt60ReductionNonterminal extends Nonterminal
+ {
+ private Xendifstmt60ReductionNonterminal() {;} // Singleton
+ private static Xendifstmt60ReductionNonterminal singletonInstance = null;
+ public static final Xendifstmt60ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xendifstmt60ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndIfStmt@60>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 126; }
+ }
+ public static final Nonterminal.Xendifstmt60ReductionNonterminal XENDIFSTMT60 = Xendifstmt60ReductionNonterminal.getInstance();
+
+ public static class XequivalencesetlistNonterminal extends Nonterminal
+ {
+ private XequivalencesetlistNonterminal() {;} // Singleton
+ private static XequivalencesetlistNonterminal singletonInstance = null;
+ public static final XequivalencesetlistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XequivalencesetlistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEquivalenceSetList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 127; }
+ }
+ public static final Nonterminal.XequivalencesetlistNonterminal XEQUIVALENCESETLIST = XequivalencesetlistNonterminal.getInstance();
+
+ public static class XtypespecNonterminal extends Nonterminal
+ {
+ private XtypespecNonterminal() {;} // Singleton
+ private static XtypespecNonterminal singletonInstance = null;
+ public static final XtypespecNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XtypespecNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xTypeSpec>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 128; }
+ }
+ public static final Nonterminal.XtypespecNonterminal XTYPESPEC = XtypespecNonterminal.getInstance();
+
+ public static class XequivalencestmtNonterminal extends Nonterminal
+ {
+ private XequivalencestmtNonterminal() {;} // Singleton
+ private static XequivalencestmtNonterminal singletonInstance = null;
+ public static final XequivalencestmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XequivalencestmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEquivalenceStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 129; }
+ }
+ public static final Nonterminal.XequivalencestmtNonterminal XEQUIVALENCESTMT = XequivalencestmtNonterminal.getInstance();
+
+ public static class XprogramnameNonterminal extends Nonterminal
+ {
+ private XprogramnameNonterminal() {;} // Singleton
+ private static XprogramnameNonterminal singletonInstance = null;
+ public static final XprogramnameNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XprogramnameNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xProgramName>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 130; }
+ }
+ public static final Nonterminal.XprogramnameNonterminal XPROGRAMNAME = XprogramnameNonterminal.getInstance();
+
+ public static class XdataimplieddoNonterminal extends Nonterminal
+ {
+ private XdataimplieddoNonterminal() {;} // Singleton
+ private static XdataimplieddoNonterminal singletonInstance = null;
+ public static final XdataimplieddoNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XdataimplieddoNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xDataImpliedDo>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 131; }
+ }
+ public static final Nonterminal.XdataimplieddoNonterminal XDATAIMPLIEDDO = XdataimplieddoNonterminal.getInstance();
+
+ public static class XallocateobjectlistNonterminal extends Nonterminal
+ {
+ private XallocateobjectlistNonterminal() {;} // Singleton
+ private static XallocateobjectlistNonterminal singletonInstance = null;
+ public static final XallocateobjectlistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XallocateobjectlistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAllocateObjectList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 132; }
+ }
+ public static final Nonterminal.XallocateobjectlistNonterminal XALLOCATEOBJECTLIST = XallocateobjectlistNonterminal.getInstance();
+
+ public static class XselectcasestmtNonterminal extends Nonterminal
+ {
+ private XselectcasestmtNonterminal() {;} // Singleton
+ private static XselectcasestmtNonterminal singletonInstance = null;
+ public static final XselectcasestmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XselectcasestmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSelectCaseStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 133; }
+ }
+ public static final Nonterminal.XselectcasestmtNonterminal XSELECTCASESTMT = XselectcasestmtNonterminal.getInstance();
+
+ public static class Xoptionalstmt8ReductionNonterminal extends Nonterminal
+ {
+ private Xoptionalstmt8ReductionNonterminal() {;} // Singleton
+ private static Xoptionalstmt8ReductionNonterminal singletonInstance = null;
+ public static final Xoptionalstmt8ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xoptionalstmt8ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xOptionalStmt@8>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 2; }
+
+ int getGoToRow() { return 134; }
+ }
+ public static final Nonterminal.Xoptionalstmt8ReductionNonterminal XOPTIONALSTMT8 = Xoptionalstmt8ReductionNonterminal.getInstance();
+
+ public static class XnamelistgroupobjectNonterminal extends Nonterminal
+ {
+ private XnamelistgroupobjectNonterminal() {;} // Singleton
+ private static XnamelistgroupobjectNonterminal singletonInstance = null;
+ public static final XnamelistgroupobjectNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XnamelistgroupobjectNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xNamelistGroupObject>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 135; }
+ }
+ public static final Nonterminal.XnamelistgroupobjectNonterminal XNAMELISTGROUPOBJECT = XnamelistgroupobjectNonterminal.getInstance();
+
+ public static class XinterfacestmtNonterminal extends Nonterminal
+ {
+ private XinterfacestmtNonterminal() {;} // Singleton
+ private static XinterfacestmtNonterminal singletonInstance = null;
+ public static final XinterfacestmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XinterfacestmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xInterfaceStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 136; }
+ }
+ public static final Nonterminal.XinterfacestmtNonterminal XINTERFACESTMT = XinterfacestmtNonterminal.getInstance();
+
+ public static class TXimplieddovariableNonterminal extends Nonterminal
+ {
+ private TXimplieddovariableNonterminal() {;} // Singleton
+ private static TXimplieddovariableNonterminal singletonInstance = null;
+ public static final TXimplieddovariableNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new TXimplieddovariableNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<T_xImpliedDoVariable>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 137; }
+ }
+ public static final Nonterminal.TXimplieddovariableNonterminal TXIMPLIEDDOVARIABLE = TXimplieddovariableNonterminal.getInstance();
+
+ public static class XandoperandNonterminal extends Nonterminal
+ {
+ private XandoperandNonterminal() {;} // Singleton
+ private static XandoperandNonterminal singletonInstance = null;
+ public static final XandoperandNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XandoperandNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAndOperand>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 138; }
+ }
+ public static final Nonterminal.XandoperandNonterminal XANDOPERAND = XandoperandNonterminal.getInstance();
+
+ public static class XclosespecNonterminal extends Nonterminal
+ {
+ private XclosespecNonterminal() {;} // Singleton
+ private static XclosespecNonterminal singletonInstance = null;
+ public static final XclosespecNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XclosespecNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xCloseSpec>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 139; }
+ }
+ public static final Nonterminal.XclosespecNonterminal XCLOSESPEC = XclosespecNonterminal.getInstance();
+
+ public static class XtypedeclarationstmtNonterminal extends Nonterminal
+ {
+ private XtypedeclarationstmtNonterminal() {;} // Singleton
+ private static XtypedeclarationstmtNonterminal singletonInstance = null;
+ public static final XtypedeclarationstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XtypedeclarationstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xTypeDeclarationStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 140; }
+ }
+ public static final Nonterminal.XtypedeclarationstmtNonterminal XTYPEDECLARATIONSTMT = XtypedeclarationstmtNonterminal.getInstance();
+
+ public static class Xenddostmt64ReductionNonterminal extends Nonterminal
+ {
+ private Xenddostmt64ReductionNonterminal() {;} // Singleton
+ private static Xenddostmt64ReductionNonterminal singletonInstance = null;
+ public static final Xenddostmt64ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xenddostmt64ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndDoStmt@64>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 141; }
+ }
+ public static final Nonterminal.Xenddostmt64ReductionNonterminal XENDDOSTMT64 = Xenddostmt64ReductionNonterminal.getInstance();
+
+ public static class XlblreflistNonterminal extends Nonterminal
+ {
+ private XlblreflistNonterminal() {;} // Singleton
+ private static XlblreflistNonterminal singletonInstance = null;
+ public static final XlblreflistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XlblreflistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xLblRefList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 142; }
+ }
+ public static final Nonterminal.XlblreflistNonterminal XLBLREFLIST = XlblreflistNonterminal.getInstance();
+
+ public static class XlowerboundNonterminal extends Nonterminal
+ {
+ private XlowerboundNonterminal() {;} // Singleton
+ private static XlowerboundNonterminal singletonInstance = null;
+ public static final XlowerboundNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XlowerboundNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xLowerBound>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 143; }
+ }
+ public static final Nonterminal.XlowerboundNonterminal XLOWERBOUND = XlowerboundNonterminal.getInstance();
+
+ public static class XifthenstmtNonterminal extends Nonterminal
+ {
+ private XifthenstmtNonterminal() {;} // Singleton
+ private static XifthenstmtNonterminal singletonInstance = null;
+ public static final XifthenstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XifthenstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xIfThenStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 144; }
+ }
+ public static final Nonterminal.XifthenstmtNonterminal XIFTHENSTMT = XifthenstmtNonterminal.getInstance();
+
+ public static class XcomponentdefstmtNonterminal extends Nonterminal
+ {
+ private XcomponentdefstmtNonterminal() {;} // Singleton
+ private static XcomponentdefstmtNonterminal singletonInstance = null;
+ public static final XcomponentdefstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcomponentdefstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xComponentDefStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 145; }
+ }
+ public static final Nonterminal.XcomponentdefstmtNonterminal XCOMPONENTDEFSTMT = XcomponentdefstmtNonterminal.getInstance();
+
+ public static class XopenstmtNonterminal extends Nonterminal
+ {
+ private XopenstmtNonterminal() {;} // Singleton
+ private static XopenstmtNonterminal singletonInstance = null;
+ public static final XopenstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XopenstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xOpenStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 146; }
+ }
+ public static final Nonterminal.XopenstmtNonterminal XOPENSTMT = XopenstmtNonterminal.getInstance();
+
+ public static class Xendselectstmt62ReductionNonterminal extends Nonterminal
+ {
+ private Xendselectstmt62ReductionNonterminal() {;} // Singleton
+ private static Xendselectstmt62ReductionNonterminal singletonInstance = null;
+ public static final Xendselectstmt62ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xendselectstmt62ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndSelectStmt@62>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 147; }
+ }
+ public static final Nonterminal.Xendselectstmt62ReductionNonterminal XENDSELECTSTMT62 = Xendselectstmt62ReductionNonterminal.getInstance();
+
+ public static class XnameNonterminal extends Nonterminal
+ {
+ private XnameNonterminal() {;} // Singleton
+ private static XnameNonterminal singletonInstance = null;
+ public static final XnameNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XnameNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xName>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 148; }
+ }
+ public static final Nonterminal.XnameNonterminal XNAME = XnameNonterminal.getInstance();
+
+ public static class XexprNonterminal extends Nonterminal
+ {
+ private XexprNonterminal() {;} // Singleton
+ private static XexprNonterminal singletonInstance = null;
+ public static final XexprNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XexprNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xExpr>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 149; }
+ }
+ public static final Nonterminal.XexprNonterminal XEXPR = XexprNonterminal.getInstance();
+
+ public static class XdatastmtNonterminal extends Nonterminal
+ {
+ private XdatastmtNonterminal() {;} // Singleton
+ private static XdatastmtNonterminal singletonInstance = null;
+ public static final XdatastmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XdatastmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xDataStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 150; }
+ }
+ public static final Nonterminal.XdatastmtNonterminal XDATASTMT = XdatastmtNonterminal.getInstance();
+
+ public static class XselectcaserangeNonterminal extends Nonterminal
+ {
+ private XselectcaserangeNonterminal() {;} // Singleton
+ private static XselectcaserangeNonterminal singletonInstance = null;
+ public static final XselectcaserangeNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XselectcaserangeNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSelectCaseRange>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 151; }
+ }
+ public static final Nonterminal.XselectcaserangeNonterminal XSELECTCASERANGE = XselectcaserangeNonterminal.getInstance();
+
+ public static class Xtargetstmt14ReductionNonterminal extends Nonterminal
+ {
+ private Xtargetstmt14ReductionNonterminal() {;} // Singleton
+ private static Xtargetstmt14ReductionNonterminal singletonInstance = null;
+ public static final Xtargetstmt14ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xtargetstmt14ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xTargetStmt@14>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 2; }
+
+ int getGoToRow() { return 152; }
+ }
+ public static final Nonterminal.Xtargetstmt14ReductionNonterminal XTARGETSTMT14 = Xtargetstmt14ReductionNonterminal.getInstance();
+
+ public static class XrdioctlspeclistNonterminal extends Nonterminal
+ {
+ private XrdioctlspeclistNonterminal() {;} // Singleton
+ private static XrdioctlspeclistNonterminal singletonInstance = null;
+ public static final XrdioctlspeclistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XrdioctlspeclistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xRdIoCtlSpecList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 153; }
+ }
+ public static final Nonterminal.XrdioctlspeclistNonterminal XRDIOCTLSPECLIST = XrdioctlspeclistNonterminal.getInstance();
+
+ public static class XfunctionstmtNonterminal extends Nonterminal
+ {
+ private XfunctionstmtNonterminal() {;} // Singleton
+ private static XfunctionstmtNonterminal singletonInstance = null;
+ public static final XfunctionstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XfunctionstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xFunctionStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 154; }
+ }
+ public static final Nonterminal.XfunctionstmtNonterminal XFUNCTIONSTMT = XfunctionstmtNonterminal.getInstance();
+
+ public static class XclosestmtNonterminal extends Nonterminal
+ {
+ private XclosestmtNonterminal() {;} // Singleton
+ private static XclosestmtNonterminal singletonInstance = null;
+ public static final XclosestmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XclosestmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xCloseStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 155; }
+ }
+ public static final Nonterminal.XclosestmtNonterminal XCLOSESTMT = XclosestmtNonterminal.getInstance();
+
+ public static class XinternalsubprogramNonterminal extends Nonterminal
+ {
+ private XinternalsubprogramNonterminal() {;} // Singleton
+ private static XinternalsubprogramNonterminal singletonInstance = null;
+ public static final XinternalsubprogramNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XinternalsubprogramNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xInternalSubprogram>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 156; }
+ }
+ public static final Nonterminal.XinternalsubprogramNonterminal XINTERNALSUBPROGRAM = XinternalsubprogramNonterminal.getInstance();
+
+ public static class XexitstmtNonterminal extends Nonterminal
+ {
+ private XexitstmtNonterminal() {;} // Singleton
+ private static XexitstmtNonterminal singletonInstance = null;
+ public static final XexitstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XexitstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xExitStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 157; }
+ }
+ public static final Nonterminal.XexitstmtNonterminal XEXITSTMT = XexitstmtNonterminal.getInstance();
+
+ public static class XarrayelementNonterminal extends Nonterminal
+ {
+ private XarrayelementNonterminal() {;} // Singleton
+ private static XarrayelementNonterminal singletonInstance = null;
+ public static final XarrayelementNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XarrayelementNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xArrayElement>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 158; }
+ }
+ public static final Nonterminal.XarrayelementNonterminal XARRAYELEMENT = XarrayelementNonterminal.getInstance();
+
+ public static class XendfunctionstmtNonterminal extends Nonterminal
+ {
+ private XendfunctionstmtNonterminal() {;} // Singleton
+ private static XendfunctionstmtNonterminal singletonInstance = null;
+ public static final XendfunctionstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XendfunctionstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndFunctionStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 159; }
+ }
+ public static final Nonterminal.XendfunctionstmtNonterminal XENDFUNCTIONSTMT = XendfunctionstmtNonterminal.getInstance();
+
+ public static class XacvaluelistNonterminal extends Nonterminal
+ {
+ private XacvaluelistNonterminal() {;} // Singleton
+ private static XacvaluelistNonterminal singletonInstance = null;
+ public static final XacvaluelistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XacvaluelistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAcValueList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 160; }
+ }
+ public static final Nonterminal.XacvaluelistNonterminal XACVALUELIST = XacvaluelistNonterminal.getInstance();
+
+ public static class Xenddostmt63ReductionNonterminal extends Nonterminal
+ {
+ private Xenddostmt63ReductionNonterminal() {;} // Singleton
+ private static Xenddostmt63ReductionNonterminal singletonInstance = null;
+ public static final Xenddostmt63ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xenddostmt63ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndDoStmt@63>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 161; }
+ }
+ public static final Nonterminal.Xenddostmt63ReductionNonterminal XENDDOSTMT63 = Xenddostmt63ReductionNonterminal.getInstance();
+
+ public static class Xentitydecl5ReductionNonterminal extends Nonterminal
+ {
+ private Xentitydecl5ReductionNonterminal() {;} // Singleton
+ private static Xentitydecl5ReductionNonterminal singletonInstance = null;
+ public static final Xentitydecl5ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xentitydecl5ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEntityDecl@5>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 162; }
+ }
+ public static final Nonterminal.Xentitydecl5ReductionNonterminal XENTITYDECL5 = Xentitydecl5ReductionNonterminal.getInstance();
+
+ public static class XcontinuestmtNonterminal extends Nonterminal
+ {
+ private XcontinuestmtNonterminal() {;} // Singleton
+ private static XcontinuestmtNonterminal singletonInstance = null;
+ public static final XcontinuestmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcontinuestmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xContinueStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 163; }
+ }
+ public static final Nonterminal.XcontinuestmtNonterminal XCONTINUESTMT = XcontinuestmtNonterminal.getInstance();
+
+ public static class XsffactorNonterminal extends Nonterminal
+ {
+ private XsffactorNonterminal() {;} // Singleton
+ private static XsffactorNonterminal singletonInstance = null;
+ public static final XsffactorNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XsffactorNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSFFactor>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 164; }
+ }
+ public static final Nonterminal.XsffactorNonterminal XSFFACTOR = XsffactorNonterminal.getInstance();
+
+ public static class Xendselectstmt61ReductionNonterminal extends Nonterminal
+ {
+ private Xendselectstmt61ReductionNonterminal() {;} // Singleton
+ private static Xendselectstmt61ReductionNonterminal singletonInstance = null;
+ public static final Xendselectstmt61ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xendselectstmt61ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndSelectStmt@61>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 165; }
+ }
+ public static final Nonterminal.Xendselectstmt61ReductionNonterminal XENDSELECTSTMT61 = Xendselectstmt61ReductionNonterminal.getInstance();
+
+ public static class XoropNonterminal extends Nonterminal
+ {
+ private XoropNonterminal() {;} // Singleton
+ private static XoropNonterminal singletonInstance = null;
+ public static final XoropNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XoropNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xOrOp>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 166; }
+ }
+ public static final Nonterminal.XoropNonterminal XOROP = XoropNonterminal.getInstance();
+
+ public static class Xlevel2expr39ReductionNonterminal extends Nonterminal
+ {
+ private Xlevel2expr39ReductionNonterminal() {;} // Singleton
+ private static Xlevel2expr39ReductionNonterminal singletonInstance = null;
+ public static final Xlevel2expr39ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xlevel2expr39ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xLevel2Expr@39>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 2; }
+
+ int getGoToRow() { return 167; }
+ }
+ public static final Nonterminal.Xlevel2expr39ReductionNonterminal XLEVEL2EXPR39 = Xlevel2expr39ReductionNonterminal.getInstance();
+
+ public static class Xaccessstmt9ReductionNonterminal extends Nonterminal
+ {
+ private Xaccessstmt9ReductionNonterminal() {;} // Singleton
+ private static Xaccessstmt9ReductionNonterminal singletonInstance = null;
+ public static final Xaccessstmt9ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xaccessstmt9ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAccessStmt@9>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 2; }
+
+ int getGoToRow() { return 168; }
+ }
+ public static final Nonterminal.Xaccessstmt9ReductionNonterminal XACCESSSTMT9 = Xaccessstmt9ReductionNonterminal.getInstance();
+
+ public static class XaccessidNonterminal extends Nonterminal
+ {
+ private XaccessidNonterminal() {;} // Singleton
+ private static XaccessidNonterminal singletonInstance = null;
+ public static final XaccessidNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XaccessidNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAccessId>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 169; }
+ }
+ public static final Nonterminal.XaccessidNonterminal XACCESSID = XaccessidNonterminal.getInstance();
+
+ public static class XassumedshapespecNonterminal extends Nonterminal
+ {
+ private XassumedshapespecNonterminal() {;} // Singleton
+ private static XassumedshapespecNonterminal singletonInstance = null;
+ public static final XassumedshapespecNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XassumedshapespecNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAssumedShapeSpec>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 170; }
+ }
+ public static final Nonterminal.XassumedshapespecNonterminal XASSUMEDSHAPESPEC = XassumedshapespecNonterminal.getInstance();
+
+ public static class XdummyargnameNonterminal extends Nonterminal
+ {
+ private XdummyargnameNonterminal() {;} // Singleton
+ private static XdummyargnameNonterminal singletonInstance = null;
+ public static final XdummyargnameNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XdummyargnameNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xDummyArgName>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 171; }
+ }
+ public static final Nonterminal.XdummyargnameNonterminal XDUMMYARGNAME = XdummyargnameNonterminal.getInstance();
+
+ public static class XendsubroutinestmtNonterminal extends Nonterminal
+ {
+ private XendsubroutinestmtNonterminal() {;} // Singleton
+ private static XendsubroutinestmtNonterminal singletonInstance = null;
+ public static final XendsubroutinestmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XendsubroutinestmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndSubroutineStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 172; }
+ }
+ public static final Nonterminal.XendsubroutinestmtNonterminal XENDSUBROUTINESTMT = XendsubroutinestmtNonterminal.getInstance();
+
+ public static class XformatsepNonterminal extends Nonterminal
+ {
+ private XformatsepNonterminal() {;} // Singleton
+ private static XformatsepNonterminal singletonInstance = null;
+ public static final XformatsepNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XformatsepNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xFormatsep>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 173; }
+ }
+ public static final Nonterminal.XformatsepNonterminal XFORMATSEP = XformatsepNonterminal.getInstance();
+
+ public static class XpointernameNonterminal extends Nonterminal
+ {
+ private XpointernameNonterminal() {;} // Singleton
+ private static XpointernameNonterminal singletonInstance = null;
+ public static final XpointernameNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XpointernameNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xPointerName>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 174; }
+ }
+ public static final Nonterminal.XpointernameNonterminal XPOINTERNAME = XpointernameNonterminal.getInstance();
+
+ public static class XentitydecllistNonterminal extends Nonterminal
+ {
+ private XentitydecllistNonterminal() {;} // Singleton
+ private static XentitydecllistNonterminal singletonInstance = null;
+ public static final XentitydecllistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XentitydecllistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEntityDeclList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 175; }
+ }
+ public static final Nonterminal.XentitydecllistNonterminal XENTITYDECLLIST = XentitydecllistNonterminal.getInstance();
+
+ public static class XpointerfieldNonterminal extends Nonterminal
+ {
+ private XpointerfieldNonterminal() {;} // Singleton
+ private static XpointerfieldNonterminal singletonInstance = null;
+ public static final XpointerfieldNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XpointerfieldNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xPointerField>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 176; }
+ }
+ public static final Nonterminal.XpointerfieldNonterminal XPOINTERFIELD = XpointerfieldNonterminal.getInstance();
+
+ public static class Xentitydecl4ReductionNonterminal extends Nonterminal
+ {
+ private Xentitydecl4ReductionNonterminal() {;} // Singleton
+ private static Xentitydecl4ReductionNonterminal singletonInstance = null;
+ public static final Xentitydecl4ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xentitydecl4ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEntityDecl@4>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 2; }
+
+ int getGoToRow() { return 177; }
+ }
+ public static final Nonterminal.Xentitydecl4ReductionNonterminal XENTITYDECL4 = Xentitydecl4ReductionNonterminal.getInstance();
+
+ public static class XblockdatanameNonterminal extends Nonterminal
+ {
+ private XblockdatanameNonterminal() {;} // Singleton
+ private static XblockdatanameNonterminal singletonInstance = null;
+ public static final XblockdatanameNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XblockdatanameNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xBlockDataName>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 178; }
+ }
+ public static final Nonterminal.XblockdatanameNonterminal XBLOCKDATANAME = XblockdatanameNonterminal.getInstance();
+
+ public static class XmodulenameNonterminal extends Nonterminal
+ {
+ private XmodulenameNonterminal() {;} // Singleton
+ private static XmodulenameNonterminal singletonInstance = null;
+ public static final XmodulenameNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XmodulenameNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xModuleName>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 179; }
+ }
+ public static final Nonterminal.XmodulenameNonterminal XMODULENAME = XmodulenameNonterminal.getInstance();
+
+ public static class XcomblockNonterminal extends Nonterminal
+ {
+ private XcomblockNonterminal() {;} // Singleton
+ private static XcomblockNonterminal singletonInstance = null;
+ public static final XcomblockNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcomblockNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xComblock>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 180; }
+ }
+ public static final Nonterminal.XcomblockNonterminal XCOMBLOCK = XcomblockNonterminal.getInstance();
+
+ public static class XtargetobjectNonterminal extends Nonterminal
+ {
+ private XtargetobjectNonterminal() {;} // Singleton
+ private static XtargetobjectNonterminal singletonInstance = null;
+ public static final XtargetobjectNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XtargetobjectNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xTargetObject>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 181; }
+ }
+ public static final Nonterminal.XtargetobjectNonterminal XTARGETOBJECT = XtargetobjectNonterminal.getInstance();
+
+ public static class Xallocatablestmt12ReductionNonterminal extends Nonterminal
+ {
+ private Xallocatablestmt12ReductionNonterminal() {;} // Singleton
+ private static Xallocatablestmt12ReductionNonterminal singletonInstance = null;
+ public static final Xallocatablestmt12ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xallocatablestmt12ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAllocatableStmt@12>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 2; }
+
+ int getGoToRow() { return 182; }
+ }
+ public static final Nonterminal.Xallocatablestmt12ReductionNonterminal XALLOCATABLESTMT12 = Xallocatablestmt12ReductionNonterminal.getInstance();
+
+ public static class GotokwNonterminal extends Nonterminal
+ {
+ private GotokwNonterminal() {;} // Singleton
+ private static GotokwNonterminal singletonInstance = null;
+ public static final GotokwNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new GotokwNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<GoToKw>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 183; }
+ }
+ public static final Nonterminal.GotokwNonterminal GOTOKW = GotokwNonterminal.getInstance();
+
+ public static class XgenericnameNonterminal extends Nonterminal
+ {
+ private XgenericnameNonterminal() {;} // Singleton
+ private static XgenericnameNonterminal singletonInstance = null;
+ public static final XgenericnameNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XgenericnameNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xGenericName>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 184; }
+ }
+ public static final Nonterminal.XgenericnameNonterminal XGENERICNAME = XgenericnameNonterminal.getInstance();
+
+ public static class XoptionalstmtNonterminal extends Nonterminal
+ {
+ private XoptionalstmtNonterminal() {;} // Singleton
+ private static XoptionalstmtNonterminal singletonInstance = null;
+ public static final XoptionalstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XoptionalstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xOptionalStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 185; }
+ }
+ public static final Nonterminal.XoptionalstmtNonterminal XOPTIONALSTMT = XoptionalstmtNonterminal.getInstance();
+
+ public static class Xacvaluelist1Nonterminal extends Nonterminal
+ {
+ private Xacvaluelist1Nonterminal() {;} // Singleton
+ private static Xacvaluelist1Nonterminal singletonInstance = null;
+ public static final Xacvaluelist1Nonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xacvaluelist1Nonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAcValueList1>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 186; }
+ }
+ public static final Nonterminal.Xacvaluelist1Nonterminal XACVALUELIST1 = Xacvaluelist1Nonterminal.getInstance();
+
+ public static class XrelopNonterminal extends Nonterminal
+ {
+ private XrelopNonterminal() {;} // Singleton
+ private static XrelopNonterminal singletonInstance = null;
+ public static final XrelopNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XrelopNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xRelOp>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 187; }
+ }
+ public static final Nonterminal.XrelopNonterminal XRELOP = XrelopNonterminal.getInstance();
+
+ public static class XcexprNonterminal extends Nonterminal
+ {
+ private XcexprNonterminal() {;} // Singleton
+ private static XcexprNonterminal singletonInstance = null;
+ public static final XcexprNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcexprNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xCExpr>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 188; }
+ }
+ public static final Nonterminal.XcexprNonterminal XCEXPR = XcexprNonterminal.getInstance();
+
+ public static class XsubroutineprefixNonterminal extends Nonterminal
+ {
+ private XsubroutineprefixNonterminal() {;} // Singleton
+ private static XsubroutineprefixNonterminal singletonInstance = null;
+ public static final XsubroutineprefixNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XsubroutineprefixNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSubroutinePrefix>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 189; }
+ }
+ public static final Nonterminal.XsubroutineprefixNonterminal XSUBROUTINEPREFIX = XsubroutineprefixNonterminal.getInstance();
+
+ public static class XendprogramstmtNonterminal extends Nonterminal
+ {
+ private XendprogramstmtNonterminal() {;} // Singleton
+ private static XendprogramstmtNonterminal singletonInstance = null;
+ public static final XendprogramstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XendprogramstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndProgramStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 190; }
+ }
+ public static final Nonterminal.XendprogramstmtNonterminal XENDPROGRAMSTMT = XendprogramstmtNonterminal.getInstance();
+
+ public static class XcallstmtNonterminal extends Nonterminal
+ {
+ private XcallstmtNonterminal() {;} // Singleton
+ private static XcallstmtNonterminal singletonInstance = null;
+ public static final XcallstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcallstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xCallStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 191; }
+ }
+ public static final Nonterminal.XcallstmtNonterminal XCALLSTMT = XcallstmtNonterminal.getInstance();
+
+ public static class XforallconstructNonterminal extends Nonterminal
+ {
+ private XforallconstructNonterminal() {;} // Singleton
+ private static XforallconstructNonterminal singletonInstance = null;
+ public static final XforallconstructNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XforallconstructNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xForallConstruct>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 192; }
+ }
+ public static final Nonterminal.XforallconstructNonterminal XFORALLCONSTRUCT = XforallconstructNonterminal.getInstance();
+
+ public static class XinputitemlistNonterminal extends Nonterminal
+ {
+ private XinputitemlistNonterminal() {;} // Singleton
+ private static XinputitemlistNonterminal singletonInstance = null;
+ public static final XinputitemlistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XinputitemlistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xInputItemList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 193; }
+ }
+ public static final Nonterminal.XinputitemlistNonterminal XINPUTITEMLIST = XinputitemlistNonterminal.getInstance();
+
+ public static class XsubroutineparNonterminal extends Nonterminal
+ {
+ private XsubroutineparNonterminal() {;} // Singleton
+ private static XsubroutineparNonterminal singletonInstance = null;
+ public static final XsubroutineparNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XsubroutineparNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSubroutinePar>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 194; }
+ }
+ public static final Nonterminal.XsubroutineparNonterminal XSUBROUTINEPAR = XsubroutineparNonterminal.getInstance();
+
+ public static class XsubprograminterfacebodyNonterminal extends Nonterminal
+ {
+ private XsubprograminterfacebodyNonterminal() {;} // Singleton
+ private static XsubprograminterfacebodyNonterminal singletonInstance = null;
+ public static final XsubprograminterfacebodyNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XsubprograminterfacebodyNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSubprogramInterfaceBody>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 195; }
+ }
+ public static final Nonterminal.XsubprograminterfacebodyNonterminal XSUBPROGRAMINTERFACEBODY = XsubprograminterfacebodyNonterminal.getInstance();
+
+ public static class XcomlistNonterminal extends Nonterminal
+ {
+ private XcomlistNonterminal() {;} // Singleton
+ private static XcomlistNonterminal singletonInstance = null;
+ public static final XcomlistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcomlistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xComlist>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 196; }
+ }
+ public static final Nonterminal.XcomlistNonterminal XCOMLIST = XcomlistNonterminal.getInstance();
+
+ public static class XdeferredshapespecNonterminal extends Nonterminal
+ {
+ private XdeferredshapespecNonterminal() {;} // Singleton
+ private static XdeferredshapespecNonterminal singletonInstance = null;
+ public static final XdeferredshapespecNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XdeferredshapespecNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xDeferredShapeSpec>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 197; }
+ }
+ public static final Nonterminal.XdeferredshapespecNonterminal XDEFERREDSHAPESPEC = XdeferredshapespecNonterminal.getInstance();
+
+ public static class Xcyclestmt65ReductionNonterminal extends Nonterminal
+ {
+ private Xcyclestmt65ReductionNonterminal() {;} // Singleton
+ private static Xcyclestmt65ReductionNonterminal singletonInstance = null;
+ public static final Xcyclestmt65ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xcyclestmt65ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xCycleStmt@65>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 198; }
+ }
+ public static final Nonterminal.Xcyclestmt65ReductionNonterminal XCYCLESTMT65 = Xcyclestmt65ReductionNonterminal.getInstance();
+
+ public static class Xentitydecl3ReductionNonterminal extends Nonterminal
+ {
+ private Xentitydecl3ReductionNonterminal() {;} // Singleton
+ private static Xentitydecl3ReductionNonterminal singletonInstance = null;
+ public static final Xentitydecl3ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xentitydecl3ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEntityDecl@3>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 3; }
+
+ int getGoToRow() { return 199; }
+ }
+ public static final Nonterminal.Xentitydecl3ReductionNonterminal XENTITYDECL3 = Xentitydecl3ReductionNonterminal.getInstance();
+
+ public static class XcharlenparamvalueNonterminal extends Nonterminal
+ {
+ private XcharlenparamvalueNonterminal() {;} // Singleton
+ private static XcharlenparamvalueNonterminal singletonInstance = null;
+ public static final XcharlenparamvalueNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcharlenparamvalueNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xCharLenParamValue>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 200; }
+ }
+ public static final Nonterminal.XcharlenparamvalueNonterminal XCHARLENPARAMVALUE = XcharlenparamvalueNonterminal.getInstance();
+
+ public static class XmainprogramNonterminal extends Nonterminal
+ {
+ private XmainprogramNonterminal() {;} // Singleton
+ private static XmainprogramNonterminal singletonInstance = null;
+ public static final XmainprogramNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XmainprogramNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xMainProgram>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 201; }
+ }
+ public static final Nonterminal.XmainprogramNonterminal XMAINPROGRAM = XmainprogramNonterminal.getInstance();
+
+ public static class XpointerobjectlistNonterminal extends Nonterminal
+ {
+ private XpointerobjectlistNonterminal() {;} // Singleton
+ private static XpointerobjectlistNonterminal singletonInstance = null;
+ public static final XpointerobjectlistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XpointerobjectlistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xPointerObjectList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 202; }
+ }
+ public static final Nonterminal.XpointerobjectlistNonterminal XPOINTEROBJECTLIST = XpointerobjectlistNonterminal.getInstance();
+
+ public static class XoptionalparlistNonterminal extends Nonterminal
+ {
+ private XoptionalparlistNonterminal() {;} // Singleton
+ private static XoptionalparlistNonterminal singletonInstance = null;
+ public static final XoptionalparlistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XoptionalparlistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xOptionalParList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 203; }
+ }
+ public static final Nonterminal.XoptionalparlistNonterminal XOPTIONALPARLIST = XoptionalparlistNonterminal.getInstance();
+
+ public static class XlblrefNonterminal extends Nonterminal
+ {
+ private XlblrefNonterminal() {;} // Singleton
+ private static XlblrefNonterminal singletonInstance = null;
+ public static final XlblrefNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XlblrefNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xLblRef>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 204; }
+ }
+ public static final Nonterminal.XlblrefNonterminal XLBLREF = XlblrefNonterminal.getInstance();
+
+ public static class XblockdoconstructNonterminal extends Nonterminal
+ {
+ private XblockdoconstructNonterminal() {;} // Singleton
+ private static XblockdoconstructNonterminal singletonInstance = null;
+ public static final XblockdoconstructNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XblockdoconstructNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xBlockDoConstruct>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 205; }
+ }
+ public static final Nonterminal.XblockdoconstructNonterminal XBLOCKDOCONSTRUCT = XblockdoconstructNonterminal.getInstance();
+
+ public static class XacimplieddoNonterminal extends Nonterminal
+ {
+ private XacimplieddoNonterminal() {;} // Singleton
+ private static XacimplieddoNonterminal singletonInstance = null;
+ public static final XacimplieddoNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XacimplieddoNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAcImpliedDo>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 206; }
+ }
+ public static final Nonterminal.XacimplieddoNonterminal XACIMPLIEDDO = XacimplieddoNonterminal.getInstance();
+
+ public static class XcomplexconstNonterminal extends Nonterminal
+ {
+ private XcomplexconstNonterminal() {;} // Singleton
+ private static XcomplexconstNonterminal singletonInstance = null;
+ public static final XcomplexconstNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcomplexconstNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xComplexConst>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 207; }
+ }
+ public static final Nonterminal.XcomplexconstNonterminal XCOMPLEXCONST = XcomplexconstNonterminal.getInstance();
+
+ public static class XpointerstmtobjectlistNonterminal extends Nonterminal
+ {
+ private XpointerstmtobjectlistNonterminal() {;} // Singleton
+ private static XpointerstmtobjectlistNonterminal singletonInstance = null;
+ public static final XpointerstmtobjectlistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XpointerstmtobjectlistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xPointerStmtObjectList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 208; }
+ }
+ public static final Nonterminal.XpointerstmtobjectlistNonterminal XPOINTERSTMTOBJECTLIST = XpointerstmtobjectlistNonterminal.getInstance();
+
+ public static class XtargetNonterminal extends Nonterminal
+ {
+ private XtargetNonterminal() {;} // Singleton
+ private static XtargetNonterminal singletonInstance = null;
+ public static final XtargetNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XtargetNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xTarget>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 209; }
+ }
+ public static final Nonterminal.XtargetNonterminal XTARGET = XtargetNonterminal.getInstance();
+
+ public static class XcomponentarrayspecNonterminal extends Nonterminal
+ {
+ private XcomponentarrayspecNonterminal() {;} // Singleton
+ private static XcomponentarrayspecNonterminal singletonInstance = null;
+ public static final XcomponentarrayspecNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcomponentarrayspecNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xComponentArraySpec>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 210; }
+ }
+ public static final Nonterminal.XcomponentarrayspecNonterminal XCOMPONENTARRAYSPEC = XcomponentarrayspecNonterminal.getInstance();
+
+ public static class XprefixspecNonterminal extends Nonterminal
+ {
+ private XprefixspecNonterminal() {;} // Singleton
+ private static XprefixspecNonterminal singletonInstance = null;
+ public static final XprefixspecNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XprefixspecNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xPrefixSpec>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 211; }
+ }
+ public static final Nonterminal.XprefixspecNonterminal XPREFIXSPEC = XprefixspecNonterminal.getInstance();
+
+ public static class XderivedtypebodyNonterminal extends Nonterminal
+ {
+ private XderivedtypebodyNonterminal() {;} // Singleton
+ private static XderivedtypebodyNonterminal singletonInstance = null;
+ public static final XderivedtypebodyNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XderivedtypebodyNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xDerivedTypeBody>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 212; }
+ }
+ public static final Nonterminal.XderivedtypebodyNonterminal XDERIVEDTYPEBODY = XderivedtypebodyNonterminal.getInstance();
+
+ public static class XgotostmtNonterminal extends Nonterminal
+ {
+ private XgotostmtNonterminal() {;} // Singleton
+ private static XgotostmtNonterminal singletonInstance = null;
+ public static final XgotostmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XgotostmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xGotoStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 213; }
+ }
+ public static final Nonterminal.XgotostmtNonterminal XGOTOSTMT = XgotostmtNonterminal.getInstance();
+
+ public static class XufprimaryNonterminal extends Nonterminal
+ {
+ private XufprimaryNonterminal() {;} // Singleton
+ private static XufprimaryNonterminal singletonInstance = null;
+ public static final XufprimaryNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XufprimaryNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xUFPrimary>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 214; }
+ }
+ public static final Nonterminal.XufprimaryNonterminal XUFPRIMARY = XufprimaryNonterminal.getInstance();
+
+ public static class XformatidentifierNonterminal extends Nonterminal
+ {
+ private XformatidentifierNonterminal() {;} // Singleton
+ private static XformatidentifierNonterminal singletonInstance = null;
+ public static final XformatidentifierNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XformatidentifierNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xFormatIdentifier>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 215; }
+ }
+ public static final Nonterminal.XformatidentifierNonterminal XFORMATIDENTIFIER = XformatidentifierNonterminal.getInstance();
+
+ public static class Xendinterfacestmt78ReductionNonterminal extends Nonterminal
+ {
+ private Xendinterfacestmt78ReductionNonterminal() {;} // Singleton
+ private static Xendinterfacestmt78ReductionNonterminal singletonInstance = null;
+ public static final Xendinterfacestmt78ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xendinterfacestmt78ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndInterfaceStmt@78>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 216; }
+ }
+ public static final Nonterminal.Xendinterfacestmt78ReductionNonterminal XENDINTERFACESTMT78 = Xendinterfacestmt78ReductionNonterminal.getInstance();
+
+ public static class XendblockdatastmtNonterminal extends Nonterminal
+ {
+ private XendblockdatastmtNonterminal() {;} // Singleton
+ private static XendblockdatastmtNonterminal singletonInstance = null;
+ public static final XendblockdatastmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XendblockdatastmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndBlockDataStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 217; }
+ }
+ public static final Nonterminal.XendblockdatastmtNonterminal XENDBLOCKDATASTMT = XendblockdatastmtNonterminal.getInstance();
+
+ public static class XderivedtypebodyconstructNonterminal extends Nonterminal
+ {
+ private XderivedtypebodyconstructNonterminal() {;} // Singleton
+ private static XderivedtypebodyconstructNonterminal singletonInstance = null;
+ public static final XderivedtypebodyconstructNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XderivedtypebodyconstructNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xDerivedTypeBodyConstruct>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 218; }
+ }
+ public static final Nonterminal.XderivedtypebodyconstructNonterminal XDERIVEDTYPEBODYCONSTRUCT = XderivedtypebodyconstructNonterminal.getInstance();
+
+ public static class XlabelNonterminal extends Nonterminal
+ {
+ private XlabelNonterminal() {;} // Singleton
+ private static XlabelNonterminal singletonInstance = null;
+ public static final XlabelNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XlabelNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xLabel>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 219; }
+ }
+ public static final Nonterminal.XlabelNonterminal XLABEL = XlabelNonterminal.getInstance();
+
+ public static class XstmtfunctionrangeNonterminal extends Nonterminal
+ {
+ private XstmtfunctionrangeNonterminal() {;} // Singleton
+ private static XstmtfunctionrangeNonterminal singletonInstance = null;
+ public static final XstmtfunctionrangeNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XstmtfunctionrangeNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xStmtFunctionRange>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 220; }
+ }
+ public static final Nonterminal.XstmtfunctionrangeNonterminal XSTMTFUNCTIONRANGE = XstmtfunctionrangeNonterminal.getInstance();
+
+ public static class XpoweropNonterminal extends Nonterminal
+ {
+ private XpoweropNonterminal() {;} // Singleton
+ private static XpoweropNonterminal singletonInstance = null;
+ public static final XpoweropNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XpoweropNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xPowerOp>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 221; }
+ }
+ public static final Nonterminal.XpoweropNonterminal XPOWEROP = XpoweropNonterminal.getInstance();
+
+ public static class Xendwherestmt56ReductionNonterminal extends Nonterminal
+ {
+ private Xendwherestmt56ReductionNonterminal() {;} // Singleton
+ private static Xendwherestmt56ReductionNonterminal singletonInstance = null;
+ public static final Xendwherestmt56ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xendwherestmt56ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndWhereStmt@56>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 222; }
+ }
+ public static final Nonterminal.Xendwherestmt56ReductionNonterminal XENDWHERESTMT56 = Xendwherestmt56ReductionNonterminal.getInstance();
+
+ public static class XarrayallocationNonterminal extends Nonterminal
+ {
+ private XarrayallocationNonterminal() {;} // Singleton
+ private static XarrayallocationNonterminal singletonInstance = null;
+ public static final XarrayallocationNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XarrayallocationNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xArrayAllocation>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 223; }
+ }
+ public static final Nonterminal.XarrayallocationNonterminal XARRAYALLOCATION = XarrayallocationNonterminal.getInstance();
+
+ public static class XnamedconstantNonterminal extends Nonterminal
+ {
+ private XnamedconstantNonterminal() {;} // Singleton
+ private static XnamedconstantNonterminal singletonInstance = null;
+ public static final XnamedconstantNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XnamedconstantNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xNamedConstant>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 224; }
+ }
+ public static final Nonterminal.XnamedconstantNonterminal XNAMEDCONSTANT = XnamedconstantNonterminal.getInstance();
+
+ public static class XmoduleblockNonterminal extends Nonterminal
+ {
+ private XmoduleblockNonterminal() {;} // Singleton
+ private static XmoduleblockNonterminal singletonInstance = null;
+ public static final XmoduleblockNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XmoduleblockNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xModuleBlock>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 225; }
+ }
+ public static final Nonterminal.XmoduleblockNonterminal XMODULEBLOCK = XmoduleblockNonterminal.getInstance();
+
+ public static class Xendinterfacestmt77ReductionNonterminal extends Nonterminal
+ {
+ private Xendinterfacestmt77ReductionNonterminal() {;} // Singleton
+ private static Xendinterfacestmt77ReductionNonterminal singletonInstance = null;
+ public static final Xendinterfacestmt77ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xendinterfacestmt77ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndInterfaceStmt@77>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 226; }
+ }
+ public static final Nonterminal.Xendinterfacestmt77ReductionNonterminal XENDINTERFACESTMT77 = Xendinterfacestmt77ReductionNonterminal.getInstance();
+
+ public static class XsubroutinerangeNonterminal extends Nonterminal
+ {
+ private XsubroutinerangeNonterminal() {;} // Singleton
+ private static XsubroutinerangeNonterminal singletonInstance = null;
+ public static final XsubroutinerangeNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XsubroutinerangeNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSubroutineRange>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 227; }
+ }
+ public static final Nonterminal.XsubroutinerangeNonterminal XSUBROUTINERANGE = XsubroutinerangeNonterminal.getInstance();
+
+ public static class XtargetstmtNonterminal extends Nonterminal
+ {
+ private XtargetstmtNonterminal() {;} // Singleton
+ private static XtargetstmtNonterminal singletonInstance = null;
+ public static final XtargetstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XtargetstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xTargetStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 228; }
+ }
+ public static final Nonterminal.XtargetstmtNonterminal XTARGETSTMT = XtargetstmtNonterminal.getInstance();
+
+ public static class XfunctionargNonterminal extends Nonterminal
+ {
+ private XfunctionargNonterminal() {;} // Singleton
+ private static XfunctionargNonterminal singletonInstance = null;
+ public static final XfunctionargNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XfunctionargNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xFunctionArg>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 229; }
+ }
+ public static final Nonterminal.XfunctionargNonterminal XFUNCTIONARG = XfunctionargNonterminal.getInstance();
+
+ public static class XallocationlistNonterminal extends Nonterminal
+ {
+ private XallocationlistNonterminal() {;} // Singleton
+ private static XallocationlistNonterminal singletonInstance = null;
+ public static final XallocationlistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XallocationlistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAllocationList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 230; }
+ }
+ public static final Nonterminal.XallocationlistNonterminal XALLOCATIONLIST = XallocationlistNonterminal.getInstance();
+
+ public static class XequivalenceobjectNonterminal extends Nonterminal
+ {
+ private XequivalenceobjectNonterminal() {;} // Singleton
+ private static XequivalenceobjectNonterminal singletonInstance = null;
+ public static final XequivalenceobjectNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XequivalenceobjectNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEquivalenceObject>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 231; }
+ }
+ public static final Nonterminal.XequivalenceobjectNonterminal XEQUIVALENCEOBJECT = XequivalenceobjectNonterminal.getInstance();
+
+ public static class XblockdatabodyconstructNonterminal extends Nonterminal
+ {
+ private XblockdatabodyconstructNonterminal() {;} // Singleton
+ private static XblockdatabodyconstructNonterminal singletonInstance = null;
+ public static final XblockdatabodyconstructNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XblockdatabodyconstructNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xBlockDataBodyConstruct>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 232; }
+ }
+ public static final Nonterminal.XblockdatabodyconstructNonterminal XBLOCKDATABODYCONSTRUCT = XblockdatabodyconstructNonterminal.getInstance();
+
+ public static class XnamelistgroupnameNonterminal extends Nonterminal
+ {
+ private XnamelistgroupnameNonterminal() {;} // Singleton
+ private static XnamelistgroupnameNonterminal singletonInstance = null;
+ public static final XnamelistgroupnameNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XnamelistgroupnameNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xNamelistGroupName>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 233; }
+ }
+ public static final Nonterminal.XnamelistgroupnameNonterminal XNAMELISTGROUPNAME = XnamelistgroupnameNonterminal.getInstance();
+
+ public static class XcommaloopcontrolNonterminal extends Nonterminal
+ {
+ private XcommaloopcontrolNonterminal() {;} // Singleton
+ private static XcommaloopcontrolNonterminal singletonInstance = null;
+ public static final XcommaloopcontrolNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcommaloopcontrolNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xCommaLoopControl>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 234; }
+ }
+ public static final Nonterminal.XcommaloopcontrolNonterminal XCOMMALOOPCONTROL = XcommaloopcontrolNonterminal.getInstance();
+
+ public static class XcyclestmtNonterminal extends Nonterminal
+ {
+ private XcyclestmtNonterminal() {;} // Singleton
+ private static XcyclestmtNonterminal singletonInstance = null;
+ public static final XcyclestmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcyclestmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xCycleStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 235; }
+ }
+ public static final Nonterminal.XcyclestmtNonterminal XCYCLESTMT = XcyclestmtNonterminal.getInstance();
+
+ public static class XmoduleprocedurestmtNonterminal extends Nonterminal
+ {
+ private XmoduleprocedurestmtNonterminal() {;} // Singleton
+ private static XmoduleprocedurestmtNonterminal singletonInstance = null;
+ public static final XmoduleprocedurestmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XmoduleprocedurestmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xModuleProcedureStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 236; }
+ }
+ public static final Nonterminal.XmoduleprocedurestmtNonterminal XMODULEPROCEDURESTMT = XmoduleprocedurestmtNonterminal.getInstance();
+
+ public static class XendselectstmtNonterminal extends Nonterminal
+ {
+ private XendselectstmtNonterminal() {;} // Singleton
+ private static XendselectstmtNonterminal singletonInstance = null;
+ public static final XendselectstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XendselectstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndSelectStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 237; }
+ }
+ public static final Nonterminal.XendselectstmtNonterminal XENDSELECTSTMT = XendselectstmtNonterminal.getInstance();
+
+ public static class XnamedconstantdeflistNonterminal extends Nonterminal
+ {
+ private XnamedconstantdeflistNonterminal() {;} // Singleton
+ private static XnamedconstantdeflistNonterminal singletonInstance = null;
+ public static final XnamedconstantdeflistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XnamedconstantdeflistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xNamedConstantDefList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 238; }
+ }
+ public static final Nonterminal.XnamedconstantdeflistNonterminal XNAMEDCONSTANTDEFLIST = XnamedconstantdeflistNonterminal.getInstance();
+
+ public static class Xendwherestmt55ReductionNonterminal extends Nonterminal
+ {
+ private Xendwherestmt55ReductionNonterminal() {;} // Singleton
+ private static Xendwherestmt55ReductionNonterminal singletonInstance = null;
+ public static final Xendwherestmt55ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xendwherestmt55ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndWhereStmt@55>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 239; }
+ }
+ public static final Nonterminal.Xendwherestmt55ReductionNonterminal XENDWHERESTMT55 = Xendwherestmt55ReductionNonterminal.getInstance();
+
+ public static class XallocatedshapeNonterminal extends Nonterminal
+ {
+ private XallocatedshapeNonterminal() {;} // Singleton
+ private static XallocatedshapeNonterminal singletonInstance = null;
+ public static final XallocatedshapeNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XallocatedshapeNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAllocatedShape>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 240; }
+ }
+ public static final Nonterminal.XallocatedshapeNonterminal XALLOCATEDSHAPE = XallocatedshapeNonterminal.getInstance();
+
+ public static class XusestmtNonterminal extends Nonterminal
+ {
+ private XusestmtNonterminal() {;} // Singleton
+ private static XusestmtNonterminal singletonInstance = null;
+ public static final XusestmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XusestmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xUseStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 241; }
+ }
+ public static final Nonterminal.XusestmtNonterminal XUSESTMT = XusestmtNonterminal.getInstance();
+
+ public static class XdefinedbinaryopNonterminal extends Nonterminal
+ {
+ private XdefinedbinaryopNonterminal() {;} // Singleton
+ private static XdefinedbinaryopNonterminal singletonInstance = null;
+ public static final XdefinedbinaryopNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XdefinedbinaryopNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xDefinedBinaryOp>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 242; }
+ }
+ public static final Nonterminal.XdefinedbinaryopNonterminal XDEFINEDBINARYOP = XdefinedbinaryopNonterminal.getInstance();
+
+ public static class XmaskexprNonterminal extends Nonterminal
+ {
+ private XmaskexprNonterminal() {;} // Singleton
+ private static XmaskexprNonterminal singletonInstance = null;
+ public static final XmaskexprNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XmaskexprNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xMaskExpr>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 243; }
+ }
+ public static final Nonterminal.XmaskexprNonterminal XMASKEXPR = XmaskexprNonterminal.getInstance();
+
+ public static class XwhererangeNonterminal extends Nonterminal
+ {
+ private XwhererangeNonterminal() {;} // Singleton
+ private static XwhererangeNonterminal singletonInstance = null;
+ public static final XwhererangeNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XwhererangeNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xWhereRange>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 244; }
+ }
+ public static final Nonterminal.XwhererangeNonterminal XWHERERANGE = XwhererangeNonterminal.getInstance();
+
+ public static class XforallconstructstmtNonterminal extends Nonterminal
+ {
+ private XforallconstructstmtNonterminal() {;} // Singleton
+ private static XforallconstructstmtNonterminal singletonInstance = null;
+ public static final XforallconstructstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XforallconstructstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xForallConstructStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 245; }
+ }
+ public static final Nonterminal.XforallconstructstmtNonterminal XFORALLCONSTRUCTSTMT = XforallconstructstmtNonterminal.getInstance();
+
+ public static class XconstantNonterminal extends Nonterminal
+ {
+ private XconstantNonterminal() {;} // Singleton
+ private static XconstantNonterminal singletonInstance = null;
+ public static final XconstantNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XconstantNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xConstant>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 246; }
+ }
+ public static final Nonterminal.XconstantNonterminal XCONSTANT = XconstantNonterminal.getInstance();
+
+ public static class XifconstructNonterminal extends Nonterminal
+ {
+ private XifconstructNonterminal() {;} // Singleton
+ private static XifconstructNonterminal singletonInstance = null;
+ public static final XifconstructNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XifconstructNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xIfConstruct>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 247; }
+ }
+ public static final Nonterminal.XifconstructNonterminal XIFCONSTRUCT = XifconstructNonterminal.getInstance();
+
+ public static class Xandoperand43ReductionNonterminal extends Nonterminal
+ {
+ private Xandoperand43ReductionNonterminal() {;} // Singleton
+ private static Xandoperand43ReductionNonterminal singletonInstance = null;
+ public static final Xandoperand43ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xandoperand43ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAndOperand@43>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 248; }
+ }
+ public static final Nonterminal.Xandoperand43ReductionNonterminal XANDOPERAND43 = Xandoperand43ReductionNonterminal.getInstance();
+
+ public static class XoutputimplieddoNonterminal extends Nonterminal
+ {
+ private XoutputimplieddoNonterminal() {;} // Singleton
+ private static XoutputimplieddoNonterminal singletonInstance = null;
+ public static final XoutputimplieddoNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XoutputimplieddoNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xOutputImpliedDo>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 249; }
+ }
+ public static final Nonterminal.XoutputimplieddoNonterminal XOUTPUTIMPLIEDDO = XoutputimplieddoNonterminal.getInstance();
+
+ public static class XintrinsiclistNonterminal extends Nonterminal
+ {
+ private XintrinsiclistNonterminal() {;} // Singleton
+ private static XintrinsiclistNonterminal singletonInstance = null;
+ public static final XintrinsiclistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XintrinsiclistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xIntrinsicList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 250; }
+ }
+ public static final Nonterminal.XintrinsiclistNonterminal XINTRINSICLIST = XintrinsiclistNonterminal.getInstance();
+
+ public static class Xcoperand29ReductionNonterminal extends Nonterminal
+ {
+ private Xcoperand29ReductionNonterminal() {;} // Singleton
+ private static Xcoperand29ReductionNonterminal singletonInstance = null;
+ public static final Xcoperand29ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xcoperand29ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xCOperand@29>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 3; }
+
+ int getGoToRow() { return 251; }
+ }
+ public static final Nonterminal.Xcoperand29ReductionNonterminal XCOPERAND29 = Xcoperand29ReductionNonterminal.getInstance();
+
+ public static class XtargetobjectlistNonterminal extends Nonterminal
+ {
+ private XtargetobjectlistNonterminal() {;} // Singleton
+ private static XtargetobjectlistNonterminal singletonInstance = null;
+ public static final XtargetobjectlistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XtargetobjectlistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xTargetObjectList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 252; }
+ }
+ public static final Nonterminal.XtargetobjectlistNonterminal XTARGETOBJECTLIST = XtargetobjectlistNonterminal.getInstance();
+
+ public static class XprintstmtNonterminal extends Nonterminal
+ {
+ private XprintstmtNonterminal() {;} // Singleton
+ private static XprintstmtNonterminal singletonInstance = null;
+ public static final XprintstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XprintstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xPrintStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 253; }
+ }
+ public static final Nonterminal.XprintstmtNonterminal XPRINTSTMT = XprintstmtNonterminal.getInstance();
+
+ public static class XexecutableconstructNonterminal extends Nonterminal
+ {
+ private XexecutableconstructNonterminal() {;} // Singleton
+ private static XexecutableconstructNonterminal singletonInstance = null;
+ public static final XexecutableconstructNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XexecutableconstructNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xExecutableConstruct>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 254; }
+ }
+ public static final Nonterminal.XexecutableconstructNonterminal XEXECUTABLECONSTRUCT = XexecutableconstructNonterminal.getInstance();
+
+ public static class XloopcontrolNonterminal extends Nonterminal
+ {
+ private XloopcontrolNonterminal() {;} // Singleton
+ private static XloopcontrolNonterminal singletonInstance = null;
+ public static final XloopcontrolNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XloopcontrolNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xLoopControl>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 255; }
+ }
+ public static final Nonterminal.XloopcontrolNonterminal XLOOPCONTROL = XloopcontrolNonterminal.getInstance();
+
+ public static class XelseifconstructNonterminal extends Nonterminal
+ {
+ private XelseifconstructNonterminal() {;} // Singleton
+ private static XelseifconstructNonterminal singletonInstance = null;
+ public static final XelseifconstructNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XelseifconstructNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xElseIfConstruct>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 256; }
+ }
+ public static final Nonterminal.XelseifconstructNonterminal XELSEIFCONSTRUCT = XelseifconstructNonterminal.getInstance();
+
+ public static class XdatastmtobjectlistNonterminal extends Nonterminal
+ {
+ private XdatastmtobjectlistNonterminal() {;} // Singleton
+ private static XdatastmtobjectlistNonterminal singletonInstance = null;
+ public static final XdatastmtobjectlistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XdatastmtobjectlistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xDataStmtObjectList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 257; }
+ }
+ public static final Nonterminal.XdatastmtobjectlistNonterminal XDATASTMTOBJECTLIST = XdatastmtobjectlistNonterminal.getInstance();
+
+ public static class XelsewherepartNonterminal extends Nonterminal
+ {
+ private XelsewherepartNonterminal() {;} // Singleton
+ private static XelsewherepartNonterminal singletonInstance = null;
+ public static final XelsewherepartNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XelsewherepartNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xElsewherePart>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 258; }
+ }
+ public static final Nonterminal.XelsewherepartNonterminal XELSEWHEREPART = XelsewherepartNonterminal.getInstance();
+
+ public static class XrenamelistNonterminal extends Nonterminal
+ {
+ private XrenamelistNonterminal() {;} // Singleton
+ private static XrenamelistNonterminal singletonInstance = null;
+ public static final XrenamelistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XrenamelistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xRenameList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 259; }
+ }
+ public static final Nonterminal.XrenamelistNonterminal XRENAMELIST = XrenamelistNonterminal.getInstance();
+
+ public static class Xendforallstmt58ReductionNonterminal extends Nonterminal
+ {
+ private Xendforallstmt58ReductionNonterminal() {;} // Singleton
+ private static Xendforallstmt58ReductionNonterminal singletonInstance = null;
+ public static final Xendforallstmt58ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xendforallstmt58ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndForallStmt@58>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 260; }
+ }
+ public static final Nonterminal.Xendforallstmt58ReductionNonterminal XENDFORALLSTMT58 = Xendforallstmt58ReductionNonterminal.getInstance();
+
+ public static class XcomponentdeclNonterminal extends Nonterminal
+ {
+ private XcomponentdeclNonterminal() {;} // Singleton
+ private static XcomponentdeclNonterminal singletonInstance = null;
+ public static final XcomponentdeclNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcomponentdeclNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xComponentDecl>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 261; }
+ }
+ public static final Nonterminal.XcomponentdeclNonterminal XCOMPONENTDECL = XcomponentdeclNonterminal.getInstance();
+
+ public static class XpositionspecNonterminal extends Nonterminal
+ {
+ private XpositionspecNonterminal() {;} // Singleton
+ private static XpositionspecNonterminal singletonInstance = null;
+ public static final XpositionspecNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XpositionspecNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xPositionSpec>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 262; }
+ }
+ public static final Nonterminal.XpositionspecNonterminal XPOSITIONSPEC = XpositionspecNonterminal.getInstance();
+
+ public static class XonlylistNonterminal extends Nonterminal
+ {
+ private XonlylistNonterminal() {;} // Singleton
+ private static XonlylistNonterminal singletonInstance = null;
+ public static final XonlylistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XonlylistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xOnlyList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 263; }
+ }
+ public static final Nonterminal.XonlylistNonterminal XONLYLIST = XonlylistNonterminal.getInstance();
+
+ public static class XarithmeticifstmtNonterminal extends Nonterminal
+ {
+ private XarithmeticifstmtNonterminal() {;} // Singleton
+ private static XarithmeticifstmtNonterminal singletonInstance = null;
+ public static final XarithmeticifstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XarithmeticifstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xArithmeticIfStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 264; }
+ }
+ public static final Nonterminal.XarithmeticifstmtNonterminal XARITHMETICIFSTMT = XarithmeticifstmtNonterminal.getInstance();
+
+ public static class XobjectnameNonterminal extends Nonterminal
+ {
+ private XobjectnameNonterminal() {;} // Singleton
+ private static XobjectnameNonterminal singletonInstance = null;
+ public static final XobjectnameNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XobjectnameNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xObjectName>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 265; }
+ }
+ public static final Nonterminal.XobjectnameNonterminal XOBJECTNAME = XobjectnameNonterminal.getInstance();
+
+ public static class Xaddoperand38ReductionNonterminal extends Nonterminal
+ {
+ private Xaddoperand38ReductionNonterminal() {;} // Singleton
+ private static Xaddoperand38ReductionNonterminal singletonInstance = null;
+ public static final Xaddoperand38ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xaddoperand38ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAddOperand@38>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 2; }
+
+ int getGoToRow() { return 266; }
+ }
+ public static final Nonterminal.Xaddoperand38ReductionNonterminal XADDOPERAND38 = Xaddoperand38ReductionNonterminal.getInstance();
+
+ public static class Xuffactor37ReductionNonterminal extends Nonterminal
+ {
+ private Xuffactor37ReductionNonterminal() {;} // Singleton
+ private static Xuffactor37ReductionNonterminal singletonInstance = null;
+ public static final Xuffactor37ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xuffactor37ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xUFFactor@37>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 2; }
+
+ int getGoToRow() { return 267; }
+ }
+ public static final Nonterminal.Xuffactor37ReductionNonterminal XUFFACTOR37 = Xuffactor37ReductionNonterminal.getInstance();
+
+ public static class XattrspecNonterminal extends Nonterminal
+ {
+ private XattrspecNonterminal() {;} // Singleton
+ private static XattrspecNonterminal singletonInstance = null;
+ public static final XattrspecNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XattrspecNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAttrSpec>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 268; }
+ }
+ public static final Nonterminal.XattrspecNonterminal XATTRSPEC = XattrspecNonterminal.getInstance();
+
+ public static class Xassignmentstmt49ReductionNonterminal extends Nonterminal
+ {
+ private Xassignmentstmt49ReductionNonterminal() {;} // Singleton
+ private static Xassignmentstmt49ReductionNonterminal singletonInstance = null;
+ public static final Xassignmentstmt49ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xassignmentstmt49ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAssignmentStmt@49>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 4; }
+
+ int getGoToRow() { return 269; }
+ }
+ public static final Nonterminal.Xassignmentstmt49ReductionNonterminal XASSIGNMENTSTMT49 = Xassignmentstmt49ReductionNonterminal.getInstance();
+
+ public static class XsubroutinenameNonterminal extends Nonterminal
+ {
+ private XsubroutinenameNonterminal() {;} // Singleton
+ private static XsubroutinenameNonterminal singletonInstance = null;
+ public static final XsubroutinenameNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XsubroutinenameNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSubroutineName>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 270; }
+ }
+ public static final Nonterminal.XsubroutinenameNonterminal XSUBROUTINENAME = XsubroutinenameNonterminal.getInstance();
+
+ public static class TXimplicitspeclistNonterminal extends Nonterminal
+ {
+ private TXimplicitspeclistNonterminal() {;} // Singleton
+ private static TXimplicitspeclistNonterminal singletonInstance = null;
+ public static final TXimplicitspeclistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new TXimplicitspeclistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<T_xImplicitSpecList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 271; }
+ }
+ public static final Nonterminal.TXimplicitspeclistNonterminal TXIMPLICITSPECLIST = TXimplicitspeclistNonterminal.getInstance();
+
+ public static class Xcoperand28ReductionNonterminal extends Nonterminal
+ {
+ private Xcoperand28ReductionNonterminal() {;} // Singleton
+ private static Xcoperand28ReductionNonterminal singletonInstance = null;
+ public static final Xcoperand28ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xcoperand28ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xCOperand@28>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 3; }
+
+ int getGoToRow() { return 272; }
+ }
+ public static final Nonterminal.Xcoperand28ReductionNonterminal XCOPERAND28 = Xcoperand28ReductionNonterminal.getInstance();
+
+ public static class XsubroutinesubprogramNonterminal extends Nonterminal
+ {
+ private XsubroutinesubprogramNonterminal() {;} // Singleton
+ private static XsubroutinesubprogramNonterminal singletonInstance = null;
+ public static final XsubroutinesubprogramNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XsubroutinesubprogramNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSubroutineSubprogram>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 273; }
+ }
+ public static final Nonterminal.XsubroutinesubprogramNonterminal XSUBROUTINESUBPROGRAM = XsubroutinesubprogramNonterminal.getInstance();
+
+ public static class XexternalnameNonterminal extends Nonterminal
+ {
+ private XexternalnameNonterminal() {;} // Singleton
+ private static XexternalnameNonterminal singletonInstance = null;
+ public static final XexternalnameNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XexternalnameNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xExternalName>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 274; }
+ }
+ public static final Nonterminal.XexternalnameNonterminal XEXTERNALNAME = XexternalnameNonterminal.getInstance();
+
+ public static class XforalltripletspeclistNonterminal extends Nonterminal
+ {
+ private XforalltripletspeclistNonterminal() {;} // Singleton
+ private static XforalltripletspeclistNonterminal singletonInstance = null;
+ public static final XforalltripletspeclistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XforalltripletspeclistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xForallTripletSpecList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 275; }
+ }
+ public static final Nonterminal.XforalltripletspeclistNonterminal XFORALLTRIPLETSPECLIST = XforalltripletspeclistNonterminal.getInstance();
+
+ public static class Xendforallstmt57ReductionNonterminal extends Nonterminal
+ {
+ private Xendforallstmt57ReductionNonterminal() {;} // Singleton
+ private static Xendforallstmt57ReductionNonterminal singletonInstance = null;
+ public static final Xendforallstmt57ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xendforallstmt57ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndForallStmt@57>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 276; }
+ }
+ public static final Nonterminal.Xendforallstmt57ReductionNonterminal XENDFORALLSTMT57 = Xendforallstmt57ReductionNonterminal.getInstance();
+
+ public static class XderivedtypestmtNonterminal extends Nonterminal
+ {
+ private XderivedtypestmtNonterminal() {;} // Singleton
+ private static XderivedtypestmtNonterminal singletonInstance = null;
+ public static final XderivedtypestmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XderivedtypestmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xDerivedTypeStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 277; }
+ }
+ public static final Nonterminal.XderivedtypestmtNonterminal XDERIVEDTYPESTMT = XderivedtypestmtNonterminal.getInstance();
+
+ public static class TXimplicitspecNonterminal extends Nonterminal
+ {
+ private TXimplicitspecNonterminal() {;} // Singleton
+ private static TXimplicitspecNonterminal singletonInstance = null;
+ public static final TXimplicitspecNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new TXimplicitspecNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<T_xImplicitSpec>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 278; }
+ }
+ public static final Nonterminal.TXimplicitspecNonterminal TXIMPLICITSPEC = TXimplicitspecNonterminal.getInstance();
+
+ public static class XrdunitidNonterminal extends Nonterminal
+ {
+ private XrdunitidNonterminal() {;} // Singleton
+ private static XrdunitidNonterminal singletonInstance = null;
+ public static final XrdunitidNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XrdunitidNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xRdUnitId>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 279; }
+ }
+ public static final Nonterminal.XrdunitidNonterminal XRDUNITID = XrdunitidNonterminal.getInstance();
+
+ public static class XarraynameNonterminal extends Nonterminal
+ {
+ private XarraynameNonterminal() {;} // Singleton
+ private static XarraynameNonterminal singletonInstance = null;
+ public static final XarraynameNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XarraynameNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xArrayName>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 280; }
+ }
+ public static final Nonterminal.XarraynameNonterminal XARRAYNAME = XarraynameNonterminal.getInstance();
+
+ public static class XnullifystmtNonterminal extends Nonterminal
+ {
+ private XnullifystmtNonterminal() {;} // Singleton
+ private static XnullifystmtNonterminal singletonInstance = null;
+ public static final XnullifystmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XnullifystmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xNullifyStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 281; }
+ }
+ public static final Nonterminal.XnullifystmtNonterminal XNULLIFYSTMT = XnullifystmtNonterminal.getInstance();
+
+ public static class Xendtypestmt2ReductionNonterminal extends Nonterminal
+ {
+ private Xendtypestmt2ReductionNonterminal() {;} // Singleton
+ private static Xendtypestmt2ReductionNonterminal singletonInstance = null;
+ public static final Xendtypestmt2ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xendtypestmt2ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndTypeStmt@2>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 282; }
+ }
+ public static final Nonterminal.Xendtypestmt2ReductionNonterminal XENDTYPESTMT2 = Xendtypestmt2ReductionNonterminal.getInstance();
+
+ public static class XexplicitshapespecNonterminal extends Nonterminal
+ {
+ private XexplicitshapespecNonterminal() {;} // Singleton
+ private static XexplicitshapespecNonterminal singletonInstance = null;
+ public static final XexplicitshapespecNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XexplicitshapespecNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xExplicitShapeSpec>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 283; }
+ }
+ public static final Nonterminal.XexplicitshapespecNonterminal XEXPLICITSHAPESPEC = XexplicitshapespecNonterminal.getInstance();
+
+ public static class XsubstrconstNonterminal extends Nonterminal
+ {
+ private XsubstrconstNonterminal() {;} // Singleton
+ private static XsubstrconstNonterminal singletonInstance = null;
+ public static final XsubstrconstNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XsubstrconstNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSubstrConst>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 284; }
+ }
+ public static final Nonterminal.XsubstrconstNonterminal XSUBSTRCONST = XsubstrconstNonterminal.getInstance();
+
+ public static class XelsestmtNonterminal extends Nonterminal
+ {
+ private XelsestmtNonterminal() {;} // Singleton
+ private static XelsestmtNonterminal singletonInstance = null;
+ public static final XelsestmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XelsestmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xElseStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 285; }
+ }
+ public static final Nonterminal.XelsestmtNonterminal XELSESTMT = XelsestmtNonterminal.getInstance();
+
+ public static class Xinvalidentitydecl6ReductionNonterminal extends Nonterminal
+ {
+ private Xinvalidentitydecl6ReductionNonterminal() {;} // Singleton
+ private static Xinvalidentitydecl6ReductionNonterminal singletonInstance = null;
+ public static final Xinvalidentitydecl6ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xinvalidentitydecl6ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xInvalidEntityDecl@6>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 286; }
+ }
+ public static final Nonterminal.Xinvalidentitydecl6ReductionNonterminal XINVALIDENTITYDECL6 = Xinvalidentitydecl6ReductionNonterminal.getInstance();
+
+ public static class XrdfmtidexprNonterminal extends Nonterminal
+ {
+ private XrdfmtidexprNonterminal() {;} // Singleton
+ private static XrdfmtidexprNonterminal singletonInstance = null;
+ public static final XrdfmtidexprNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XrdfmtidexprNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xRdFmtIdExpr>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 287; }
+ }
+ public static final Nonterminal.XrdfmtidexprNonterminal XRDFMTIDEXPR = XrdfmtidexprNonterminal.getInstance();
+
+ public static class XdatastmtobjectNonterminal extends Nonterminal
+ {
+ private XdatastmtobjectNonterminal() {;} // Singleton
+ private static XdatastmtobjectNonterminal singletonInstance = null;
+ public static final XdatastmtobjectNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XdatastmtobjectNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xDataStmtObject>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 288; }
+ }
+ public static final Nonterminal.XdatastmtobjectNonterminal XDATASTMTOBJECT = XdatastmtobjectNonterminal.getInstance();
+
+ public static class Xassignmentstmt48ReductionNonterminal extends Nonterminal
+ {
+ private Xassignmentstmt48ReductionNonterminal() {;} // Singleton
+ private static Xassignmentstmt48ReductionNonterminal singletonInstance = null;
+ public static final Xassignmentstmt48ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xassignmentstmt48ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAssignmentStmt@48>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 289; }
+ }
+ public static final Nonterminal.Xassignmentstmt48ReductionNonterminal XASSIGNMENTSTMT48 = Xassignmentstmt48ReductionNonterminal.getInstance();
+
+ public static class XarraydeclaratorlistNonterminal extends Nonterminal
+ {
+ private XarraydeclaratorlistNonterminal() {;} // Singleton
+ private static XarraydeclaratorlistNonterminal singletonInstance = null;
+ public static final XarraydeclaratorlistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XarraydeclaratorlistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xArrayDeclaratorList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 290; }
+ }
+ public static final Nonterminal.XarraydeclaratorlistNonterminal XARRAYDECLARATORLIST = XarraydeclaratorlistNonterminal.getInstance();
+
+ public static class Xprimary19ReductionNonterminal extends Nonterminal
+ {
+ private Xprimary19ReductionNonterminal() {;} // Singleton
+ private static Xprimary19ReductionNonterminal singletonInstance = null;
+ public static final Xprimary19ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xprimary19ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xPrimary@19>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 4; }
+
+ int getGoToRow() { return 291; }
+ }
+ public static final Nonterminal.Xprimary19ReductionNonterminal XPRIMARY19 = Xprimary19ReductionNonterminal.getInstance();
+
+ public static class XentrystmtNonterminal extends Nonterminal
+ {
+ private XentrystmtNonterminal() {;} // Singleton
+ private static XentrystmtNonterminal singletonInstance = null;
+ public static final XentrystmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XentrystmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEntryStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 292; }
+ }
+ public static final Nonterminal.XentrystmtNonterminal XENTRYSTMT = XentrystmtNonterminal.getInstance();
+
+ public static class TXimplicitstmtNonterminal extends Nonterminal
+ {
+ private TXimplicitstmtNonterminal() {;} // Singleton
+ private static TXimplicitstmtNonterminal singletonInstance = null;
+ public static final TXimplicitstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new TXimplicitstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<T_xImplicitStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 293; }
+ }
+ public static final Nonterminal.TXimplicitstmtNonterminal TXIMPLICITSTMT = TXimplicitstmtNonterminal.getInstance();
+
+ public static class XassumedshapespeclistNonterminal extends Nonterminal
+ {
+ private XassumedshapespeclistNonterminal() {;} // Singleton
+ private static XassumedshapespeclistNonterminal singletonInstance = null;
+ public static final XassumedshapespeclistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XassumedshapespeclistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAssumedShapeSpecList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 294; }
+ }
+ public static final Nonterminal.XassumedshapespeclistNonterminal XASSUMEDSHAPESPECLIST = XassumedshapespeclistNonterminal.getInstance();
+
+ public static class Xendtypestmt1ReductionNonterminal extends Nonterminal
+ {
+ private Xendtypestmt1ReductionNonterminal() {;} // Singleton
+ private static Xendtypestmt1ReductionNonterminal singletonInstance = null;
+ public static final Xendtypestmt1ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xendtypestmt1ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndTypeStmt@1>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 295; }
+ }
+ public static final Nonterminal.Xendtypestmt1ReductionNonterminal XENDTYPESTMT1 = Xendtypestmt1ReductionNonterminal.getInstance();
+
+ public static class XdefinedunaryopNonterminal extends Nonterminal
+ {
+ private XdefinedunaryopNonterminal() {;} // Singleton
+ private static XdefinedunaryopNonterminal singletonInstance = null;
+ public static final XdefinedunaryopNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XdefinedunaryopNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xDefinedUnaryOp>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 296; }
+ }
+ public static final Nonterminal.XdefinedunaryopNonterminal XDEFINEDUNARYOP = XdefinedunaryopNonterminal.getInstance();
+
+ public static class XdataidoobjectNonterminal extends Nonterminal
+ {
+ private XdataidoobjectNonterminal() {;} // Singleton
+ private static XdataidoobjectNonterminal singletonInstance = null;
+ public static final XdataidoobjectNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XdataidoobjectNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xDataIDoObject>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 297; }
+ }
+ public static final Nonterminal.XdataidoobjectNonterminal XDATAIDOOBJECT = XdataidoobjectNonterminal.getInstance();
+
+ public static class XtypenameNonterminal extends Nonterminal
+ {
+ private XtypenameNonterminal() {;} // Singleton
+ private static XtypenameNonterminal singletonInstance = null;
+ public static final XtypenameNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XtypenameNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xTypeName>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 298; }
+ }
+ public static final Nonterminal.XtypenameNonterminal XTYPENAME = XtypenameNonterminal.getInstance();
+
+ public static class XiocontrolspeclistNonterminal extends Nonterminal
+ {
+ private XiocontrolspeclistNonterminal() {;} // Singleton
+ private static XiocontrolspeclistNonterminal singletonInstance = null;
+ public static final XiocontrolspeclistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XiocontrolspeclistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xIoControlSpecList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 299; }
+ }
+ public static final Nonterminal.XiocontrolspeclistNonterminal XIOCONTROLSPECLIST = XiocontrolspeclistNonterminal.getInstance();
+
+ public static class XintentspecNonterminal extends Nonterminal
+ {
+ private XintentspecNonterminal() {;} // Singleton
+ private static XintentspecNonterminal singletonInstance = null;
+ public static final XintentspecNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XintentspecNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xIntentSpec>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 300; }
+ }
+ public static final Nonterminal.XintentspecNonterminal XINTENTSPEC = XintentspecNonterminal.getInstance();
+
+ public static class Xassignmentstmt47ReductionNonterminal extends Nonterminal
+ {
+ private Xassignmentstmt47ReductionNonterminal() {;} // Singleton
+ private static Xassignmentstmt47ReductionNonterminal singletonInstance = null;
+ public static final Xassignmentstmt47ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xassignmentstmt47ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAssignmentStmt@47>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 4; }
+
+ int getGoToRow() { return 301; }
+ }
+ public static final Nonterminal.Xassignmentstmt47ReductionNonterminal XASSIGNMENTSTMT47 = Xassignmentstmt47ReductionNonterminal.getInstance();
+
+ public static class XblockdatasubprogramNonterminal extends Nonterminal
+ {
+ private XblockdatasubprogramNonterminal() {;} // Singleton
+ private static XblockdatasubprogramNonterminal singletonInstance = null;
+ public static final XblockdatasubprogramNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XblockdatasubprogramNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xBlockDataSubprogram>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 302; }
+ }
+ public static final Nonterminal.XblockdatasubprogramNonterminal XBLOCKDATASUBPROGRAM = XblockdatasubprogramNonterminal.getInstance();
+
+ public static class XbodyplusinternalsNonterminal extends Nonterminal
+ {
+ private XbodyplusinternalsNonterminal() {;} // Singleton
+ private static XbodyplusinternalsNonterminal singletonInstance = null;
+ public static final XbodyplusinternalsNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XbodyplusinternalsNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xBodyPlusInternals>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 303; }
+ }
+ public static final Nonterminal.XbodyplusinternalsNonterminal XBODYPLUSINTERNALS = XbodyplusinternalsNonterminal.getInstance();
+
+ public static class XinquirespeclistNonterminal extends Nonterminal
+ {
+ private XinquirespeclistNonterminal() {;} // Singleton
+ private static XinquirespeclistNonterminal singletonInstance = null;
+ public static final XinquirespeclistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XinquirespeclistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xInquireSpecList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 304; }
+ }
+ public static final Nonterminal.XinquirespeclistNonterminal XINQUIRESPECLIST = XinquirespeclistNonterminal.getInstance();
+
+ public static class XdatastmtvaluelistNonterminal extends Nonterminal
+ {
+ private XdatastmtvaluelistNonterminal() {;} // Singleton
+ private static XdatastmtvaluelistNonterminal singletonInstance = null;
+ public static final XdatastmtvaluelistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XdatastmtvaluelistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xDataStmtValueList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 305; }
+ }
+ public static final Nonterminal.XdatastmtvaluelistNonterminal XDATASTMTVALUELIST = XdatastmtvaluelistNonterminal.getInstance();
+
+ public static class XfunctionnameNonterminal extends Nonterminal
+ {
+ private XfunctionnameNonterminal() {;} // Singleton
+ private static XfunctionnameNonterminal singletonInstance = null;
+ public static final XfunctionnameNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XfunctionnameNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xFunctionName>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 306; }
+ }
+ public static final Nonterminal.XfunctionnameNonterminal XFUNCTIONNAME = XfunctionnameNonterminal.getInstance();
+
+ public static class XcprimaryNonterminal extends Nonterminal
+ {
+ private XcprimaryNonterminal() {;} // Singleton
+ private static XcprimaryNonterminal singletonInstance = null;
+ public static final XcprimaryNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcprimaryNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xCPrimary>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 307; }
+ }
+ public static final Nonterminal.XcprimaryNonterminal XCPRIMARY = XcprimaryNonterminal.getInstance();
+
+ public static class Xprimary27ReductionNonterminal extends Nonterminal
+ {
+ private Xprimary27ReductionNonterminal() {;} // Singleton
+ private static Xprimary27ReductionNonterminal singletonInstance = null;
+ public static final Xprimary27ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xprimary27ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xPrimary@27>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 308; }
+ }
+ public static final Nonterminal.Xprimary27ReductionNonterminal XPRIMARY27 = Xprimary27ReductionNonterminal.getInstance();
+
+ public static class XthenpartNonterminal extends Nonterminal
+ {
+ private XthenpartNonterminal() {;} // Singleton
+ private static XthenpartNonterminal singletonInstance = null;
+ public static final XthenpartNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XthenpartNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xThenPart>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 309; }
+ }
+ public static final Nonterminal.XthenpartNonterminal XTHENPART = XthenpartNonterminal.getInstance();
+
+ public static class Xintentstmt7ReductionNonterminal extends Nonterminal
+ {
+ private Xintentstmt7ReductionNonterminal() {;} // Singleton
+ private static Xintentstmt7ReductionNonterminal singletonInstance = null;
+ public static final Xintentstmt7ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xintentstmt7ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xIntentStmt@7>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 2; }
+
+ int getGoToRow() { return 310; }
+ }
+ public static final Nonterminal.Xintentstmt7ReductionNonterminal XINTENTSTMT7 = Xintentstmt7ReductionNonterminal.getInstance();
+
+ public static class XarrayconstructorNonterminal extends Nonterminal
+ {
+ private XarrayconstructorNonterminal() {;} // Singleton
+ private static XarrayconstructorNonterminal singletonInstance = null;
+ public static final XarrayconstructorNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XarrayconstructorNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xArrayConstructor>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 311; }
+ }
+ public static final Nonterminal.XarrayconstructorNonterminal XARRAYCONSTRUCTOR = XarrayconstructorNonterminal.getInstance();
+
+ public static class XconnectspecNonterminal extends Nonterminal
+ {
+ private XconnectspecNonterminal() {;} // Singleton
+ private static XconnectspecNonterminal singletonInstance = null;
+ public static final XconnectspecNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XconnectspecNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xConnectSpec>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 312; }
+ }
+ public static final Nonterminal.XconnectspecNonterminal XCONNECTSPEC = XconnectspecNonterminal.getInstance();
+
+ public static class XpausestmtNonterminal extends Nonterminal
+ {
+ private XpausestmtNonterminal() {;} // Singleton
+ private static XpausestmtNonterminal singletonInstance = null;
+ public static final XpausestmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XpausestmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xPauseStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 313; }
+ }
+ public static final Nonterminal.XpausestmtNonterminal XPAUSESTMT = XpausestmtNonterminal.getInstance();
+
+ public static class XendfilestmtNonterminal extends Nonterminal
+ {
+ private XendfilestmtNonterminal() {;} // Singleton
+ private static XendfilestmtNonterminal singletonInstance = null;
+ public static final XendfilestmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XendfilestmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndfileStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 314; }
+ }
+ public static final Nonterminal.XendfilestmtNonterminal XENDFILESTMT = XendfilestmtNonterminal.getInstance();
+
+ public static class XdatastmtsetNonterminal extends Nonterminal
+ {
+ private XdatastmtsetNonterminal() {;} // Singleton
+ private static XdatastmtsetNonterminal singletonInstance = null;
+ public static final XdatastmtsetNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XdatastmtsetNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xDataStmtSet>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 315; }
+ }
+ public static final Nonterminal.XdatastmtsetNonterminal XDATASTMTSET = XdatastmtsetNonterminal.getInstance();
+
+ public static class XcasevaluerangeNonterminal extends Nonterminal
+ {
+ private XcasevaluerangeNonterminal() {;} // Singleton
+ private static XcasevaluerangeNonterminal singletonInstance = null;
+ public static final XcasevaluerangeNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcasevaluerangeNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xCaseValueRange>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 316; }
+ }
+ public static final Nonterminal.XcasevaluerangeNonterminal XCASEVALUERANGE = XcasevaluerangeNonterminal.getInstance();
+
+ public static class Xlevel5exprNonterminal extends Nonterminal
+ {
+ private Xlevel5exprNonterminal() {;} // Singleton
+ private static Xlevel5exprNonterminal singletonInstance = null;
+ public static final Xlevel5exprNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xlevel5exprNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xLevel5Expr>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 317; }
+ }
+ public static final Nonterminal.Xlevel5exprNonterminal XLEVEL5EXPR = Xlevel5exprNonterminal.getInstance();
+
+ public static class XkindparamNonterminal extends Nonterminal
+ {
+ private XkindparamNonterminal() {;} // Singleton
+ private static XkindparamNonterminal singletonInstance = null;
+ public static final XkindparamNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XkindparamNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xKindParam>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 318; }
+ }
+ public static final Nonterminal.XkindparamNonterminal XKINDPARAM = XkindparamNonterminal.getInstance();
+
+ public static class XsubroutinenameuseNonterminal extends Nonterminal
+ {
+ private XsubroutinenameuseNonterminal() {;} // Singleton
+ private static XsubroutinenameuseNonterminal singletonInstance = null;
+ public static final XsubroutinenameuseNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XsubroutinenameuseNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSubroutineNameUse>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 319; }
+ }
+ public static final Nonterminal.XsubroutinenameuseNonterminal XSUBROUTINENAMEUSE = XsubroutinenameuseNonterminal.getInstance();
+
+ public static class XclosespeclistNonterminal extends Nonterminal
+ {
+ private XclosespeclistNonterminal() {;} // Singleton
+ private static XclosespeclistNonterminal singletonInstance = null;
+ public static final XclosespeclistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XclosespeclistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xCloseSpecList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 320; }
+ }
+ public static final Nonterminal.XclosespeclistNonterminal XCLOSESPECLIST = XclosespeclistNonterminal.getInstance();
+
+ public static class XintentstmtNonterminal extends Nonterminal
+ {
+ private XintentstmtNonterminal() {;} // Singleton
+ private static XintentstmtNonterminal singletonInstance = null;
+ public static final XintentstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XintentstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xIntentStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 321; }
+ }
+ public static final Nonterminal.XintentstmtNonterminal XINTENTSTMT = XintentstmtNonterminal.getInstance();
+
+ public static class XupperboundNonterminal extends Nonterminal
+ {
+ private XupperboundNonterminal() {;} // Singleton
+ private static XupperboundNonterminal singletonInstance = null;
+ public static final XupperboundNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XupperboundNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xUpperBound>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 322; }
+ }
+ public static final Nonterminal.XupperboundNonterminal XUPPERBOUND = XupperboundNonterminal.getInstance();
+
+ public static class XdatalistNonterminal extends Nonterminal
+ {
+ private XdatalistNonterminal() {;} // Singleton
+ private static XdatalistNonterminal singletonInstance = null;
+ public static final XdatalistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XdatalistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xDatalist>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 323; }
+ }
+ public static final Nonterminal.XdatalistNonterminal XDATALIST = XdatalistNonterminal.getInstance();
+
+ public static class XinterfacespecificationNonterminal extends Nonterminal
+ {
+ private XinterfacespecificationNonterminal() {;} // Singleton
+ private static XinterfacespecificationNonterminal singletonInstance = null;
+ public static final XinterfacespecificationNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XinterfacespecificationNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xInterfaceSpecification>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 324; }
+ }
+ public static final Nonterminal.XinterfacespecificationNonterminal XINTERFACESPECIFICATION = XinterfacespecificationNonterminal.getInstance();
+
+ public static class XinterfaceblockbodyNonterminal extends Nonterminal
+ {
+ private XinterfaceblockbodyNonterminal() {;} // Singleton
+ private static XinterfaceblockbodyNonterminal singletonInstance = null;
+ public static final XinterfaceblockbodyNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XinterfaceblockbodyNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xInterfaceBlockBody>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 325; }
+ }
+ public static final Nonterminal.XinterfaceblockbodyNonterminal XINTERFACEBLOCKBODY = XinterfaceblockbodyNonterminal.getInstance();
+
+ public static class Xprimary26ReductionNonterminal extends Nonterminal
+ {
+ private Xprimary26ReductionNonterminal() {;} // Singleton
+ private static Xprimary26ReductionNonterminal singletonInstance = null;
+ public static final Xprimary26ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xprimary26ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xPrimary@26>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 4; }
+
+ int getGoToRow() { return 326; }
+ }
+ public static final Nonterminal.Xprimary26ReductionNonterminal XPRIMARY26 = Xprimary26ReductionNonterminal.getInstance();
+
+ public static class Xlevel4exprNonterminal extends Nonterminal
+ {
+ private Xlevel4exprNonterminal() {;} // Singleton
+ private static Xlevel4exprNonterminal singletonInstance = null;
+ public static final Xlevel4exprNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xlevel4exprNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xLevel4Expr>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 327; }
+ }
+ public static final Nonterminal.Xlevel4exprNonterminal XLEVEL4EXPR = Xlevel4exprNonterminal.getInstance();
+
+ public static class XcharselectorNonterminal extends Nonterminal
+ {
+ private XcharselectorNonterminal() {;} // Singleton
+ private static XcharselectorNonterminal singletonInstance = null;
+ public static final XcharselectorNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcharselectorNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xCharSelector>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 328; }
+ }
+ public static final Nonterminal.XcharselectorNonterminal XCHARSELECTOR = XcharselectorNonterminal.getInstance();
+
+ public static class XvariablenameNonterminal extends Nonterminal
+ {
+ private XvariablenameNonterminal() {;} // Singleton
+ private static XvariablenameNonterminal singletonInstance = null;
+ public static final XvariablenameNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XvariablenameNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xVariableName>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 329; }
+ }
+ public static final Nonterminal.XvariablenameNonterminal XVARIABLENAME = XvariablenameNonterminal.getInstance();
+
+ public static class XderivedtypedefNonterminal extends Nonterminal
+ {
+ private XderivedtypedefNonterminal() {;} // Singleton
+ private static XderivedtypedefNonterminal singletonInstance = null;
+ public static final XderivedtypedefNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XderivedtypedefNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xDerivedTypeDef>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 330; }
+ }
+ public static final Nonterminal.XderivedtypedefNonterminal XDERIVEDTYPEDEF = XderivedtypedefNonterminal.getInstance();
+
+ public static class XendnameNonterminal extends Nonterminal
+ {
+ private XendnameNonterminal() {;} // Singleton
+ private static XendnameNonterminal singletonInstance = null;
+ public static final XendnameNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XendnameNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndName>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 331; }
+ }
+ public static final Nonterminal.XendnameNonterminal XENDNAME = XendnameNonterminal.getInstance();
+
+ public static class Xexitstmt66ReductionNonterminal extends Nonterminal
+ {
+ private Xexitstmt66ReductionNonterminal() {;} // Singleton
+ private static Xexitstmt66ReductionNonterminal singletonInstance = null;
+ public static final Xexitstmt66ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xexitstmt66ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xExitStmt@66>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 332; }
+ }
+ public static final Nonterminal.Xexitstmt66ReductionNonterminal XEXITSTMT66 = Xexitstmt66ReductionNonterminal.getInstance();
+
+ public static class XbodyconstructNonterminal extends Nonterminal
+ {
+ private XbodyconstructNonterminal() {;} // Singleton
+ private static XbodyconstructNonterminal singletonInstance = null;
+ public static final XbodyconstructNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XbodyconstructNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xBodyConstruct>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 333; }
+ }
+ public static final Nonterminal.XbodyconstructNonterminal XBODYCONSTRUCT = XbodyconstructNonterminal.getInstance();
+
+ public static class XsubscripttripletNonterminal extends Nonterminal
+ {
+ private XsubscripttripletNonterminal() {;} // Singleton
+ private static XsubscripttripletNonterminal singletonInstance = null;
+ public static final XsubscripttripletNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XsubscripttripletNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSubscriptTriplet>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 334; }
+ }
+ public static final Nonterminal.XsubscripttripletNonterminal XSUBSCRIPTTRIPLET = XsubscripttripletNonterminal.getInstance();
+
+ public static class XfunctioninterfacerangeNonterminal extends Nonterminal
+ {
+ private XfunctioninterfacerangeNonterminal() {;} // Singleton
+ private static XfunctioninterfacerangeNonterminal singletonInstance = null;
+ public static final XfunctioninterfacerangeNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XfunctioninterfacerangeNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xFunctionInterfaceRange>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 335; }
+ }
+ public static final Nonterminal.XfunctioninterfacerangeNonterminal XFUNCTIONINTERFACERANGE = XfunctioninterfacerangeNonterminal.getInstance();
+
+ public static class XinputitemNonterminal extends Nonterminal
+ {
+ private XinputitemNonterminal() {;} // Singleton
+ private static XinputitemNonterminal singletonInstance = null;
+ public static final XinputitemNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XinputitemNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xInputItem>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 336; }
+ }
+ public static final Nonterminal.XinputitemNonterminal XINPUTITEM = XinputitemNonterminal.getInstance();
+
+ public static class Xprimary25ReductionNonterminal extends Nonterminal
+ {
+ private Xprimary25ReductionNonterminal() {;} // Singleton
+ private static Xprimary25ReductionNonterminal singletonInstance = null;
+ public static final Xprimary25ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xprimary25ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xPrimary@25>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 337; }
+ }
+ public static final Nonterminal.Xprimary25ReductionNonterminal XPRIMARY25 = Xprimary25ReductionNonterminal.getInstance();
+
+ public static class XsubroutineargNonterminal extends Nonterminal
+ {
+ private XsubroutineargNonterminal() {;} // Singleton
+ private static XsubroutineargNonterminal singletonInstance = null;
+ public static final XsubroutineargNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XsubroutineargNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSubroutineArg>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 338; }
+ }
+ public static final Nonterminal.XsubroutineargNonterminal XSUBROUTINEARG = XsubroutineargNonterminal.getInstance();
+
+ public static class XmodulesubprogramNonterminal extends Nonterminal
+ {
+ private XmodulesubprogramNonterminal() {;} // Singleton
+ private static XmodulesubprogramNonterminal singletonInstance = null;
+ public static final XmodulesubprogramNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XmodulesubprogramNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xModuleSubprogram>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 339; }
+ }
+ public static final Nonterminal.XmodulesubprogramNonterminal XMODULESUBPROGRAM = XmodulesubprogramNonterminal.getInstance();
+
+ public static class XbozliteralconstantNonterminal extends Nonterminal
+ {
+ private XbozliteralconstantNonterminal() {;} // Singleton
+ private static XbozliteralconstantNonterminal singletonInstance = null;
+ public static final XbozliteralconstantNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XbozliteralconstantNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xBozLiteralConstant>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 340; }
+ }
+ public static final Nonterminal.XbozliteralconstantNonterminal XBOZLITERALCONSTANT = XbozliteralconstantNonterminal.getInstance();
+
+ public static class XcommonstmtNonterminal extends Nonterminal
+ {
+ private XcommonstmtNonterminal() {;} // Singleton
+ private static XcommonstmtNonterminal singletonInstance = null;
+ public static final XcommonstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcommonstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xCommonStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 341; }
+ }
+ public static final Nonterminal.XcommonstmtNonterminal XCOMMONSTMT = XcommonstmtNonterminal.getInstance();
+
+ public static class Xlevel3exprNonterminal extends Nonterminal
+ {
+ private Xlevel3exprNonterminal() {;} // Singleton
+ private static Xlevel3exprNonterminal singletonInstance = null;
+ public static final Xlevel3exprNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xlevel3exprNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xLevel3Expr>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 342; }
+ }
+ public static final Nonterminal.Xlevel3exprNonterminal XLEVEL3EXPR = Xlevel3exprNonterminal.getInstance();
+
+ public static class XelseconstructNonterminal extends Nonterminal
+ {
+ private XelseconstructNonterminal() {;} // Singleton
+ private static XelseconstructNonterminal singletonInstance = null;
+ public static final XelseconstructNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XelseconstructNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xElseConstruct>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 343; }
+ }
+ public static final Nonterminal.XelseconstructNonterminal XELSECONSTRUCT = XelseconstructNonterminal.getInstance();
+
+ public static class XenddostmtNonterminal extends Nonterminal
+ {
+ private XenddostmtNonterminal() {;} // Singleton
+ private static XenddostmtNonterminal singletonInstance = null;
+ public static final XenddostmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XenddostmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndDoStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 344; }
+ }
+ public static final Nonterminal.XenddostmtNonterminal XENDDOSTMT = XenddostmtNonterminal.getInstance();
+
+ public static class XwhereconstructNonterminal extends Nonterminal
+ {
+ private XwhereconstructNonterminal() {;} // Singleton
+ private static XwhereconstructNonterminal singletonInstance = null;
+ public static final XwhereconstructNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XwhereconstructNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xWhereConstruct>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 345; }
+ }
+ public static final Nonterminal.XwhereconstructNonterminal XWHERECONSTRUCT = XwhereconstructNonterminal.getInstance();
+
+ public static class Xprimary24ReductionNonterminal extends Nonterminal
+ {
+ private Xprimary24ReductionNonterminal() {;} // Singleton
+ private static Xprimary24ReductionNonterminal singletonInstance = null;
+ public static final Xprimary24ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xprimary24ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xPrimary@24>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 346; }
+ }
+ public static final Nonterminal.Xprimary24ReductionNonterminal XPRIMARY24 = Xprimary24ReductionNonterminal.getInstance();
+
+ public static class XsubstringrangeNonterminal extends Nonterminal
+ {
+ private XsubstringrangeNonterminal() {;} // Singleton
+ private static XsubstringrangeNonterminal singletonInstance = null;
+ public static final XsubstringrangeNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XsubstringrangeNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSubstringRange>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 347; }
+ }
+ public static final Nonterminal.XsubstringrangeNonterminal XSUBSTRINGRANGE = XsubstringrangeNonterminal.getInstance();
+
+ public static class Xlevel2exprNonterminal extends Nonterminal
+ {
+ private Xlevel2exprNonterminal() {;} // Singleton
+ private static Xlevel2exprNonterminal singletonInstance = null;
+ public static final Xlevel2exprNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xlevel2exprNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xLevel2Expr>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 348; }
+ }
+ public static final Nonterminal.Xlevel2exprNonterminal XLEVEL2EXPR = Xlevel2exprNonterminal.getInstance();
+
+ public static class XcomponentattrspecNonterminal extends Nonterminal
+ {
+ private XcomponentattrspecNonterminal() {;} // Singleton
+ private static XcomponentattrspecNonterminal singletonInstance = null;
+ public static final XcomponentattrspecNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcomponentattrspecNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xComponentAttrSpec>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 349; }
+ }
+ public static final Nonterminal.XcomponentattrspecNonterminal XCOMPONENTATTRSPEC = XcomponentattrspecNonterminal.getInstance();
+
+ public static class Xufprimary35ReductionNonterminal extends Nonterminal
+ {
+ private Xufprimary35ReductionNonterminal() {;} // Singleton
+ private static Xufprimary35ReductionNonterminal singletonInstance = null;
+ public static final Xufprimary35ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xufprimary35ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xUFPrimary@35>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 350; }
+ }
+ public static final Nonterminal.Xufprimary35ReductionNonterminal XUFPRIMARY35 = Xufprimary35ReductionNonterminal.getInstance();
+
+ public static class Xassignmentstmt52ReductionNonterminal extends Nonterminal
+ {
+ private Xassignmentstmt52ReductionNonterminal() {;} // Singleton
+ private static Xassignmentstmt52ReductionNonterminal singletonInstance = null;
+ public static final Xassignmentstmt52ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xassignmentstmt52ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAssignmentStmt@52>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 351; }
+ }
+ public static final Nonterminal.Xassignmentstmt52ReductionNonterminal XASSIGNMENTSTMT52 = Xassignmentstmt52ReductionNonterminal.getInstance();
+
+ public static class XoutputitemlistNonterminal extends Nonterminal
+ {
+ private XoutputitemlistNonterminal() {;} // Singleton
+ private static XoutputitemlistNonterminal singletonInstance = null;
+ public static final XoutputitemlistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XoutputitemlistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xOutputItemList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 352; }
+ }
+ public static final Nonterminal.XoutputitemlistNonterminal XOUTPUTITEMLIST = XoutputitemlistNonterminal.getInstance();
+
+ public static class XnamelistgroupsNonterminal extends Nonterminal
+ {
+ private XnamelistgroupsNonterminal() {;} // Singleton
+ private static XnamelistgroupsNonterminal singletonInstance = null;
+ public static final XnamelistgroupsNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XnamelistgroupsNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xNamelistGroups>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 353; }
+ }
+ public static final Nonterminal.XnamelistgroupsNonterminal XNAMELISTGROUPS = XnamelistgroupsNonterminal.getInstance();
+
+ public static class XassignedgotostmtNonterminal extends Nonterminal
+ {
+ private XassignedgotostmtNonterminal() {;} // Singleton
+ private static XassignedgotostmtNonterminal singletonInstance = null;
+ public static final XassignedgotostmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XassignedgotostmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAssignedGotoStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 354; }
+ }
+ public static final Nonterminal.XassignedgotostmtNonterminal XASSIGNEDGOTOSTMT = XassignedgotostmtNonterminal.getInstance();
+
+ public static class XinterfacerangeNonterminal extends Nonterminal
+ {
+ private XinterfacerangeNonterminal() {;} // Singleton
+ private static XinterfacerangeNonterminal singletonInstance = null;
+ public static final XinterfacerangeNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XinterfacerangeNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xInterfaceRange>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 355; }
+ }
+ public static final Nonterminal.XinterfacerangeNonterminal XINTERFACERANGE = XinterfacerangeNonterminal.getInstance();
+
+ public static class XkindselectorNonterminal extends Nonterminal
+ {
+ private XkindselectorNonterminal() {;} // Singleton
+ private static XkindselectorNonterminal singletonInstance = null;
+ public static final XkindselectorNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XkindselectorNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xKindSelector>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 356; }
+ }
+ public static final Nonterminal.XkindselectorNonterminal XKINDSELECTOR = XkindselectorNonterminal.getInstance();
+
+ public static class XmaskedelsewhereconstructNonterminal extends Nonterminal
+ {
+ private XmaskedelsewhereconstructNonterminal() {;} // Singleton
+ private static XmaskedelsewhereconstructNonterminal singletonInstance = null;
+ public static final XmaskedelsewhereconstructNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XmaskedelsewhereconstructNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xMaskedElsewhereConstruct>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 357; }
+ }
+ public static final Nonterminal.XmaskedelsewhereconstructNonterminal XMASKEDELSEWHERECONSTRUCT = XmaskedelsewhereconstructNonterminal.getInstance();
+
+ public static class XoroperandNonterminal extends Nonterminal
+ {
+ private XoroperandNonterminal() {;} // Singleton
+ private static XoroperandNonterminal singletonInstance = null;
+ public static final XoroperandNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XoroperandNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xOrOperand>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 358; }
+ }
+ public static final Nonterminal.XoroperandNonterminal XOROPERAND = XoroperandNonterminal.getInstance();
+
+ public static class Xprimary23ReductionNonterminal extends Nonterminal
+ {
+ private Xprimary23ReductionNonterminal() {;} // Singleton
+ private static Xprimary23ReductionNonterminal singletonInstance = null;
+ public static final Xprimary23ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xprimary23ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xPrimary@23>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 4; }
+
+ int getGoToRow() { return 359; }
+ }
+ public static final Nonterminal.Xprimary23ReductionNonterminal XPRIMARY23 = Xprimary23ReductionNonterminal.getInstance();
+
+ public static class XcontainsstmtNonterminal extends Nonterminal
+ {
+ private XcontainsstmtNonterminal() {;} // Singleton
+ private static XcontainsstmtNonterminal singletonInstance = null;
+ public static final XcontainsstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcontainsstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xContainsStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 360; }
+ }
+ public static final Nonterminal.XcontainsstmtNonterminal XCONTAINSSTMT = XcontainsstmtNonterminal.getInstance();
+
+ public static class XaccessspecNonterminal extends Nonterminal
+ {
+ private XaccessspecNonterminal() {;} // Singleton
+ private static XaccessspecNonterminal singletonInstance = null;
+ public static final XaccessspecNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XaccessspecNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAccessSpec>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 361; }
+ }
+ public static final Nonterminal.XaccessspecNonterminal XACCESSSPEC = XaccessspecNonterminal.getInstance();
+
+ public static class XassignstmtNonterminal extends Nonterminal
+ {
+ private XassignstmtNonterminal() {;} // Singleton
+ private static XassignstmtNonterminal singletonInstance = null;
+ public static final XassignstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XassignstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAssignStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 362; }
+ }
+ public static final Nonterminal.XassignstmtNonterminal XASSIGNSTMT = XassignstmtNonterminal.getInstance();
+
+ public static class Xlevel1exprNonterminal extends Nonterminal
+ {
+ private Xlevel1exprNonterminal() {;} // Singleton
+ private static Xlevel1exprNonterminal singletonInstance = null;
+ public static final Xlevel1exprNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xlevel1exprNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xLevel1Expr>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 363; }
+ }
+ public static final Nonterminal.Xlevel1exprNonterminal XLEVEL1EXPR = Xlevel1exprNonterminal.getInstance();
+
+ public static class XdatastmtconstantNonterminal extends Nonterminal
+ {
+ private XdatastmtconstantNonterminal() {;} // Singleton
+ private static XdatastmtconstantNonterminal singletonInstance = null;
+ public static final XdatastmtconstantNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XdatastmtconstantNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xDataStmtConstant>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 364; }
+ }
+ public static final Nonterminal.XdatastmtconstantNonterminal XDATASTMTCONSTANT = XdatastmtconstantNonterminal.getInstance();
+
+ public static class XattrspecseqNonterminal extends Nonterminal
+ {
+ private XattrspecseqNonterminal() {;} // Singleton
+ private static XattrspecseqNonterminal singletonInstance = null;
+ public static final XattrspecseqNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XattrspecseqNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAttrSpecSeq>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 365; }
+ }
+ public static final Nonterminal.XattrspecseqNonterminal XATTRSPECSEQ = XattrspecseqNonterminal.getInstance();
+
+ public static class XtargetnameNonterminal extends Nonterminal
+ {
+ private XtargetnameNonterminal() {;} // Singleton
+ private static XtargetnameNonterminal singletonInstance = null;
+ public static final XtargetnameNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XtargetnameNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xTargetName>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 366; }
+ }
+ public static final Nonterminal.XtargetnameNonterminal XTARGETNAME = XtargetnameNonterminal.getInstance();
+
+ public static class Xufprimary34ReductionNonterminal extends Nonterminal
+ {
+ private Xufprimary34ReductionNonterminal() {;} // Singleton
+ private static Xufprimary34ReductionNonterminal singletonInstance = null;
+ public static final Xufprimary34ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xufprimary34ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xUFPrimary@34>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 4; }
+
+ int getGoToRow() { return 367; }
+ }
+ public static final Nonterminal.Xufprimary34ReductionNonterminal XUFPRIMARY34 = Xufprimary34ReductionNonterminal.getInstance();
+
+ public static class XsignNonterminal extends Nonterminal
+ {
+ private XsignNonterminal() {;} // Singleton
+ private static XsignNonterminal singletonInstance = null;
+ public static final XsignNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XsignNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSign>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 368; }
+ }
+ public static final Nonterminal.XsignNonterminal XSIGN = XsignNonterminal.getInstance();
+
+ public static class Xassignmentstmt51ReductionNonterminal extends Nonterminal
+ {
+ private Xassignmentstmt51ReductionNonterminal() {;} // Singleton
+ private static Xassignmentstmt51ReductionNonterminal singletonInstance = null;
+ public static final Xassignmentstmt51ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xassignmentstmt51ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAssignmentStmt@51>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 4; }
+
+ int getGoToRow() { return 369; }
+ }
+ public static final Nonterminal.Xassignmentstmt51ReductionNonterminal XASSIGNMENTSTMT51 = Xassignmentstmt51ReductionNonterminal.getInstance();
+
+ public static class XlogicalconstantNonterminal extends Nonterminal
+ {
+ private XlogicalconstantNonterminal() {;} // Singleton
+ private static XlogicalconstantNonterminal singletonInstance = null;
+ public static final XlogicalconstantNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XlogicalconstantNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xLogicalConstant>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 370; }
+ }
+ public static final Nonterminal.XlogicalconstantNonterminal XLOGICALCONSTANT = XlogicalconstantNonterminal.getInstance();
+
+ public static class Xcoperand30ReductionNonterminal extends Nonterminal
+ {
+ private Xcoperand30ReductionNonterminal() {;} // Singleton
+ private static Xcoperand30ReductionNonterminal singletonInstance = null;
+ public static final Xcoperand30ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xcoperand30ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xCOperand@30>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 3; }
+
+ int getGoToRow() { return 371; }
+ }
+ public static final Nonterminal.Xcoperand30ReductionNonterminal XCOPERAND30 = Xcoperand30ReductionNonterminal.getInstance();
+
+ public static class XuffactorNonterminal extends Nonterminal
+ {
+ private XuffactorNonterminal() {;} // Singleton
+ private static XuffactorNonterminal singletonInstance = null;
+ public static final XuffactorNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XuffactorNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xUFFactor>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 372; }
+ }
+ public static final Nonterminal.XuffactorNonterminal XUFFACTOR = XuffactorNonterminal.getInstance();
+
+ public static class XcomputedgotostmtNonterminal extends Nonterminal
+ {
+ private XcomputedgotostmtNonterminal() {;} // Singleton
+ private static XcomputedgotostmtNonterminal singletonInstance = null;
+ public static final XcomputedgotostmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcomputedgotostmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xComputedGotoStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 373; }
+ }
+ public static final Nonterminal.XcomputedgotostmtNonterminal XCOMPUTEDGOTOSTMT = XcomputedgotostmtNonterminal.getInstance();
+
+ public static class XsubscriptNonterminal extends Nonterminal
+ {
+ private XsubscriptNonterminal() {;} // Singleton
+ private static XsubscriptNonterminal singletonInstance = null;
+ public static final XsubscriptNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XsubscriptNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSubscript>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 374; }
+ }
+ public static final Nonterminal.XsubscriptNonterminal XSUBSCRIPT = XsubscriptNonterminal.getInstance();
+
+ public static class XstructurecomponentNonterminal extends Nonterminal
+ {
+ private XstructurecomponentNonterminal() {;} // Singleton
+ private static XstructurecomponentNonterminal singletonInstance = null;
+ public static final XstructurecomponentNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XstructurecomponentNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xStructureComponent>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 375; }
+ }
+ public static final Nonterminal.XstructurecomponentNonterminal XSTRUCTURECOMPONENT = XstructurecomponentNonterminal.getInstance();
+
+ public static class Xendfunctionstmt81ReductionNonterminal extends Nonterminal
+ {
+ private Xendfunctionstmt81ReductionNonterminal() {;} // Singleton
+ private static Xendfunctionstmt81ReductionNonterminal singletonInstance = null;
+ public static final Xendfunctionstmt81ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xendfunctionstmt81ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndFunctionStmt@81>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 376; }
+ }
+ public static final Nonterminal.Xendfunctionstmt81ReductionNonterminal XENDFUNCTIONSTMT81 = Xendfunctionstmt81ReductionNonterminal.getInstance();
+
+ public static class Xprimary22ReductionNonterminal extends Nonterminal
+ {
+ private Xprimary22ReductionNonterminal() {;} // Singleton
+ private static Xprimary22ReductionNonterminal singletonInstance = null;
+ public static final Xprimary22ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xprimary22ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xPrimary@22>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 377; }
+ }
+ public static final Nonterminal.Xprimary22ReductionNonterminal XPRIMARY22 = Xprimary22ReductionNonterminal.getInstance();
+
+ public static class Xpointerstmt13ReductionNonterminal extends Nonterminal
+ {
+ private Xpointerstmt13ReductionNonterminal() {;} // Singleton
+ private static Xpointerstmt13ReductionNonterminal singletonInstance = null;
+ public static final Xpointerstmt13ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xpointerstmt13ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xPointerStmt@13>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 2; }
+
+ int getGoToRow() { return 378; }
+ }
+ public static final Nonterminal.Xpointerstmt13ReductionNonterminal XPOINTERSTMT13 = Xpointerstmt13ReductionNonterminal.getInstance();
+
+ public static class Xendprogramstmt69ReductionNonterminal extends Nonterminal
+ {
+ private Xendprogramstmt69ReductionNonterminal() {;} // Singleton
+ private static Xendprogramstmt69ReductionNonterminal singletonInstance = null;
+ public static final Xendprogramstmt69ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xendprogramstmt69ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndProgramStmt@69>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 379; }
+ }
+ public static final Nonterminal.Xendprogramstmt69ReductionNonterminal XENDPROGRAMSTMT69 = Xendprogramstmt69ReductionNonterminal.getInstance();
+
+ public static class XaccessstmtNonterminal extends Nonterminal
+ {
+ private XaccessstmtNonterminal() {;} // Singleton
+ private static XaccessstmtNonterminal singletonInstance = null;
+ public static final XaccessstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XaccessstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAccessStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 380; }
+ }
+ public static final Nonterminal.XaccessstmtNonterminal XACCESSSTMT = XaccessstmtNonterminal.getInstance();
+
+ public static class XusenameNonterminal extends Nonterminal
+ {
+ private XusenameNonterminal() {;} // Singleton
+ private static XusenameNonterminal singletonInstance = null;
+ public static final XusenameNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XusenameNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xUseName>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 381; }
+ }
+ public static final Nonterminal.XusenameNonterminal XUSENAME = XusenameNonterminal.getInstance();
+
+ public static class Xoroperand44ReductionNonterminal extends Nonterminal
+ {
+ private Xoroperand44ReductionNonterminal() {;} // Singleton
+ private static Xoroperand44ReductionNonterminal singletonInstance = null;
+ public static final Xoroperand44ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xoroperand44ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xOrOperand@44>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 2; }
+
+ int getGoToRow() { return 382; }
+ }
+ public static final Nonterminal.Xoroperand44ReductionNonterminal XOROPERAND44 = Xoroperand44ReductionNonterminal.getInstance();
+
+ public static class XwherebodyconstructblockNonterminal extends Nonterminal
+ {
+ private XwherebodyconstructblockNonterminal() {;} // Singleton
+ private static XwherebodyconstructblockNonterminal singletonInstance = null;
+ public static final XwherebodyconstructblockNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XwherebodyconstructblockNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xWhereBodyConstructBlock>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 383; }
+ }
+ public static final Nonterminal.XwherebodyconstructblockNonterminal XWHEREBODYCONSTRUCTBLOCK = XwherebodyconstructblockNonterminal.getInstance();
+
+ public static class XmaskedelsewherestmtNonterminal extends Nonterminal
+ {
+ private XmaskedelsewherestmtNonterminal() {;} // Singleton
+ private static XmaskedelsewherestmtNonterminal singletonInstance = null;
+ public static final XmaskedelsewherestmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XmaskedelsewherestmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xMaskedElsewhereStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 384; }
+ }
+ public static final Nonterminal.XmaskedelsewherestmtNonterminal XMASKEDELSEWHERESTMT = XmaskedelsewherestmtNonterminal.getInstance();
+
+ public static class XallocateobjectNonterminal extends Nonterminal
+ {
+ private XallocateobjectNonterminal() {;} // Singleton
+ private static XallocateobjectNonterminal singletonInstance = null;
+ public static final XallocateobjectNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XallocateobjectNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAllocateObject>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 385; }
+ }
+ public static final Nonterminal.XallocateobjectNonterminal XALLOCATEOBJECT = XallocateobjectNonterminal.getInstance();
+
+ public static class XsfexprlistNonterminal extends Nonterminal
+ {
+ private XsfexprlistNonterminal() {;} // Singleton
+ private static XsfexprlistNonterminal singletonInstance = null;
+ public static final XsfexprlistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XsfexprlistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSFExprList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 386; }
+ }
+ public static final Nonterminal.XsfexprlistNonterminal XSFEXPRLIST = XsfexprlistNonterminal.getInstance();
+
+ public static class Xufprimary33ReductionNonterminal extends Nonterminal
+ {
+ private Xufprimary33ReductionNonterminal() {;} // Singleton
+ private static Xufprimary33ReductionNonterminal singletonInstance = null;
+ public static final Xufprimary33ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xufprimary33ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xUFPrimary@33>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 3; }
+
+ int getGoToRow() { return 387; }
+ }
+ public static final Nonterminal.Xufprimary33ReductionNonterminal XUFPRIMARY33 = Xufprimary33ReductionNonterminal.getInstance();
+
+ public static class XmodulesubprogrampartconstructNonterminal extends Nonterminal
+ {
+ private XmodulesubprogrampartconstructNonterminal() {;} // Singleton
+ private static XmodulesubprogrampartconstructNonterminal singletonInstance = null;
+ public static final XmodulesubprogrampartconstructNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XmodulesubprogrampartconstructNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xModuleSubprogramPartConstruct>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 388; }
+ }
+ public static final Nonterminal.XmodulesubprogrampartconstructNonterminal XMODULESUBPROGRAMPARTCONSTRUCT = XmodulesubprogrampartconstructNonterminal.getInstance();
+
+ public static class Xassignmentstmt50ReductionNonterminal extends Nonterminal
+ {
+ private Xassignmentstmt50ReductionNonterminal() {;} // Singleton
+ private static Xassignmentstmt50ReductionNonterminal singletonInstance = null;
+ public static final Xassignmentstmt50ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xassignmentstmt50ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAssignmentStmt@50>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 389; }
+ }
+ public static final Nonterminal.Xassignmentstmt50ReductionNonterminal XASSIGNMENTSTMT50 = Xassignmentstmt50ReductionNonterminal.getInstance();
+
+ public static class XendwherestmtNonterminal extends Nonterminal
+ {
+ private XendwherestmtNonterminal() {;} // Singleton
+ private static XendwherestmtNonterminal singletonInstance = null;
+ public static final XendwherestmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XendwherestmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndWhereStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 390; }
+ }
+ public static final Nonterminal.XendwherestmtNonterminal XENDWHERESTMT = XendwherestmtNonterminal.getInstance();
+
+ public static class XinterfaceblockNonterminal extends Nonterminal
+ {
+ private XinterfaceblockNonterminal() {;} // Singleton
+ private static XinterfaceblockNonterminal singletonInstance = null;
+ public static final XinterfaceblockNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XinterfaceblockNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xInterfaceBlock>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 391; }
+ }
+ public static final Nonterminal.XinterfaceblockNonterminal XINTERFACEBLOCK = XinterfaceblockNonterminal.getInstance();
+
+ public static class XfunctionprefixNonterminal extends Nonterminal
+ {
+ private XfunctionprefixNonterminal() {;} // Singleton
+ private static XfunctionprefixNonterminal singletonInstance = null;
+ public static final XfunctionprefixNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XfunctionprefixNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xFunctionPrefix>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 392; }
+ }
+ public static final Nonterminal.XfunctionprefixNonterminal XFUNCTIONPREFIX = XfunctionprefixNonterminal.getInstance();
+
+ public static class Xendfunctionstmt80ReductionNonterminal extends Nonterminal
+ {
+ private Xendfunctionstmt80ReductionNonterminal() {;} // Singleton
+ private static Xendfunctionstmt80ReductionNonterminal singletonInstance = null;
+ public static final Xendfunctionstmt80ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xendfunctionstmt80ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndFunctionStmt@80>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 393; }
+ }
+ public static final Nonterminal.Xendfunctionstmt80ReductionNonterminal XENDFUNCTIONSTMT80 = Xendfunctionstmt80ReductionNonterminal.getInstance();
+
+ public static class Xprimary21ReductionNonterminal extends Nonterminal
+ {
+ private Xprimary21ReductionNonterminal() {;} // Singleton
+ private static Xprimary21ReductionNonterminal singletonInstance = null;
+ public static final Xprimary21ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xprimary21ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xPrimary@21>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 4; }
+
+ int getGoToRow() { return 394; }
+ }
+ public static final Nonterminal.Xprimary21ReductionNonterminal XPRIMARY21 = Xprimary21ReductionNonterminal.getInstance();
+
+ public static class Xendprogramstmt68ReductionNonterminal extends Nonterminal
+ {
+ private Xendprogramstmt68ReductionNonterminal() {;} // Singleton
+ private static Xendprogramstmt68ReductionNonterminal singletonInstance = null;
+ public static final Xendprogramstmt68ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xendprogramstmt68ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndProgramStmt@68>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 395; }
+ }
+ public static final Nonterminal.Xendprogramstmt68ReductionNonterminal XENDPROGRAMSTMT68 = Xendprogramstmt68ReductionNonterminal.getInstance();
+
+ public static class XpointerassignmentstmtNonterminal extends Nonterminal
+ {
+ private XpointerassignmentstmtNonterminal() {;} // Singleton
+ private static XpointerassignmentstmtNonterminal singletonInstance = null;
+ public static final XpointerassignmentstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XpointerassignmentstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xPointerAssignmentStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 396; }
+ }
+ public static final Nonterminal.XpointerassignmentstmtNonterminal XPOINTERASSIGNMENTSTMT = XpointerassignmentstmtNonterminal.getInstance();
+
+ public static class Xdataref17ReductionNonterminal extends Nonterminal
+ {
+ private Xdataref17ReductionNonterminal() {;} // Singleton
+ private static Xdataref17ReductionNonterminal singletonInstance = null;
+ public static final Xdataref17ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xdataref17ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xDataRef@17>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 3; }
+
+ int getGoToRow() { return 397; }
+ }
+ public static final Nonterminal.Xdataref17ReductionNonterminal XDATAREF17 = Xdataref17ReductionNonterminal.getInstance();
+
+ public static class XconditionalbodyNonterminal extends Nonterminal
+ {
+ private XconditionalbodyNonterminal() {;} // Singleton
+ private static XconditionalbodyNonterminal singletonInstance = null;
+ public static final XconditionalbodyNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XconditionalbodyNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xConditionalBody>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 398; }
+ }
+ public static final Nonterminal.XconditionalbodyNonterminal XCONDITIONALBODY = XconditionalbodyNonterminal.getInstance();
+
+ public static class XdataidoobjectlistNonterminal extends Nonterminal
+ {
+ private XdataidoobjectlistNonterminal() {;} // Singleton
+ private static XdataidoobjectlistNonterminal singletonInstance = null;
+ public static final XdataidoobjectlistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XdataidoobjectlistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xDataIDoObjectList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 399; }
+ }
+ public static final Nonterminal.XdataidoobjectlistNonterminal XDATAIDOOBJECTLIST = XdataidoobjectlistNonterminal.getInstance();
+
+ public static class XassignmentstmtNonterminal extends Nonterminal
+ {
+ private XassignmentstmtNonterminal() {;} // Singleton
+ private static XassignmentstmtNonterminal singletonInstance = null;
+ public static final XassignmentstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XassignmentstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAssignmentStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 400; }
+ }
+ public static final Nonterminal.XassignmentstmtNonterminal XASSIGNMENTSTMT = XassignmentstmtNonterminal.getInstance();
+
+ public static class XallocatestmtNonterminal extends Nonterminal
+ {
+ private XallocatestmtNonterminal() {;} // Singleton
+ private static XallocatestmtNonterminal singletonInstance = null;
+ public static final XallocatestmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XallocatestmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAllocateStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 401; }
+ }
+ public static final Nonterminal.XallocatestmtNonterminal XALLOCATESTMT = XallocatestmtNonterminal.getInstance();
+
+ public static class Xlevel3expr40ReductionNonterminal extends Nonterminal
+ {
+ private Xlevel3expr40ReductionNonterminal() {;} // Singleton
+ private static Xlevel3expr40ReductionNonterminal singletonInstance = null;
+ public static final Xlevel3expr40ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xlevel3expr40ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xLevel3Expr@40>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 2; }
+
+ int getGoToRow() { return 402; }
+ }
+ public static final Nonterminal.Xlevel3expr40ReductionNonterminal XLEVEL3EXPR40 = Xlevel3expr40ReductionNonterminal.getInstance();
+
+ public static class XcomponentattrspeclistNonterminal extends Nonterminal
+ {
+ private XcomponentattrspeclistNonterminal() {;} // Singleton
+ private static XcomponentattrspeclistNonterminal singletonInstance = null;
+ public static final XcomponentattrspeclistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcomponentattrspeclistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xComponentAttrSpecList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 403; }
+ }
+ public static final Nonterminal.XcomponentattrspeclistNonterminal XCOMPONENTATTRSPECLIST = XcomponentattrspeclistNonterminal.getInstance();
+
+ public static class XinputimplieddoNonterminal extends Nonterminal
+ {
+ private XinputimplieddoNonterminal() {;} // Singleton
+ private static XinputimplieddoNonterminal singletonInstance = null;
+ public static final XinputimplieddoNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XinputimplieddoNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xInputImpliedDo>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 404; }
+ }
+ public static final Nonterminal.XinputimplieddoNonterminal XINPUTIMPLIEDDO = XinputimplieddoNonterminal.getInstance();
+
+ public static class Xendmodulestmt71ReductionNonterminal extends Nonterminal
+ {
+ private Xendmodulestmt71ReductionNonterminal() {;} // Singleton
+ private static Xendmodulestmt71ReductionNonterminal singletonInstance = null;
+ public static final Xendmodulestmt71ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xendmodulestmt71ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndModuleStmt@71>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 405; }
+ }
+ public static final Nonterminal.Xendmodulestmt71ReductionNonterminal XENDMODULESTMT71 = Xendmodulestmt71ReductionNonterminal.getInstance();
+
+ public static class XforallbodyconstructNonterminal extends Nonterminal
+ {
+ private XforallbodyconstructNonterminal() {;} // Singleton
+ private static XforallbodyconstructNonterminal singletonInstance = null;
+ public static final XforallbodyconstructNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XforallbodyconstructNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xForallBodyConstruct>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 406; }
+ }
+ public static final Nonterminal.XforallbodyconstructNonterminal XFORALLBODYCONSTRUCT = XforallbodyconstructNonterminal.getInstance();
+
+ public static class Xufprimary32ReductionNonterminal extends Nonterminal
+ {
+ private Xufprimary32ReductionNonterminal() {;} // Singleton
+ private static Xufprimary32ReductionNonterminal singletonInstance = null;
+ public static final Xufprimary32ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xufprimary32ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xUFPrimary@32>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 407; }
+ }
+ public static final Nonterminal.Xufprimary32ReductionNonterminal XUFPRIMARY32 = Xufprimary32ReductionNonterminal.getInstance();
+
+ public static class XsubroutineparsNonterminal extends Nonterminal
+ {
+ private XsubroutineparsNonterminal() {;} // Singleton
+ private static XsubroutineparsNonterminal singletonInstance = null;
+ public static final XsubroutineparsNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XsubroutineparsNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSubroutinePars>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 408; }
+ }
+ public static final Nonterminal.XsubroutineparsNonterminal XSUBROUTINEPARS = XsubroutineparsNonterminal.getInstance();
+
+ public static class Xendblockdatastmt76ReductionNonterminal extends Nonterminal
+ {
+ private Xendblockdatastmt76ReductionNonterminal() {;} // Singleton
+ private static Xendblockdatastmt76ReductionNonterminal singletonInstance = null;
+ public static final Xendblockdatastmt76ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xendblockdatastmt76ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndBlockDataStmt@76>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 409; }
+ }
+ public static final Nonterminal.Xendblockdatastmt76ReductionNonterminal XENDBLOCKDATASTMT76 = Xendblockdatastmt76ReductionNonterminal.getInstance();
+
+ public static class Xendsubroutinestmt84ReductionNonterminal extends Nonterminal
+ {
+ private Xendsubroutinestmt84ReductionNonterminal() {;} // Singleton
+ private static Xendsubroutinestmt84ReductionNonterminal singletonInstance = null;
+ public static final Xendsubroutinestmt84ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xendsubroutinestmt84ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndSubroutineStmt@84>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 410; }
+ }
+ public static final Nonterminal.Xendsubroutinestmt84ReductionNonterminal XENDSUBROUTINESTMT84 = Xendsubroutinestmt84ReductionNonterminal.getInstance();
+
+ public static class XdeferredshapespeclistNonterminal extends Nonterminal
+ {
+ private XdeferredshapespeclistNonterminal() {;} // Singleton
+ private static XdeferredshapespeclistNonterminal singletonInstance = null;
+ public static final XdeferredshapespeclistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XdeferredshapespeclistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xDeferredShapeSpecList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 411; }
+ }
+ public static final Nonterminal.XdeferredshapespeclistNonterminal XDEFERREDSHAPESPECLIST = XdeferredshapespeclistNonterminal.getInstance();
+
+ public static class XprimaryNonterminal extends Nonterminal
+ {
+ private XprimaryNonterminal() {;} // Singleton
+ private static XprimaryNonterminal singletonInstance = null;
+ public static final XprimaryNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XprimaryNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xPrimary>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 412; }
+ }
+ public static final Nonterminal.XprimaryNonterminal XPRIMARY = XprimaryNonterminal.getInstance();
+
+ public static class Xprimary20ReductionNonterminal extends Nonterminal
+ {
+ private Xprimary20ReductionNonterminal() {;} // Singleton
+ private static Xprimary20ReductionNonterminal singletonInstance = null;
+ public static final Xprimary20ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xprimary20ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xPrimary@20>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 413; }
+ }
+ public static final Nonterminal.Xprimary20ReductionNonterminal XPRIMARY20 = Xprimary20ReductionNonterminal.getInstance();
+
+ public static class XparameterstmtNonterminal extends Nonterminal
+ {
+ private XparameterstmtNonterminal() {;} // Singleton
+ private static XparameterstmtNonterminal singletonInstance = null;
+ public static final XparameterstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XparameterstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xParameterStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 414; }
+ }
+ public static final Nonterminal.XparameterstmtNonterminal XPARAMETERSTMT = XparameterstmtNonterminal.getInstance();
+
+ public static class XsavedentityNonterminal extends Nonterminal
+ {
+ private XsavedentityNonterminal() {;} // Singleton
+ private static XsavedentityNonterminal singletonInstance = null;
+ public static final XsavedentityNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XsavedentityNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSavedEntity>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 415; }
+ }
+ public static final Nonterminal.XsavedentityNonterminal XSAVEDENTITY = XsavedentityNonterminal.getInstance();
+
+ public static class Xequivoperand45ReductionNonterminal extends Nonterminal
+ {
+ private Xequivoperand45ReductionNonterminal() {;} // Singleton
+ private static Xequivoperand45ReductionNonterminal singletonInstance = null;
+ public static final Xequivoperand45ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xequivoperand45ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEquivOperand@45>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 2; }
+
+ int getGoToRow() { return 416; }
+ }
+ public static final Nonterminal.Xequivoperand45ReductionNonterminal XEQUIVOPERAND45 = Xequivoperand45ReductionNonterminal.getInstance();
+
+ public static class XendinterfacestmtNonterminal extends Nonterminal
+ {
+ private XendinterfacestmtNonterminal() {;} // Singleton
+ private static XendinterfacestmtNonterminal singletonInstance = null;
+ public static final XendinterfacestmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XendinterfacestmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndInterfaceStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 417; }
+ }
+ public static final Nonterminal.XendinterfacestmtNonterminal XENDINTERFACESTMT = XendinterfacestmtNonterminal.getInstance();
+
+ public static class XdoconstructNonterminal extends Nonterminal
+ {
+ private XdoconstructNonterminal() {;} // Singleton
+ private static XdoconstructNonterminal singletonInstance = null;
+ public static final XdoconstructNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XdoconstructNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xDoConstruct>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 418; }
+ }
+ public static final Nonterminal.XdoconstructNonterminal XDOCONSTRUCT = XdoconstructNonterminal.getInstance();
+
+ public static class XcomponentdecllistNonterminal extends Nonterminal
+ {
+ private XcomponentdecllistNonterminal() {;} // Singleton
+ private static XcomponentdecllistNonterminal singletonInstance = null;
+ public static final XcomponentdecllistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcomponentdecllistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xComponentDeclList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 419; }
+ }
+ public static final Nonterminal.XcomponentdecllistNonterminal XCOMPONENTDECLLIST = XcomponentdecllistNonterminal.getInstance();
+
+ public static class XreturnstmtNonterminal extends Nonterminal
+ {
+ private XreturnstmtNonterminal() {;} // Singleton
+ private static XreturnstmtNonterminal singletonInstance = null;
+ public static final XreturnstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XreturnstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xReturnStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 420; }
+ }
+ public static final Nonterminal.XreturnstmtNonterminal XRETURNSTMT = XreturnstmtNonterminal.getInstance();
+
+ public static class Xendmodulestmt70ReductionNonterminal extends Nonterminal
+ {
+ private Xendmodulestmt70ReductionNonterminal() {;} // Singleton
+ private static Xendmodulestmt70ReductionNonterminal singletonInstance = null;
+ public static final Xendmodulestmt70ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xendmodulestmt70ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndModuleStmt@70>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 421; }
+ }
+ public static final Nonterminal.Xendmodulestmt70ReductionNonterminal XENDMODULESTMT70 = Xendmodulestmt70ReductionNonterminal.getInstance();
+
+ public static class XexecutableprogramNonterminal extends Nonterminal
+ {
+ private XexecutableprogramNonterminal() {;} // Singleton
+ private static XexecutableprogramNonterminal singletonInstance = null;
+ public static final XexecutableprogramNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XexecutableprogramNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xExecutableProgram>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 422; }
+ }
+ public static final Nonterminal.XexecutableprogramNonterminal XEXECUTABLEPROGRAM = XexecutableprogramNonterminal.getInstance();
+
+ public static class XlbldefNonterminal extends Nonterminal
+ {
+ private XlbldefNonterminal() {;} // Singleton
+ private static XlbldefNonterminal singletonInstance = null;
+ public static final XlbldefNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XlbldefNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xLblDef>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 423; }
+ }
+ public static final Nonterminal.XlbldefNonterminal XLBLDEF = XlbldefNonterminal.getInstance();
+
+ public static class Xufprimary31ReductionNonterminal extends Nonterminal
+ {
+ private Xufprimary31ReductionNonterminal() {;} // Singleton
+ private static Xufprimary31ReductionNonterminal singletonInstance = null;
+ public static final Xufprimary31ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xufprimary31ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xUFPrimary@31>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 4; }
+
+ int getGoToRow() { return 424; }
+ }
+ public static final Nonterminal.Xufprimary31ReductionNonterminal XUFPRIMARY31 = Xufprimary31ReductionNonterminal.getInstance();
+
+ public static class XbodyNonterminal extends Nonterminal
+ {
+ private XbodyNonterminal() {;} // Singleton
+ private static XbodyNonterminal singletonInstance = null;
+ public static final XbodyNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XbodyNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xBody>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 425; }
+ }
+ public static final Nonterminal.XbodyNonterminal XBODY = XbodyNonterminal.getInstance();
+
+ public static class Xsfdataref18ReductionNonterminal extends Nonterminal
+ {
+ private Xsfdataref18ReductionNonterminal() {;} // Singleton
+ private static Xsfdataref18ReductionNonterminal singletonInstance = null;
+ public static final Xsfdataref18ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xsfdataref18ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSFDataRef@18>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 3; }
+
+ int getGoToRow() { return 426; }
+ }
+ public static final Nonterminal.Xsfdataref18ReductionNonterminal XSFDATAREF18 = Xsfdataref18ReductionNonterminal.getInstance();
+
+ public static class Xendblockdatastmt75ReductionNonterminal extends Nonterminal
+ {
+ private Xendblockdatastmt75ReductionNonterminal() {;} // Singleton
+ private static Xendblockdatastmt75ReductionNonterminal singletonInstance = null;
+ public static final Xendblockdatastmt75ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xendblockdatastmt75ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndBlockDataStmt@75>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 427; }
+ }
+ public static final Nonterminal.Xendblockdatastmt75ReductionNonterminal XENDBLOCKDATASTMT75 = Xendblockdatastmt75ReductionNonterminal.getInstance();
+
+ public static class XscalarvariableNonterminal extends Nonterminal
+ {
+ private XscalarvariableNonterminal() {;} // Singleton
+ private static XscalarvariableNonterminal singletonInstance = null;
+ public static final XscalarvariableNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XscalarvariableNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xScalarVariable>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 428; }
+ }
+ public static final Nonterminal.XscalarvariableNonterminal XSCALARVARIABLE = XscalarvariableNonterminal.getInstance();
+
+ public static class Xendsubroutinestmt83ReductionNonterminal extends Nonterminal
+ {
+ private Xendsubroutinestmt83ReductionNonterminal() {;} // Singleton
+ private static Xendsubroutinestmt83ReductionNonterminal singletonInstance = null;
+ public static final Xendsubroutinestmt83ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xendsubroutinestmt83ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndSubroutineStmt@83>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 429; }
+ }
+ public static final Nonterminal.Xendsubroutinestmt83ReductionNonterminal XENDSUBROUTINESTMT83 = Xendsubroutinestmt83ReductionNonterminal.getInstance();
+
+ public static class Xoutputitemlist1Nonterminal extends Nonterminal
+ {
+ private Xoutputitemlist1Nonterminal() {;} // Singleton
+ private static Xoutputitemlist1Nonterminal singletonInstance = null;
+ public static final Xoutputitemlist1Nonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xoutputitemlist1Nonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xOutputItemList1>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 430; }
+ }
+ public static final Nonterminal.Xoutputitemlist1Nonterminal XOUTPUTITEMLIST1 = Xoutputitemlist1Nonterminal.getInstance();
+
+ public static class XsfdummyargnamelistNonterminal extends Nonterminal
+ {
+ private XsfdummyargnamelistNonterminal() {;} // Singleton
+ private static XsfdummyargnamelistNonterminal singletonInstance = null;
+ public static final XsfdummyargnamelistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XsfdummyargnamelistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSFDummyArgNameList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 431; }
+ }
+ public static final Nonterminal.XsfdummyargnamelistNonterminal XSFDUMMYARGNAMELIST = XsfdummyargnamelistNonterminal.getInstance();
+
+ public static class XentrynameNonterminal extends Nonterminal
+ {
+ private XentrynameNonterminal() {;} // Singleton
+ private static XentrynameNonterminal singletonInstance = null;
+ public static final XentrynameNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XentrynameNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEntryName>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 432; }
+ }
+ public static final Nonterminal.XentrynameNonterminal XENTRYNAME = XentrynameNonterminal.getInstance();
+
+ public static class XcoperandNonterminal extends Nonterminal
+ {
+ private XcoperandNonterminal() {;} // Singleton
+ private static XcoperandNonterminal singletonInstance = null;
+ public static final XcoperandNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcoperandNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xCOperand>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 433; }
+ }
+ public static final Nonterminal.XcoperandNonterminal XCOPERAND = XcoperandNonterminal.getInstance();
+
+ public static class XfieldselectorNonterminal extends Nonterminal
+ {
+ private XfieldselectorNonterminal() {;} // Singleton
+ private static XfieldselectorNonterminal singletonInstance = null;
+ public static final XfieldselectorNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XfieldselectorNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xFieldSelector>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 434; }
+ }
+ public static final Nonterminal.XfieldselectorNonterminal XFIELDSELECTOR = XfieldselectorNonterminal.getInstance();
+
+ public static class XrdfmtidNonterminal extends Nonterminal
+ {
+ private XrdfmtidNonterminal() {;} // Singleton
+ private static XrdfmtidNonterminal singletonInstance = null;
+ public static final XrdfmtidNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XrdfmtidNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xRdFmtId>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 435; }
+ }
+ public static final Nonterminal.XrdfmtidNonterminal XRDFMTID = XrdfmtidNonterminal.getInstance();
+
+ public static class XdeclarationconstructNonterminal extends Nonterminal
+ {
+ private XdeclarationconstructNonterminal() {;} // Singleton
+ private static XdeclarationconstructNonterminal singletonInstance = null;
+ public static final XdeclarationconstructNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XdeclarationconstructNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xDeclarationConstruct>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 436; }
+ }
+ public static final Nonterminal.XdeclarationconstructNonterminal XDECLARATIONCONSTRUCT = XdeclarationconstructNonterminal.getInstance();
+
+ public static class XsavedentitylistNonterminal extends Nonterminal
+ {
+ private XsavedentitylistNonterminal() {;} // Singleton
+ private static XsavedentitylistNonterminal singletonInstance = null;
+ public static final XsavedentitylistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XsavedentitylistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSavedEntityList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 437; }
+ }
+ public static final Nonterminal.XsavedentitylistNonterminal XSAVEDENTITYLIST = XsavedentitylistNonterminal.getInstance();
+
+ public static class Xmultoperand36ReductionNonterminal extends Nonterminal
+ {
+ private Xmultoperand36ReductionNonterminal() {;} // Singleton
+ private static Xmultoperand36ReductionNonterminal singletonInstance = null;
+ public static final Xmultoperand36ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xmultoperand36ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xMultOperand@36>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 2; }
+
+ int getGoToRow() { return 438; }
+ }
+ public static final Nonterminal.Xmultoperand36ReductionNonterminal XMULTOPERAND36 = Xmultoperand36ReductionNonterminal.getInstance();
+
+ public static class Xsavestmt10ReductionNonterminal extends Nonterminal
+ {
+ private Xsavestmt10ReductionNonterminal() {;} // Singleton
+ private static Xsavestmt10ReductionNonterminal singletonInstance = null;
+ public static final Xsavestmt10ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xsavestmt10ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSaveStmt@10>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 2; }
+
+ int getGoToRow() { return 439; }
+ }
+ public static final Nonterminal.Xsavestmt10ReductionNonterminal XSAVESTMT10 = Xsavestmt10ReductionNonterminal.getInstance();
+
+ public static class XfunctionsubprogramNonterminal extends Nonterminal
+ {
+ private XfunctionsubprogramNonterminal() {;} // Singleton
+ private static XfunctionsubprogramNonterminal singletonInstance = null;
+ public static final XfunctionsubprogramNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XfunctionsubprogramNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xFunctionSubprogram>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 440; }
+ }
+ public static final Nonterminal.XfunctionsubprogramNonterminal XFUNCTIONSUBPROGRAM = XfunctionsubprogramNonterminal.getInstance();
+
+ public static class XwhereconstructstmtNonterminal extends Nonterminal
+ {
+ private XwhereconstructstmtNonterminal() {;} // Singleton
+ private static XwhereconstructstmtNonterminal singletonInstance = null;
+ public static final XwhereconstructstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XwhereconstructstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xWhereConstructStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 441; }
+ }
+ public static final Nonterminal.XwhereconstructstmtNonterminal XWHERECONSTRUCTSTMT = XwhereconstructstmtNonterminal.getInstance();
+
+ public static class XprocedurenamelistNonterminal extends Nonterminal
+ {
+ private XprocedurenamelistNonterminal() {;} // Singleton
+ private static XprocedurenamelistNonterminal singletonInstance = null;
+ public static final XprocedurenamelistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XprocedurenamelistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xProcedureNameList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 442; }
+ }
+ public static final Nonterminal.XprocedurenamelistNonterminal XPROCEDURENAMELIST = XprocedurenamelistNonterminal.getInstance();
+
+ public static class XendmodulestmtNonterminal extends Nonterminal
+ {
+ private XendmodulestmtNonterminal() {;} // Singleton
+ private static XendmodulestmtNonterminal singletonInstance = null;
+ public static final XendmodulestmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XendmodulestmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndModuleStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 443; }
+ }
+ public static final Nonterminal.XendmodulestmtNonterminal XENDMODULESTMT = XendmodulestmtNonterminal.getInstance();
+
+ public static class XnotopNonterminal extends Nonterminal
+ {
+ private XnotopNonterminal() {;} // Singleton
+ private static XnotopNonterminal singletonInstance = null;
+ public static final XnotopNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XnotopNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xNotOp>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 444; }
+ }
+ public static final Nonterminal.XnotopNonterminal XNOTOP = XnotopNonterminal.getInstance();
+
+ public static class XrenameNonterminal extends Nonterminal
+ {
+ private XrenameNonterminal() {;} // Singleton
+ private static XrenameNonterminal singletonInstance = null;
+ public static final XrenameNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XrenameNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xRename>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 445; }
+ }
+ public static final Nonterminal.XrenameNonterminal XRENAME = XrenameNonterminal.getInstance();
+
+ public static class XandopNonterminal extends Nonterminal
+ {
+ private XandopNonterminal() {;} // Singleton
+ private static XandopNonterminal singletonInstance = null;
+ public static final XandopNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XandopNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xAndOp>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 446; }
+ }
+ public static final Nonterminal.XandopNonterminal XANDOP = XandopNonterminal.getInstance();
+
+ public static class XufexprNonterminal extends Nonterminal
+ {
+ private XufexprNonterminal() {;} // Singleton
+ private static XufexprNonterminal singletonInstance = null;
+ public static final XufexprNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XufexprNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xUFExpr>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 447; }
+ }
+ public static final Nonterminal.XufexprNonterminal XUFEXPR = XufexprNonterminal.getInstance();
+
+ public static class XcommonblockobjectNonterminal extends Nonterminal
+ {
+ private XcommonblockobjectNonterminal() {;} // Singleton
+ private static XcommonblockobjectNonterminal singletonInstance = null;
+ public static final XcommonblockobjectNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcommonblockobjectNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xCommonBlockObject>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 448; }
+ }
+ public static final Nonterminal.XcommonblockobjectNonterminal XCOMMONBLOCKOBJECT = XcommonblockobjectNonterminal.getInstance();
+
+ public static class XfunctionparsNonterminal extends Nonterminal
+ {
+ private XfunctionparsNonterminal() {;} // Singleton
+ private static XfunctionparsNonterminal singletonInstance = null;
+ public static final XfunctionparsNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XfunctionparsNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xFunctionPars>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 449; }
+ }
+ public static final Nonterminal.XfunctionparsNonterminal XFUNCTIONPARS = XfunctionparsNonterminal.getInstance();
+
+ public static class Xendblockdatastmt74ReductionNonterminal extends Nonterminal
+ {
+ private Xendblockdatastmt74ReductionNonterminal() {;} // Singleton
+ private static Xendblockdatastmt74ReductionNonterminal singletonInstance = null;
+ public static final Xendblockdatastmt74ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xendblockdatastmt74ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndBlockDataStmt@74>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 450; }
+ }
+ public static final Nonterminal.Xendblockdatastmt74ReductionNonterminal XENDBLOCKDATASTMT74 = Xendblockdatastmt74ReductionNonterminal.getInstance();
+
+ public static class XobsoleteexecutionpartconstructNonterminal extends Nonterminal
+ {
+ private XobsoleteexecutionpartconstructNonterminal() {;} // Singleton
+ private static XobsoleteexecutionpartconstructNonterminal singletonInstance = null;
+ public static final XobsoleteexecutionpartconstructNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XobsoleteexecutionpartconstructNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xObsoleteExecutionPartConstruct>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 451; }
+ }
+ public static final Nonterminal.XobsoleteexecutionpartconstructNonterminal XOBSOLETEEXECUTIONPARTCONSTRUCT = XobsoleteexecutionpartconstructNonterminal.getInstance();
+
+ public static class XwritestmtNonterminal extends Nonterminal
+ {
+ private XwritestmtNonterminal() {;} // Singleton
+ private static XwritestmtNonterminal singletonInstance = null;
+ public static final XwritestmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XwritestmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xWriteStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 452; }
+ }
+ public static final Nonterminal.XwritestmtNonterminal XWRITESTMT = XwritestmtNonterminal.getInstance();
+
+ public static class XpointerstmtobjectNonterminal extends Nonterminal
+ {
+ private XpointerstmtobjectNonterminal() {;} // Singleton
+ private static XpointerstmtobjectNonterminal singletonInstance = null;
+ public static final XpointerstmtobjectNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XpointerstmtobjectNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xPointerStmtObject>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 453; }
+ }
+ public static final Nonterminal.XpointerstmtobjectNonterminal XPOINTERSTMTOBJECT = XpointerstmtobjectNonterminal.getInstance();
+
+ public static class XfunctionrangeNonterminal extends Nonterminal
+ {
+ private XfunctionrangeNonterminal() {;} // Singleton
+ private static XfunctionrangeNonterminal singletonInstance = null;
+ public static final XfunctionrangeNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XfunctionrangeNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xFunctionRange>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 454; }
+ }
+ public static final Nonterminal.XfunctionrangeNonterminal XFUNCTIONRANGE = XfunctionrangeNonterminal.getInstance();
+
+ public static class XblockdatabodyNonterminal extends Nonterminal
+ {
+ private XblockdatabodyNonterminal() {;} // Singleton
+ private static XblockdatabodyNonterminal singletonInstance = null;
+ public static final XblockdatabodyNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XblockdatabodyNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xBlockDataBody>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 455; }
+ }
+ public static final Nonterminal.XblockdatabodyNonterminal XBLOCKDATABODY = XblockdatabodyNonterminal.getInstance();
+
+ public static class XarrayallocationlistNonterminal extends Nonterminal
+ {
+ private XarrayallocationlistNonterminal() {;} // Singleton
+ private static XarrayallocationlistNonterminal singletonInstance = null;
+ public static final XarrayallocationlistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XarrayallocationlistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xArrayAllocationList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 456; }
+ }
+ public static final Nonterminal.XarrayallocationlistNonterminal XARRAYALLOCATIONLIST = XarrayallocationlistNonterminal.getInstance();
+
+ public static class XmodulebodyNonterminal extends Nonterminal
+ {
+ private XmodulebodyNonterminal() {;} // Singleton
+ private static XmodulebodyNonterminal singletonInstance = null;
+ public static final XmodulebodyNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XmodulebodyNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xModuleBody>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 457; }
+ }
+ public static final Nonterminal.XmodulebodyNonterminal XMODULEBODY = XmodulebodyNonterminal.getInstance();
+
+ public static class XformatstmtNonterminal extends Nonterminal
+ {
+ private XformatstmtNonterminal() {;} // Singleton
+ private static XformatstmtNonterminal singletonInstance = null;
+ public static final XformatstmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XformatstmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xFormatStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 458; }
+ }
+ public static final Nonterminal.XformatstmtNonterminal XFORMATSTMT = XformatstmtNonterminal.getInstance();
+
+ public static class XmultoperandNonterminal extends Nonterminal
+ {
+ private XmultoperandNonterminal() {;} // Singleton
+ private static XmultoperandNonterminal singletonInstance = null;
+ public static final XmultoperandNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XmultoperandNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xMultOperand>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 459; }
+ }
+ public static final Nonterminal.XmultoperandNonterminal XMULTOPERAND = XmultoperandNonterminal.getInstance();
+
+ public static class XsectionsubscriptlistNonterminal extends Nonterminal
+ {
+ private XsectionsubscriptlistNonterminal() {;} // Singleton
+ private static XsectionsubscriptlistNonterminal singletonInstance = null;
+ public static final XsectionsubscriptlistNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XsectionsubscriptlistNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSectionSubscriptList>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 460; }
+ }
+ public static final Nonterminal.XsectionsubscriptlistNonterminal XSECTIONSUBSCRIPTLIST = XsectionsubscriptlistNonterminal.getInstance();
+
+ public static class XeditelementNonterminal extends Nonterminal
+ {
+ private XeditelementNonterminal() {;} // Singleton
+ private static XeditelementNonterminal singletonInstance = null;
+ public static final XeditelementNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XeditelementNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEditElement>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 461; }
+ }
+ public static final Nonterminal.XeditelementNonterminal XEDITELEMENT = XeditelementNonterminal.getInstance();
+
+ public static class XcaseselectorNonterminal extends Nonterminal
+ {
+ private XcaseselectorNonterminal() {;} // Singleton
+ private static XcaseselectorNonterminal singletonInstance = null;
+ public static final XcaseselectorNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XcaseselectorNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xCaseSelector>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 462; }
+ }
+ public static final Nonterminal.XcaseselectorNonterminal XCASESELECTOR = XcaseselectorNonterminal.getInstance();
+
+ public static class XsfprimaryNonterminal extends Nonterminal
+ {
+ private XsfprimaryNonterminal() {;} // Singleton
+ private static XsfprimaryNonterminal singletonInstance = null;
+ public static final XsfprimaryNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XsfprimaryNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xSFPrimary>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 463; }
+ }
+ public static final Nonterminal.XsfprimaryNonterminal XSFPRIMARY = XsfprimaryNonterminal.getInstance();
+
+ public static class Xendblockdatastmt73ReductionNonterminal extends Nonterminal
+ {
+ private Xendblockdatastmt73ReductionNonterminal() {;} // Singleton
+ private static Xendblockdatastmt73ReductionNonterminal singletonInstance = null;
+ public static final Xendblockdatastmt73ReductionNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new Xendblockdatastmt73ReductionNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xEndBlockDataStmt@73>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 464; }
+ }
+ public static final Nonterminal.Xendblockdatastmt73ReductionNonterminal XENDBLOCKDATASTMT73 = Xendblockdatastmt73ReductionNonterminal.getInstance();
+
+ public static class XelsewherestmtNonterminal extends Nonterminal
+ {
+ private XelsewherestmtNonterminal() {;} // Singleton
+ private static XelsewherestmtNonterminal singletonInstance = null;
+ public static final XelsewherestmtNonterminal getInstance() { if (singletonInstance == null) singletonInstance = new XelsewherestmtNonterminal(); return singletonInstance; }
+
+ public String getDescription() { return "<xElsewhereStmt>"; }
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ int getGoToRow() { return 465; }
+ }
+ public static final Nonterminal.XelsewherestmtNonterminal XELSEWHERESTMT = XelsewherestmtNonterminal.getInstance();
+
+ public String toString()
+ {
+ return getDescription();
+ }
+}
diff --git a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/Parser.java b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/Parser.java
new file mode 100644
index 00000000..59034f65
--- /dev/null
+++ b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/Parser.java
@@ -0,0 +1,224 @@
+// Generated by Rex version 1.0 alpha 5
+
+package org.eclipse.photran.internal.core.f95modelparser;
+
+import java.util.ArrayList;
+
+/**
+ * An LALR(1) parser
+ */
+public class Parser
+{
+ /**
+ * The lexical analyzer
+ */
+ protected ILexer lexer;
+
+ /**
+ * This becomes set to true when we finish parsing
+ */
+ protected boolean doneParsing;
+
+ /**
+ * This is set to true if parsing finishes prematurely due to a syntax error
+ */
+ protected boolean error;
+
+ /**
+ * The current state of the parser
+ */
+ protected int currentState;
+
+ /**
+ * The next token in the input stream
+ */
+ protected Token lookaheadToken;
+
+ /**
+ * Although textbook descriptions of LR parsers suggest a stack containing
+ * both states and symbols (terminals and nonterminals), we maintain three
+ * parallel stacks: one for states, one for symbols, and one for values
+ * returned by user code. This one holds symbols (terminals and nonterminals).
+ */
+ protected ArrayList symbolStack;
+
+ /**
+ * Although textbook descriptions of LR parsers suggest a stack containing
+ * both states and symbols (terminals and nonterminals), we maintain three
+ * parallel stacks: one for states, one for symbols, and one for values
+ * returned by user code. This one holds states.
+ */
+ protected ArrayList stateStack;
+
+ /**
+ * Although textbook descriptions of LR parsers suggest a stack containing
+ * both states and symbols (terminals and nonterminals), we maintain three
+ * parallel stacks: one for states, one for symbols, and one for values
+ * returned by user code. This one holds these values. When a reduction
+ * is performed and user code like <code>return $1 + $2</code> is executed, this
+ * is where the values of $1 and $2 come from.
+ */
+ protected ArrayList valueStack;
+
+ /**
+ * Provides access to an ErrorRecovery object, which attempts to
+ * recover from syntax errors via error productions in the grammar
+ */
+ protected ErrorRecovery errorRecovery;
+
+ /**
+ * The userActions field refers to an instance of the ParserUserActions
+ * class, which contains all of the user code
+ */
+ protected AbstractParserAction userActions;
+
+ /**
+ * The entrypoint to the parser.
+ */
+ public Object parse(ILexer lexicalAnalyzer, AbstractParserAction parseAction) throws Exception
+ {
+ errorRecovery = new ErrorRecovery(this);
+ lexer = lexicalAnalyzer;
+ userActions = parseAction;
+ parsingTable = new ParsingTable(parseAction);
+
+ // Initialize the parsing stacks
+ symbolStack = new ArrayList();
+ stateStack = new ArrayList();
+ valueStack = new ArrayList();
+
+ // Run any user-specified initialization code
+ userActions.initialize();
+
+ // The parser starts in state 0
+ currentState = 0;
+ stateStack.add(new Integer(currentState));
+ readNextToken();
+ doneParsing = false;
+ error = false;
+
+ // Repeatedly determine the next action based on the current state
+ while (!doneParsing)
+ parsingTable.processLookaheadFor(this);
+
+ // Run any user-specified deinitialization code
+ userActions.deinitialize();
+
+ // Return the value from the last piece of user code
+ // executed in a completed parse (the value associated with the
+ // start symbol), or null if parsing failed.
+ return (error || valueStack.isEmpty()) ? null : (Object)valueStack.get(valueStack.size()-1);
+ }
+
+ void readNextToken() throws Exception
+ {
+ lookaheadToken = lexer.yylex();
+ }
+
+ /**
+ * Shift the next input symbol and change the parser to the given state.
+ */
+ void shiftAndGoToState(int state) throws Exception
+ {
+ symbolStack.add(lookaheadToken.getTerminal());
+ stateStack.add(new Integer(state));
+ valueStack.add(lookaheadToken);
+ currentState = state;
+ readNextToken();
+ }
+
+ /**
+ * Reduce the top symbolsToPop symbols on the stack to the given nonterminal,
+ * and change the parser state accordingly. This overload is called when reducing to an
+ * ordinary nonterminal.
+ */
+ void reduce(Nonterminal nonterminalToReduceTo, int symbolsToPop)
+ {
+ for (int i = 0; i < symbolsToPop; i++)
+ {
+ symbolStack.remove(symbolStack.size() - 1);
+ stateStack.remove(stateStack.size() - 1);
+ }
+ currentState = ((Integer)stateStack.get(stateStack.size()-1)).intValue();
+ symbolStack.add(nonterminalToReduceTo);
+ stateStack.add(new Integer(parsingTable.getGoToFor(nonterminalToReduceTo, this)));
+ currentState = ((Integer)stateStack.get(stateStack.size()-1)).intValue();
+ }
+
+ /**
+ * Reduce the top symbolsToPop symbols on the stack to the given nonterminal,
+ * and change the parser state accordingly. This overload is called when reducing to a
+ * nonterminal derived from an EBNF expression: these nonterminals push their own values
+ * onto the valueStack, and so the reduce method does not need to.
+ */
+ void reduce(Nonterminal nonterminalToReduceTo, int symbolsToPop, Object nonterminalValue)
+ {
+ for (int i = 0; i < symbolsToPop; i++)
+ {
+ symbolStack.remove(symbolStack.size() - 1);
+ stateStack.remove(stateStack.size() - 1);
+ }
+ currentState = ((Integer)stateStack.get(stateStack.size()-1)).intValue();
+ symbolStack.add(nonterminalToReduceTo);
+ valueStack.add(nonterminalValue);
+ stateStack.add(new Integer(parsingTable.getGoToFor(nonterminalToReduceTo, this)));
+ currentState = ((Integer)stateStack.get(stateStack.size()-1)).intValue();
+ }
+
+ /**
+ * Indicate that parsing is complete
+ */
+ void accept()
+ {
+ doneParsing = true;
+ }
+
+ /**
+ * Stop parsing: A syntax error was found
+ */
+ void syntaxError() throws Exception
+ {
+ if (errorRecovery.recover()) return;
+ doneParsing = true;
+ error = true;
+
+ // Run any user-specified syntax error code
+ userActions.syntaxError();
+ throw new SyntaxError(lookaheadToken);
+ }
+
+ /**
+ * Retrieve the parser's current lookahead token
+ */
+ Token getLookaheadToken() { return lookaheadToken; }
+
+ /**
+ * Retrieve the parser's symbol stack
+ */
+ ArrayList getSymbolStack() { return symbolStack; }
+
+ /**
+ * Retrieve the parser's state stack
+ */
+ ArrayList getStateStack() { return stateStack; }
+
+ /**
+ * Retrieve the parser's value stack
+ */
+ ArrayList getValueStack() { return valueStack; }
+
+ /**
+ * Retrieve the object containing all of the user code
+ */
+ AbstractParserAction getUserActions() { return userActions; }
+
+ /**
+ * Stores the parsing table
+ */
+ protected ParsingTable parsingTable;
+
+ /**
+ * Retrieve the parser's current state (an integer)
+ */
+ int getCurrentState() { return currentState; }
+}
diff --git a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/ParserSymbol.java b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/ParserSymbol.java
new file mode 100644
index 00000000..a90386d4
--- /dev/null
+++ b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/ParserSymbol.java
@@ -0,0 +1,12 @@
+// Generated by Rex version 1.0 alpha 5
+
+package org.eclipse.photran.internal.core.f95modelparser;
+
+
+/**
+ * Common superclass for Token and Nonterminal
+ */
+public interface ParserSymbol
+{
+ public abstract String getDescription();
+}
diff --git a/org.eclipse.photran.core/parser/org/eclipse/photran/internal/core/f95parser/SemanticError.java b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/SemanticError.java
index cdd7c042..e6537256 100644
--- a/org.eclipse.photran.core/parser/org/eclipse/photran/internal/core/f95parser/SemanticError.java
+++ b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/SemanticError.java
@@ -1,4 +1,6 @@
-package org.eclipse.photran.internal.core.f95parser;
+package org.eclipse.photran.internal.core.f95modelparser;
+
+import org.eclipse.photran.internal.core.f95modelparser.Token;
/**
* Represents a program error discovered after lexing and parsing have
diff --git a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/SyntaxError.java b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/SyntaxError.java
new file mode 100644
index 00000000..198c7a06
--- /dev/null
+++ b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/SyntaxError.java
@@ -0,0 +1,44 @@
+package org.eclipse.photran.internal.core.f95modelparser;
+
+import org.eclipse.photran.internal.core.f95modelparser.Token;
+
+/**
+ * Thrown when the parser encounters a syntax error.
+ * Gives access to the token on which the error occurred, which includes
+ * line and column information.
+ *
+ * @author joverbey
+ */
+public final class SyntaxError extends Exception {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * The token being processed when a syntax error was detected
+ */
+ private Token errorToken;
+
+ /**
+ * Creates a new <code>SyntaxError</code>, indicating that the input file
+ * did not match the Fortran grammar.
+ *
+ * @param errorToken
+ * The token being processed when a syntax error was detected.
+ * This is used to create a message to display to the user.
+ */
+ public SyntaxError(Token errorToken) {
+ super("Syntax error (" + errorToken.getFilename() + ", line "
+ + errorToken.getStartLine() + ", column "
+ + errorToken.getStartCol() + ": Unexpected "
+ + errorToken.getTerminal().getDescription() + " \""
+ + errorToken.getText() + "\"");
+ this.errorToken = errorToken;
+ }
+
+ /**
+ * @return the token being processed when the syntax error was detected
+ */
+ public Token getErrorToken() {
+ return errorToken;
+ }
+}
diff --git a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/Terminal.java b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/Terminal.java
new file mode 100644
index 00000000..3d400231
--- /dev/null
+++ b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/Terminal.java
@@ -0,0 +1,2319 @@
+// Generated by Rex version 1.0 alpha 5
+
+package org.eclipse.photran.internal.core.f95modelparser;
+
+
+/**
+ * Enumerates the terminal symbols in the grammar being parsed
+ */
+public abstract class Terminal extends TerminalOrNonterminal
+{
+ /**
+ * Returns the row of the parser's Action table associated with this nonterminal
+ */
+ public abstract int getActionRow();
+
+ /**
+ * Returns a string describing the terminal
+ */
+ public abstract String getDescription();
+
+ int getNumberOfSymbolsOnValueStack() { return 1; }
+
+ public static class TWhileTerminal extends Terminal
+ {
+ private TWhileTerminal() {;} // Singleton
+ private static TWhileTerminal singletonInstance = null;
+ public static final TWhileTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TWhileTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_WHILE"; }
+
+ public int getActionRow() { return 0; }
+ }
+ public static final Terminal.TWhileTerminal T_WHILE = TWhileTerminal.getInstance();
+
+ public static class TNeqvTerminal extends Terminal
+ {
+ private TNeqvTerminal() {;} // Singleton
+ private static TNeqvTerminal singletonInstance = null;
+ public static final TNeqvTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TNeqvTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_NEQV"; }
+
+ public int getActionRow() { return 1; }
+ }
+ public static final Terminal.TNeqvTerminal T_NEQV = TNeqvTerminal.getInstance();
+
+ public static class TOptionalTerminal extends Terminal
+ {
+ private TOptionalTerminal() {;} // Singleton
+ private static TOptionalTerminal singletonInstance = null;
+ public static final TOptionalTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TOptionalTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_OPTIONAL"; }
+
+ public int getActionRow() { return 2; }
+ }
+ public static final Terminal.TOptionalTerminal T_OPTIONAL = TOptionalTerminal.getInstance();
+
+ public static class TNoneTerminal extends Terminal
+ {
+ private TNoneTerminal() {;} // Singleton
+ private static TNoneTerminal singletonInstance = null;
+ public static final TNoneTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TNoneTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_NONE"; }
+
+ public int getActionRow() { return 3; }
+ }
+ public static final Terminal.TNoneTerminal T_NONE = TNoneTerminal.getInstance();
+
+ public static class TXimplTerminal extends Terminal
+ {
+ private TXimplTerminal() {;} // Singleton
+ private static TXimplTerminal singletonInstance = null;
+ public static final TXimplTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TXimplTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_xImpl"; }
+
+ public int getActionRow() { return 4; }
+ }
+ public static final Terminal.TXimplTerminal T_XIMPL = TXimplTerminal.getInstance();
+
+ public static class TBconTerminal extends Terminal
+ {
+ private TBconTerminal() {;} // Singleton
+ private static TBconTerminal singletonInstance = null;
+ public static final TBconTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TBconTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_BCON"; }
+
+ public int getActionRow() { return 5; }
+ }
+ public static final Terminal.TBconTerminal T_BCON = TBconTerminal.getInstance();
+
+ public static class TEndforallTerminal extends Terminal
+ {
+ private TEndforallTerminal() {;} // Singleton
+ private static TEndforallTerminal singletonInstance = null;
+ public static final TEndforallTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TEndforallTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_ENDFORALL"; }
+
+ public int getActionRow() { return 6; }
+ }
+ public static final Terminal.TEndforallTerminal T_ENDFORALL = TEndforallTerminal.getInstance();
+
+ public static class TCloseTerminal extends Terminal
+ {
+ private TCloseTerminal() {;} // Singleton
+ private static TCloseTerminal singletonInstance = null;
+ public static final TCloseTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TCloseTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_CLOSE"; }
+
+ public int getActionRow() { return 7; }
+ }
+ public static final Terminal.TCloseTerminal T_CLOSE = TCloseTerminal.getInstance();
+
+ public static class TThenTerminal extends Terminal
+ {
+ private TThenTerminal() {;} // Singleton
+ private static TThenTerminal singletonInstance = null;
+ public static final TThenTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TThenTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_THEN"; }
+
+ public int getActionRow() { return 8; }
+ }
+ public static final Terminal.TThenTerminal T_THEN = TThenTerminal.getInstance();
+
+ public static class TFalseTerminal extends Terminal
+ {
+ private TFalseTerminal() {;} // Singleton
+ private static TFalseTerminal singletonInstance = null;
+ public static final TFalseTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TFalseTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_FALSE"; }
+
+ public int getActionRow() { return 9; }
+ }
+ public static final Terminal.TFalseTerminal T_FALSE = TFalseTerminal.getInstance();
+
+ public static class TSelectTerminal extends Terminal
+ {
+ private TSelectTerminal() {;} // Singleton
+ private static TSelectTerminal singletonInstance = null;
+ public static final TSelectTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TSelectTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_SELECT"; }
+
+ public int getActionRow() { return 10; }
+ }
+ public static final Terminal.TSelectTerminal T_SELECT = TSelectTerminal.getInstance();
+
+ public static class TPrintTerminal extends Terminal
+ {
+ private TPrintTerminal() {;} // Singleton
+ private static TPrintTerminal singletonInstance = null;
+ public static final TPrintTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TPrintTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_PRINT"; }
+
+ public int getActionRow() { return 11; }
+ }
+ public static final Terminal.TPrintTerminal T_PRINT = TPrintTerminal.getInstance();
+
+ public static class TDirecteqTerminal extends Terminal
+ {
+ private TDirecteqTerminal() {;} // Singleton
+ private static TDirecteqTerminal singletonInstance = null;
+ public static final TDirecteqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TDirecteqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_DIRECTEQ"; }
+
+ public int getActionRow() { return 12; }
+ }
+ public static final Terminal.TDirecteqTerminal T_DIRECTEQ = TDirecteqTerminal.getInstance();
+
+ public static class TSizeeqTerminal extends Terminal
+ {
+ private TSizeeqTerminal() {;} // Singleton
+ private static TSizeeqTerminal singletonInstance = null;
+ public static final TSizeeqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TSizeeqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_SIZEEQ"; }
+
+ public int getActionRow() { return 13; }
+ }
+ public static final Terminal.TSizeeqTerminal T_SIZEEQ = TSizeeqTerminal.getInstance();
+
+ public static class TSelectcaseTerminal extends Terminal
+ {
+ private TSelectcaseTerminal() {;} // Singleton
+ private static TSelectcaseTerminal singletonInstance = null;
+ public static final TSelectcaseTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TSelectcaseTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_SELECTCASE"; }
+
+ public int getActionRow() { return 14; }
+ }
+ public static final Terminal.TSelectcaseTerminal T_SELECTCASE = TSelectcaseTerminal.getInstance();
+
+ public static class TAssignTerminal extends Terminal
+ {
+ private TAssignTerminal() {;} // Singleton
+ private static TAssignTerminal singletonInstance = null;
+ public static final TAssignTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TAssignTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_ASSIGN"; }
+
+ public int getActionRow() { return 15; }
+ }
+ public static final Terminal.TAssignTerminal T_ASSIGN = TAssignTerminal.getInstance();
+
+ public static class TReturnTerminal extends Terminal
+ {
+ private TReturnTerminal() {;} // Singleton
+ private static TReturnTerminal singletonInstance = null;
+ public static final TReturnTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TReturnTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_RETURN"; }
+
+ public int getActionRow() { return 16; }
+ }
+ public static final Terminal.TReturnTerminal T_RETURN = TReturnTerminal.getInstance();
+
+ public static class TNextreceqTerminal extends Terminal
+ {
+ private TNextreceqTerminal() {;} // Singleton
+ private static TNextreceqTerminal singletonInstance = null;
+ public static final TNextreceqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TNextreceqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_NEXTRECEQ"; }
+
+ public int getActionRow() { return 17; }
+ }
+ public static final Terminal.TNextreceqTerminal T_NEXTRECEQ = TNextreceqTerminal.getInstance();
+
+ public static class TProcedureTerminal extends Terminal
+ {
+ private TProcedureTerminal() {;} // Singleton
+ private static TProcedureTerminal singletonInstance = null;
+ public static final TProcedureTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TProcedureTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_PROCEDURE"; }
+
+ public int getActionRow() { return 18; }
+ }
+ public static final Terminal.TProcedureTerminal T_PROCEDURE = TProcedureTerminal.getInstance();
+
+ public static class TPauseTerminal extends Terminal
+ {
+ private TPauseTerminal() {;} // Singleton
+ private static TPauseTerminal singletonInstance = null;
+ public static final TPauseTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TPauseTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_PAUSE"; }
+
+ public int getActionRow() { return 19; }
+ }
+ public static final Terminal.TPauseTerminal T_PAUSE = TPauseTerminal.getInstance();
+
+ public static class TIntegerTerminal extends Terminal
+ {
+ private TIntegerTerminal() {;} // Singleton
+ private static TIntegerTerminal singletonInstance = null;
+ public static final TIntegerTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TIntegerTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_INTEGER"; }
+
+ public int getActionRow() { return 20; }
+ }
+ public static final Terminal.TIntegerTerminal T_INTEGER = TIntegerTerminal.getInstance();
+
+ public static class TNullifyTerminal extends Terminal
+ {
+ private TNullifyTerminal() {;} // Singleton
+ private static TNullifyTerminal singletonInstance = null;
+ public static final TNullifyTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TNullifyTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_NULLIFY"; }
+
+ public int getActionRow() { return 21; }
+ }
+ public static final Terminal.TNullifyTerminal T_NULLIFY = TNullifyTerminal.getInstance();
+
+ public static class TModuleTerminal extends Terminal
+ {
+ private TModuleTerminal() {;} // Singleton
+ private static TModuleTerminal singletonInstance = null;
+ public static final TModuleTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TModuleTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_MODULE"; }
+
+ public int getActionRow() { return 22; }
+ }
+ public static final Terminal.TModuleTerminal T_MODULE = TModuleTerminal.getInstance();
+
+ public static class TParameterTerminal extends Terminal
+ {
+ private TParameterTerminal() {;} // Singleton
+ private static TParameterTerminal singletonInstance = null;
+ public static final TParameterTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TParameterTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_PARAMETER"; }
+
+ public int getActionRow() { return 23; }
+ }
+ public static final Terminal.TParameterTerminal T_PARAMETER = TParameterTerminal.getInstance();
+
+ public static class TLparenslashTerminal extends Terminal
+ {
+ private TLparenslashTerminal() {;} // Singleton
+ private static TLparenslashTerminal singletonInstance = null;
+ public static final TLparenslashTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TLparenslashTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_LPARENSLASH"; }
+
+ public int getActionRow() { return 24; }
+ }
+ public static final Terminal.TLparenslashTerminal T_LPARENSLASH = TLparenslashTerminal.getInstance();
+
+ public static class TNameeqTerminal extends Terminal
+ {
+ private TNameeqTerminal() {;} // Singleton
+ private static TNameeqTerminal singletonInstance = null;
+ public static final TNameeqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TNameeqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_NAMEEQ"; }
+
+ public int getActionRow() { return 25; }
+ }
+ public static final Terminal.TNameeqTerminal T_NAMEEQ = TNameeqTerminal.getInstance();
+
+ public static class TInoutTerminal extends Terminal
+ {
+ private TInoutTerminal() {;} // Singleton
+ private static TInoutTerminal singletonInstance = null;
+ public static final TInoutTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TInoutTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_INOUT"; }
+
+ public int getActionRow() { return 26; }
+ }
+ public static final Terminal.TInoutTerminal T_INOUT = TInoutTerminal.getInstance();
+
+ public static class TContainsTerminal extends Terminal
+ {
+ private TContainsTerminal() {;} // Singleton
+ private static TContainsTerminal singletonInstance = null;
+ public static final TContainsTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TContainsTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_CONTAINS"; }
+
+ public int getActionRow() { return 27; }
+ }
+ public static final Terminal.TContainsTerminal T_CONTAINS = TContainsTerminal.getInstance();
+
+ public static class TDimensionTerminal extends Terminal
+ {
+ private TDimensionTerminal() {;} // Singleton
+ private static TDimensionTerminal singletonInstance = null;
+ public static final TDimensionTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TDimensionTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_DIMENSION"; }
+
+ public int getActionRow() { return 28; }
+ }
+ public static final Terminal.TDimensionTerminal T_DIMENSION = TDimensionTerminal.getInstance();
+
+ public static class TUnderscoreTerminal extends Terminal
+ {
+ private TUnderscoreTerminal() {;} // Singleton
+ private static TUnderscoreTerminal singletonInstance = null;
+ public static final TUnderscoreTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TUnderscoreTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_UNDERSCORE"; }
+
+ public int getActionRow() { return 29; }
+ }
+ public static final Terminal.TUnderscoreTerminal T_UNDERSCORE = TUnderscoreTerminal.getInstance();
+
+ public static class TFmteqTerminal extends Terminal
+ {
+ private TFmteqTerminal() {;} // Singleton
+ private static TFmteqTerminal singletonInstance = null;
+ public static final TFmteqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TFmteqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_FMTEQ"; }
+
+ public int getActionRow() { return 30; }
+ }
+ public static final Terminal.TFmteqTerminal T_FMTEQ = TFmteqTerminal.getInstance();
+
+ public static class TExternalTerminal extends Terminal
+ {
+ private TExternalTerminal() {;} // Singleton
+ private static TExternalTerminal singletonInstance = null;
+ public static final TExternalTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TExternalTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_EXTERNAL"; }
+
+ public int getActionRow() { return 31; }
+ }
+ public static final Terminal.TExternalTerminal T_EXTERNAL = TExternalTerminal.getInstance();
+
+ public static class TInterfaceTerminal extends Terminal
+ {
+ private TInterfaceTerminal() {;} // Singleton
+ private static TInterfaceTerminal singletonInstance = null;
+ public static final TInterfaceTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TInterfaceTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_INTERFACE"; }
+
+ public int getActionRow() { return 32; }
+ }
+ public static final Terminal.TInterfaceTerminal T_INTERFACE = TInterfaceTerminal.getInstance();
+
+ public static class TAllocateTerminal extends Terminal
+ {
+ private TAllocateTerminal() {;} // Singleton
+ private static TAllocateTerminal singletonInstance = null;
+ public static final TAllocateTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TAllocateTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_ALLOCATE"; }
+
+ public int getActionRow() { return 33; }
+ }
+ public static final Terminal.TAllocateTerminal T_ALLOCATE = TAllocateTerminal.getInstance();
+
+ public static class TEqvTerminal extends Terminal
+ {
+ private TEqvTerminal() {;} // Singleton
+ private static TEqvTerminal singletonInstance = null;
+ public static final TEqvTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TEqvTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_EQV"; }
+
+ public int getActionRow() { return 34; }
+ }
+ public static final Terminal.TEqvTerminal T_EQV = TEqvTerminal.getInstance();
+
+ public static class TCharacterTerminal extends Terminal
+ {
+ private TCharacterTerminal() {;} // Singleton
+ private static TCharacterTerminal singletonInstance = null;
+ public static final TCharacterTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TCharacterTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_CHARACTER"; }
+
+ public int getActionRow() { return 35; }
+ }
+ public static final Terminal.TCharacterTerminal T_CHARACTER = TCharacterTerminal.getInstance();
+
+ public static class TTypeTerminal extends Terminal
+ {
+ private TTypeTerminal() {;} // Singleton
+ private static TTypeTerminal singletonInstance = null;
+ public static final TTypeTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TTypeTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_TYPE"; }
+
+ public int getActionRow() { return 36; }
+ }
+ public static final Terminal.TTypeTerminal T_TYPE = TTypeTerminal.getInstance();
+
+ public static class TSlashrparenTerminal extends Terminal
+ {
+ private TSlashrparenTerminal() {;} // Singleton
+ private static TSlashrparenTerminal singletonInstance = null;
+ public static final TSlashrparenTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TSlashrparenTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_SLASHRPAREN"; }
+
+ public int getActionRow() { return 37; }
+ }
+ public static final Terminal.TSlashrparenTerminal T_SLASHRPAREN = TSlashrparenTerminal.getInstance();
+
+ public static class TProgramTerminal extends Terminal
+ {
+ private TProgramTerminal() {;} // Singleton
+ private static TProgramTerminal singletonInstance = null;
+ public static final TProgramTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TProgramTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_PROGRAM"; }
+
+ public int getActionRow() { return 38; }
+ }
+ public static final Terminal.TProgramTerminal T_PROGRAM = TProgramTerminal.getInstance();
+
+ public static class TExitTerminal extends Terminal
+ {
+ private TExitTerminal() {;} // Singleton
+ private static TExitTerminal singletonInstance = null;
+ public static final TExitTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TExitTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_EXIT"; }
+
+ public int getActionRow() { return 39; }
+ }
+ public static final Terminal.TExitTerminal T_EXIT = TExitTerminal.getInstance();
+
+ public static class TPlusTerminal extends Terminal
+ {
+ private TPlusTerminal() {;} // Singleton
+ private static TPlusTerminal singletonInstance = null;
+ public static final TPlusTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TPlusTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_PLUS"; }
+
+ public int getActionRow() { return 40; }
+ }
+ public static final Terminal.TPlusTerminal T_PLUS = TPlusTerminal.getInstance();
+
+ public static class TPadeqTerminal extends Terminal
+ {
+ private TPadeqTerminal() {;} // Singleton
+ private static TPadeqTerminal singletonInstance = null;
+ public static final TPadeqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TPadeqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_PADEQ"; }
+
+ public int getActionRow() { return 41; }
+ }
+ public static final Terminal.TPadeqTerminal T_PADEQ = TPadeqTerminal.getInstance();
+
+ public static class TInTerminal extends Terminal
+ {
+ private TInTerminal() {;} // Singleton
+ private static TInTerminal singletonInstance = null;
+ public static final TInTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TInTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_IN"; }
+
+ public int getActionRow() { return 42; }
+ }
+ public static final Terminal.TInTerminal T_IN = TInTerminal.getInstance();
+
+ public static class TForallTerminal extends Terminal
+ {
+ private TForallTerminal() {;} // Singleton
+ private static TForallTerminal singletonInstance = null;
+ public static final TForallTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TForallTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_FORALL"; }
+
+ public int getActionRow() { return 43; }
+ }
+ public static final Terminal.TForallTerminal T_FORALL = TForallTerminal.getInstance();
+
+ public static class TCommonTerminal extends Terminal
+ {
+ private TCommonTerminal() {;} // Singleton
+ private static TCommonTerminal singletonInstance = null;
+ public static final TCommonTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TCommonTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_COMMON"; }
+
+ public int getActionRow() { return 44; }
+ }
+ public static final Terminal.TCommonTerminal T_COMMON = TCommonTerminal.getInstance();
+
+ public static class TDelimeqTerminal extends Terminal
+ {
+ private TDelimeqTerminal() {;} // Singleton
+ private static TDelimeqTerminal singletonInstance = null;
+ public static final TDelimeqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TDelimeqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_DELIMEQ"; }
+
+ public int getActionRow() { return 45; }
+ }
+ public static final Terminal.TDelimeqTerminal T_DELIMEQ = TDelimeqTerminal.getInstance();
+
+ public static class TDconTerminal extends Terminal
+ {
+ private TDconTerminal() {;} // Singleton
+ private static TDconTerminal singletonInstance = null;
+ public static final TDconTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TDconTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_DCON"; }
+
+ public int getActionRow() { return 46; }
+ }
+ public static final Terminal.TDconTerminal T_DCON = TDconTerminal.getInstance();
+
+ public static class TIfTerminal extends Terminal
+ {
+ private TIfTerminal() {;} // Singleton
+ private static TIfTerminal singletonInstance = null;
+ public static final TIfTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TIfTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_IF"; }
+
+ public int getActionRow() { return 47; }
+ }
+ public static final Terminal.TIfTerminal T_IF = TIfTerminal.getInstance();
+
+ public static class TSlashslashTerminal extends Terminal
+ {
+ private TSlashslashTerminal() {;} // Singleton
+ private static TSlashslashTerminal singletonInstance = null;
+ public static final TSlashslashTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TSlashslashTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_SLASHSLASH"; }
+
+ public int getActionRow() { return 48; }
+ }
+ public static final Terminal.TSlashslashTerminal T_SLASHSLASH = TSlashslashTerminal.getInstance();
+
+ public static class TEqeqTerminal extends Terminal
+ {
+ private TEqeqTerminal() {;} // Singleton
+ private static TEqeqTerminal singletonInstance = null;
+ public static final TEqeqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TEqeqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_EQEQ"; }
+
+ public int getActionRow() { return 49; }
+ }
+ public static final Terminal.TEqeqTerminal T_EQEQ = TEqeqTerminal.getInstance();
+
+ public static class TEqualsTerminal extends Terminal
+ {
+ private TEqualsTerminal() {;} // Singleton
+ private static TEqualsTerminal singletonInstance = null;
+ public static final TEqualsTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TEqualsTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_EQUALS"; }
+
+ public int getActionRow() { return 50; }
+ }
+ public static final Terminal.TEqualsTerminal T_EQUALS = TEqualsTerminal.getInstance();
+
+ public static class TEndifTerminal extends Terminal
+ {
+ private TEndifTerminal() {;} // Singleton
+ private static TEndifTerminal singletonInstance = null;
+ public static final TEndifTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TEndifTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_ENDIF"; }
+
+ public int getActionRow() { return 51; }
+ }
+ public static final Terminal.TEndifTerminal T_ENDIF = TEndifTerminal.getInstance();
+
+ public static class TIconTerminal extends Terminal
+ {
+ private TIconTerminal() {;} // Singleton
+ private static TIconTerminal singletonInstance = null;
+ public static final TIconTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TIconTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_ICON"; }
+
+ public int getActionRow() { return 52; }
+ }
+ public static final Terminal.TIconTerminal T_ICON = TIconTerminal.getInstance();
+
+ public static class TDoubleTerminal extends Terminal
+ {
+ private TDoubleTerminal() {;} // Singleton
+ private static TDoubleTerminal singletonInstance = null;
+ public static final TDoubleTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TDoubleTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_DOUBLE"; }
+
+ public int getActionRow() { return 53; }
+ }
+ public static final Terminal.TDoubleTerminal T_DOUBLE = TDoubleTerminal.getInstance();
+
+ public static class TBlockdataTerminal extends Terminal
+ {
+ private TBlockdataTerminal() {;} // Singleton
+ private static TBlockdataTerminal singletonInstance = null;
+ public static final TBlockdataTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TBlockdataTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_BLOCKDATA"; }
+
+ public int getActionRow() { return 54; }
+ }
+ public static final Terminal.TBlockdataTerminal T_BLOCKDATA = TBlockdataTerminal.getInstance();
+
+ public static class TOnlyTerminal extends Terminal
+ {
+ private TOnlyTerminal() {;} // Singleton
+ private static TOnlyTerminal singletonInstance = null;
+ public static final TOnlyTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TOnlyTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_ONLY"; }
+
+ public int getActionRow() { return 55; }
+ }
+ public static final Terminal.TOnlyTerminal T_ONLY = TOnlyTerminal.getInstance();
+
+ public static class TAllocatableTerminal extends Terminal
+ {
+ private TAllocatableTerminal() {;} // Singleton
+ private static TAllocatableTerminal singletonInstance = null;
+ public static final TAllocatableTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TAllocatableTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_ALLOCATABLE"; }
+
+ public int getActionRow() { return 56; }
+ }
+ public static final Terminal.TAllocatableTerminal T_ALLOCATABLE = TAllocatableTerminal.getInstance();
+
+ public static class TSconTerminal extends Terminal
+ {
+ private TSconTerminal() {;} // Singleton
+ private static TSconTerminal singletonInstance = null;
+ public static final TSconTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TSconTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_SCON"; }
+
+ public int getActionRow() { return 57; }
+ }
+ public static final Terminal.TSconTerminal T_SCON = TSconTerminal.getInstance();
+
+ public static class TStopTerminal extends Terminal
+ {
+ private TStopTerminal() {;} // Singleton
+ private static TStopTerminal singletonInstance = null;
+ public static final TStopTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TStopTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_STOP"; }
+
+ public int getActionRow() { return 58; }
+ }
+ public static final Terminal.TStopTerminal T_STOP = TStopTerminal.getInstance();
+
+ public static class TPositioneqTerminal extends Terminal
+ {
+ private TPositioneqTerminal() {;} // Singleton
+ private static TPositioneqTerminal singletonInstance = null;
+ public static final TPositioneqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TPositioneqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_POSITIONEQ"; }
+
+ public int getActionRow() { return 59; }
+ }
+ public static final Terminal.TPositioneqTerminal T_POSITIONEQ = TPositioneqTerminal.getInstance();
+
+ public static class TGotoTerminal extends Terminal
+ {
+ private TGotoTerminal() {;} // Singleton
+ private static TGotoTerminal singletonInstance = null;
+ public static final TGotoTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TGotoTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_GOTO"; }
+
+ public int getActionRow() { return 60; }
+ }
+ public static final Terminal.TGotoTerminal T_GOTO = TGotoTerminal.getInstance();
+
+ public static class TXconTerminal extends Terminal
+ {
+ private TXconTerminal() {;} // Singleton
+ private static TXconTerminal singletonInstance = null;
+ public static final TXconTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TXconTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_XCON"; }
+
+ public int getActionRow() { return 61; }
+ }
+ public static final Terminal.TXconTerminal T_XCON = TXconTerminal.getInstance();
+
+ public static class TEndprogramTerminal extends Terminal
+ {
+ private TEndprogramTerminal() {;} // Singleton
+ private static TEndprogramTerminal singletonInstance = null;
+ public static final TEndprogramTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TEndprogramTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_ENDPROGRAM"; }
+
+ public int getActionRow() { return 62; }
+ }
+ public static final Terminal.TEndprogramTerminal T_ENDPROGRAM = TEndprogramTerminal.getInstance();
+
+ public static class TToTerminal extends Terminal
+ {
+ private TToTerminal() {;} // Singleton
+ private static TToTerminal singletonInstance = null;
+ public static final TToTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TToTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_TO"; }
+
+ public int getActionRow() { return 63; }
+ }
+ public static final Terminal.TToTerminal T_TO = TToTerminal.getInstance();
+
+ public static class TIolengtheqTerminal extends Terminal
+ {
+ private TIolengtheqTerminal() {;} // Singleton
+ private static TIolengtheqTerminal singletonInstance = null;
+ public static final TIolengtheqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TIolengtheqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_IOLENGTHEQ"; }
+
+ public int getActionRow() { return 64; }
+ }
+ public static final Terminal.TIolengtheqTerminal T_IOLENGTHEQ = TIolengtheqTerminal.getInstance();
+
+ public static class TKindeqTerminal extends Terminal
+ {
+ private TKindeqTerminal() {;} // Singleton
+ private static TKindeqTerminal singletonInstance = null;
+ public static final TKindeqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TKindeqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_KINDEQ"; }
+
+ public int getActionRow() { return 65; }
+ }
+ public static final Terminal.TKindeqTerminal T_KINDEQ = TKindeqTerminal.getInstance();
+
+ public static class TSlashTerminal extends Terminal
+ {
+ private TSlashTerminal() {;} // Singleton
+ private static TSlashTerminal singletonInstance = null;
+ public static final TSlashTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TSlashTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_SLASH"; }
+
+ public int getActionRow() { return 66; }
+ }
+ public static final Terminal.TSlashTerminal T_SLASH = TSlashTerminal.getInstance();
+
+ public static class TEndtypeTerminal extends Terminal
+ {
+ private TEndtypeTerminal() {;} // Singleton
+ private static TEndtypeTerminal singletonInstance = null;
+ public static final TEndtypeTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TEndtypeTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_ENDTYPE"; }
+
+ public int getActionRow() { return 67; }
+ }
+ public static final Terminal.TEndtypeTerminal T_ENDTYPE = TEndtypeTerminal.getInstance();
+
+ public static class TEosTerminal extends Terminal
+ {
+ private TEosTerminal() {;} // Singleton
+ private static TEosTerminal singletonInstance = null;
+ public static final TEosTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TEosTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_EOS"; }
+
+ public int getActionRow() { return 68; }
+ }
+ public static final Terminal.TEosTerminal T_EOS = TEosTerminal.getInstance();
+
+ public static class TEndinterfaceTerminal extends Terminal
+ {
+ private TEndinterfaceTerminal() {;} // Singleton
+ private static TEndinterfaceTerminal singletonInstance = null;
+ public static final TEndinterfaceTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TEndinterfaceTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_ENDINTERFACE"; }
+
+ public int getActionRow() { return 69; }
+ }
+ public static final Terminal.TEndinterfaceTerminal T_ENDINTERFACE = TEndinterfaceTerminal.getInstance();
+
+ public static class TGtTerminal extends Terminal
+ {
+ private TGtTerminal() {;} // Singleton
+ private static TGtTerminal singletonInstance = null;
+ public static final TGtTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TGtTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_GT"; }
+
+ public int getActionRow() { return 70; }
+ }
+ public static final Terminal.TGtTerminal T_GT = TGtTerminal.getInstance();
+
+ public static class TGoTerminal extends Terminal
+ {
+ private TGoTerminal() {;} // Singleton
+ private static TGoTerminal singletonInstance = null;
+ public static final TGoTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TGoTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_GO"; }
+
+ public int getActionRow() { return 71; }
+ }
+ public static final Terminal.TGoTerminal T_GO = TGoTerminal.getInstance();
+
+ public static class TMinusTerminal extends Terminal
+ {
+ private TMinusTerminal() {;} // Singleton
+ private static TMinusTerminal singletonInstance = null;
+ public static final TMinusTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TMinusTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_MINUS"; }
+
+ public int getActionRow() { return 72; }
+ }
+ public static final Terminal.TMinusTerminal T_MINUS = TMinusTerminal.getInstance();
+
+ public static class TWriteTerminal extends Terminal
+ {
+ private TWriteTerminal() {;} // Singleton
+ private static TWriteTerminal singletonInstance = null;
+ public static final TWriteTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TWriteTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_WRITE"; }
+
+ public int getActionRow() { return 73; }
+ }
+ public static final Terminal.TWriteTerminal T_WRITE = TWriteTerminal.getInstance();
+
+ public static class TCaseTerminal extends Terminal
+ {
+ private TCaseTerminal() {;} // Singleton
+ private static TCaseTerminal singletonInstance = null;
+ public static final TCaseTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TCaseTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_CASE"; }
+
+ public int getActionRow() { return 74; }
+ }
+ public static final Terminal.TCaseTerminal T_CASE = TCaseTerminal.getInstance();
+
+ public static class TGeTerminal extends Terminal
+ {
+ private TGeTerminal() {;} // Singleton
+ private static TGeTerminal singletonInstance = null;
+ public static final TGeTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TGeTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_GE"; }
+
+ public int getActionRow() { return 75; }
+ }
+ public static final Terminal.TGeTerminal T_GE = TGeTerminal.getInstance();
+
+ public static class TFormattedeqTerminal extends Terminal
+ {
+ private TFormattedeqTerminal() {;} // Singleton
+ private static TFormattedeqTerminal singletonInstance = null;
+ public static final TFormattedeqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TFormattedeqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_FORMATTEDEQ"; }
+
+ public int getActionRow() { return 76; }
+ }
+ public static final Terminal.TFormattedeqTerminal T_FORMATTEDEQ = TFormattedeqTerminal.getInstance();
+
+ public static class TPublicTerminal extends Terminal
+ {
+ private TPublicTerminal() {;} // Singleton
+ private static TPublicTerminal singletonInstance = null;
+ public static final TPublicTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TPublicTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_PUBLIC"; }
+
+ public int getActionRow() { return 77; }
+ }
+ public static final Terminal.TPublicTerminal T_PUBLIC = TPublicTerminal.getInstance();
+
+ public static class TCommaTerminal extends Terminal
+ {
+ private TCommaTerminal() {;} // Singleton
+ private static TCommaTerminal singletonInstance = null;
+ public static final TCommaTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TCommaTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_COMMA"; }
+
+ public int getActionRow() { return 78; }
+ }
+ public static final Terminal.TCommaTerminal T_COMMA = TCommaTerminal.getInstance();
+
+ public static class TOpenedeqTerminal extends Terminal
+ {
+ private TOpenedeqTerminal() {;} // Singleton
+ private static TOpenedeqTerminal singletonInstance = null;
+ public static final TOpenedeqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TOpenedeqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_OPENEDEQ"; }
+
+ public int getActionRow() { return 79; }
+ }
+ public static final Terminal.TOpenedeqTerminal T_OPENEDEQ = TOpenedeqTerminal.getInstance();
+
+ public static class TDoubleprecisionTerminal extends Terminal
+ {
+ private TDoubleprecisionTerminal() {;} // Singleton
+ private static TDoubleprecisionTerminal singletonInstance = null;
+ public static final TDoubleprecisionTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TDoubleprecisionTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_DOUBLEPRECISION"; }
+
+ public int getActionRow() { return 80; }
+ }
+ public static final Terminal.TDoubleprecisionTerminal T_DOUBLEPRECISION = TDoubleprecisionTerminal.getInstance();
+
+ public static class TEqgreaterthanTerminal extends Terminal
+ {
+ private TEqgreaterthanTerminal() {;} // Singleton
+ private static TEqgreaterthanTerminal singletonInstance = null;
+ public static final TEqgreaterthanTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TEqgreaterthanTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_EQGREATERTHAN"; }
+
+ public int getActionRow() { return 81; }
+ }
+ public static final Terminal.TEqgreaterthanTerminal T_EQGREATERTHAN = TEqgreaterthanTerminal.getInstance();
+
+ public static class TFormeqTerminal extends Terminal
+ {
+ private TFormeqTerminal() {;} // Singleton
+ private static TFormeqTerminal singletonInstance = null;
+ public static final TFormeqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TFormeqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_FORMEQ"; }
+
+ public int getActionRow() { return 82; }
+ }
+ public static final Terminal.TFormeqTerminal T_FORMEQ = TFormeqTerminal.getInstance();
+
+ public static class TPrecisionTerminal extends Terminal
+ {
+ private TPrecisionTerminal() {;} // Singleton
+ private static TPrecisionTerminal singletonInstance = null;
+ public static final TPrecisionTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TPrecisionTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_PRECISION"; }
+
+ public int getActionRow() { return 83; }
+ }
+ public static final Terminal.TPrecisionTerminal T_PRECISION = TPrecisionTerminal.getInstance();
+
+ public static class TFconTerminal extends Terminal
+ {
+ private TFconTerminal() {;} // Singleton
+ private static TFconTerminal singletonInstance = null;
+ public static final TFconTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TFconTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_FCON"; }
+
+ public int getActionRow() { return 84; }
+ }
+ public static final Terminal.TFconTerminal T_FCON = TFconTerminal.getInstance();
+
+ public static class TOperatorTerminal extends Terminal
+ {
+ private TOperatorTerminal() {;} // Singleton
+ private static TOperatorTerminal singletonInstance = null;
+ public static final TOperatorTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TOperatorTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_OPERATOR"; }
+
+ public int getActionRow() { return 85; }
+ }
+ public static final Terminal.TOperatorTerminal T_OPERATOR = TOperatorTerminal.getInstance();
+
+ public static class TImplicitTerminal extends Terminal
+ {
+ private TImplicitTerminal() {;} // Singleton
+ private static TImplicitTerminal singletonInstance = null;
+ public static final TImplicitTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TImplicitTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_IMPLICIT"; }
+
+ public int getActionRow() { return 86; }
+ }
+ public static final Terminal.TImplicitTerminal T_IMPLICIT = TImplicitTerminal.getInstance();
+
+ public static class TNamelistTerminal extends Terminal
+ {
+ private TNamelistTerminal() {;} // Singleton
+ private static TNamelistTerminal singletonInstance = null;
+ public static final TNamelistTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TNamelistTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_NAMELIST"; }
+
+ public int getActionRow() { return 87; }
+ }
+ public static final Terminal.TNamelistTerminal T_NAMELIST = TNamelistTerminal.getInstance();
+
+ public static class TEndblockdataTerminal extends Terminal
+ {
+ private TEndblockdataTerminal() {;} // Singleton
+ private static TEndblockdataTerminal singletonInstance = null;
+ public static final TEndblockdataTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TEndblockdataTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_ENDBLOCKDATA"; }
+
+ public int getActionRow() { return 88; }
+ }
+ public static final Terminal.TEndblockdataTerminal T_ENDBLOCKDATA = TEndblockdataTerminal.getInstance();
+
+ public static class TPconTerminal extends Terminal
+ {
+ private TPconTerminal() {;} // Singleton
+ private static TPconTerminal singletonInstance = null;
+ public static final TPconTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TPconTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_PCON"; }
+
+ public int getActionRow() { return 89; }
+ }
+ public static final Terminal.TPconTerminal T_PCON = TPconTerminal.getInstance();
+
+ public static class TEndTerminal extends Terminal
+ {
+ private TEndTerminal() {;} // Singleton
+ private static TEndTerminal singletonInstance = null;
+ public static final TEndTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TEndTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_END"; }
+
+ public int getActionRow() { return 90; }
+ }
+ public static final Terminal.TEndTerminal T_END = TEndTerminal.getInstance();
+
+ public static class TTrueTerminal extends Terminal
+ {
+ private TTrueTerminal() {;} // Singleton
+ private static TTrueTerminal singletonInstance = null;
+ public static final TTrueTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TTrueTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_TRUE"; }
+
+ public int getActionRow() { return 91; }
+ }
+ public static final Terminal.TTrueTerminal T_TRUE = TTrueTerminal.getInstance();
+
+ public static class TSubroutineTerminal extends Terminal
+ {
+ private TSubroutineTerminal() {;} // Singleton
+ private static TSubroutineTerminal singletonInstance = null;
+ public static final TSubroutineTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TSubroutineTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_SUBROUTINE"; }
+
+ public int getActionRow() { return 92; }
+ }
+ public static final Terminal.TSubroutineTerminal T_SUBROUTINE = TSubroutineTerminal.getInstance();
+
+ public static class TEndsubroutineTerminal extends Terminal
+ {
+ private TEndsubroutineTerminal() {;} // Singleton
+ private static TEndsubroutineTerminal singletonInstance = null;
+ public static final TEndsubroutineTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TEndsubroutineTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_ENDSUBROUTINE"; }
+
+ public int getActionRow() { return 93; }
+ }
+ public static final Terminal.TEndsubroutineTerminal T_ENDSUBROUTINE = TEndsubroutineTerminal.getInstance();
+
+ public static class TZconTerminal extends Terminal
+ {
+ private TZconTerminal() {;} // Singleton
+ private static TZconTerminal singletonInstance = null;
+ public static final TZconTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TZconTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_ZCON"; }
+
+ public int getActionRow() { return 94; }
+ }
+ public static final Terminal.TZconTerminal T_ZCON = TZconTerminal.getInstance();
+
+ public static class TAccesseqTerminal extends Terminal
+ {
+ private TAccesseqTerminal() {;} // Singleton
+ private static TAccesseqTerminal singletonInstance = null;
+ public static final TAccesseqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TAccesseqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_ACCESSEQ"; }
+
+ public int getActionRow() { return 95; }
+ }
+ public static final Terminal.TAccesseqTerminal T_ACCESSEQ = TAccesseqTerminal.getInstance();
+
+ public static class TDefaultTerminal extends Terminal
+ {
+ private TDefaultTerminal() {;} // Singleton
+ private static TDefaultTerminal singletonInstance = null;
+ public static final TDefaultTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TDefaultTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_DEFAULT"; }
+
+ public int getActionRow() { return 96; }
+ }
+ public static final Terminal.TDefaultTerminal T_DEFAULT = TDefaultTerminal.getInstance();
+
+ public static class TAsteriskTerminal extends Terminal
+ {
+ private TAsteriskTerminal() {;} // Singleton
+ private static TAsteriskTerminal singletonInstance = null;
+ public static final TAsteriskTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TAsteriskTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_ASTERISK"; }
+
+ public int getActionRow() { return 97; }
+ }
+ public static final Terminal.TAsteriskTerminal T_ASTERISK = TAsteriskTerminal.getInstance();
+
+ public static class TReceqTerminal extends Terminal
+ {
+ private TReceqTerminal() {;} // Singleton
+ private static TReceqTerminal singletonInstance = null;
+ public static final TReceqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TReceqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_RECEQ"; }
+
+ public int getActionRow() { return 98; }
+ }
+ public static final Terminal.TReceqTerminal T_RECEQ = TReceqTerminal.getInstance();
+
+ public static class TIntrinsicTerminal extends Terminal
+ {
+ private TIntrinsicTerminal() {;} // Singleton
+ private static TIntrinsicTerminal singletonInstance = null;
+ public static final TIntrinsicTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TIntrinsicTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_INTRINSIC"; }
+
+ public int getActionRow() { return 99; }
+ }
+ public static final Terminal.TIntrinsicTerminal T_INTRINSIC = TIntrinsicTerminal.getInstance();
+
+ public static class TPowTerminal extends Terminal
+ {
+ private TPowTerminal() {;} // Singleton
+ private static TPowTerminal singletonInstance = null;
+ public static final TPowTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TPowTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_POW"; }
+
+ public int getActionRow() { return 100; }
+ }
+ public static final Terminal.TPowTerminal T_POW = TPowTerminal.getInstance();
+
+ public static class TGreaterthanTerminal extends Terminal
+ {
+ private TGreaterthanTerminal() {;} // Singleton
+ private static TGreaterthanTerminal singletonInstance = null;
+ public static final TGreaterthanTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TGreaterthanTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_GREATERTHAN"; }
+
+ public int getActionRow() { return 101; }
+ }
+ public static final Terminal.TGreaterthanTerminal T_GREATERTHAN = TGreaterthanTerminal.getInstance();
+
+ public static class TStatuseqTerminal extends Terminal
+ {
+ private TStatuseqTerminal() {;} // Singleton
+ private static TStatuseqTerminal singletonInstance = null;
+ public static final TStatuseqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TStatuseqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_STATUSEQ"; }
+
+ public int getActionRow() { return 102; }
+ }
+ public static final Terminal.TStatuseqTerminal T_STATUSEQ = TStatuseqTerminal.getInstance();
+
+ public static class TFileTerminal extends Terminal
+ {
+ private TFileTerminal() {;} // Singleton
+ private static TFileTerminal singletonInstance = null;
+ public static final TFileTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TFileTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_FILE"; }
+
+ public int getActionRow() { return 103; }
+ }
+ public static final Terminal.TFileTerminal T_FILE = TFileTerminal.getInstance();
+
+ public static class TEqTerminal extends Terminal
+ {
+ private TEqTerminal() {;} // Singleton
+ private static TEqTerminal singletonInstance = null;
+ public static final TEqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TEqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_EQ"; }
+
+ public int getActionRow() { return 104; }
+ }
+ public static final Terminal.TEqTerminal T_EQ = TEqTerminal.getInstance();
+
+ public static class TPointerTerminal extends Terminal
+ {
+ private TPointerTerminal() {;} // Singleton
+ private static TPointerTerminal singletonInstance = null;
+ public static final TPointerTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TPointerTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_POINTER"; }
+
+ public int getActionRow() { return 105; }
+ }
+ public static final Terminal.TPointerTerminal T_POINTER = TPointerTerminal.getInstance();
+
+ public static class TEndeqTerminal extends Terminal
+ {
+ private TEndeqTerminal() {;} // Singleton
+ private static TEndeqTerminal singletonInstance = null;
+ public static final TEndeqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TEndeqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_ENDEQ"; }
+
+ public int getActionRow() { return 106; }
+ }
+ public static final Terminal.TEndeqTerminal T_ENDEQ = TEndeqTerminal.getInstance();
+
+ public static class TRecursiveTerminal extends Terminal
+ {
+ private TRecursiveTerminal() {;} // Singleton
+ private static TRecursiveTerminal singletonInstance = null;
+ public static final TRecursiveTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TRecursiveTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_RECURSIVE"; }
+
+ public int getActionRow() { return 107; }
+ }
+ public static final Terminal.TRecursiveTerminal T_RECURSIVE = TRecursiveTerminal.getInstance();
+
+ public static class TErreqTerminal extends Terminal
+ {
+ private TErreqTerminal() {;} // Singleton
+ private static TErreqTerminal singletonInstance = null;
+ public static final TErreqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TErreqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_ERREQ"; }
+
+ public int getActionRow() { return 108; }
+ }
+ public static final Terminal.TErreqTerminal T_ERREQ = TErreqTerminal.getInstance();
+
+ public static class TUniteqTerminal extends Terminal
+ {
+ private TUniteqTerminal() {;} // Singleton
+ private static TUniteqTerminal singletonInstance = null;
+ public static final TUniteqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TUniteqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_UNITEQ"; }
+
+ public int getActionRow() { return 109; }
+ }
+ public static final Terminal.TUniteqTerminal T_UNITEQ = TUniteqTerminal.getInstance();
+
+ public static class TSequentialeqTerminal extends Terminal
+ {
+ private TSequentialeqTerminal() {;} // Singleton
+ private static TSequentialeqTerminal singletonInstance = null;
+ public static final TSequentialeqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TSequentialeqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_SEQUENTIALEQ"; }
+
+ public int getActionRow() { return 110; }
+ }
+ public static final Terminal.TSequentialeqTerminal T_SEQUENTIALEQ = TSequentialeqTerminal.getInstance();
+
+ public static class TOutTerminal extends Terminal
+ {
+ private TOutTerminal() {;} // Singleton
+ private static TOutTerminal singletonInstance = null;
+ public static final TOutTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TOutTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_OUT"; }
+
+ public int getActionRow() { return 111; }
+ }
+ public static final Terminal.TOutTerminal T_OUT = TOutTerminal.getInstance();
+
+ public static class TStateqTerminal extends Terminal
+ {
+ private TStateqTerminal() {;} // Singleton
+ private static TStateqTerminal singletonInstance = null;
+ public static final TStateqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TStateqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_STATEQ"; }
+
+ public int getActionRow() { return 112; }
+ }
+ public static final Terminal.TStateqTerminal T_STATEQ = TStateqTerminal.getInstance();
+
+ public static class TIostateqTerminal extends Terminal
+ {
+ private TIostateqTerminal() {;} // Singleton
+ private static TIostateqTerminal singletonInstance = null;
+ public static final TIostateqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TIostateqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_IOSTATEQ"; }
+
+ public int getActionRow() { return 113; }
+ }
+ public static final Terminal.TIostateqTerminal T_IOSTATEQ = TIostateqTerminal.getInstance();
+
+ public static class TLessthanTerminal extends Terminal
+ {
+ private TLessthanTerminal() {;} // Singleton
+ private static TLessthanTerminal singletonInstance = null;
+ public static final TLessthanTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TLessthanTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_LESSTHAN"; }
+
+ public int getActionRow() { return 114; }
+ }
+ public static final Terminal.TLessthanTerminal T_LESSTHAN = TLessthanTerminal.getInstance();
+
+ public static class TNotTerminal extends Terminal
+ {
+ private TNotTerminal() {;} // Singleton
+ private static TNotTerminal singletonInstance = null;
+ public static final TNotTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TNotTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_NOT"; }
+
+ public int getActionRow() { return 115; }
+ }
+ public static final Terminal.TNotTerminal T_NOT = TNotTerminal.getInstance();
+
+ public static class TAndTerminal extends Terminal
+ {
+ private TAndTerminal() {;} // Singleton
+ private static TAndTerminal singletonInstance = null;
+ public static final TAndTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TAndTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_AND"; }
+
+ public int getActionRow() { return 116; }
+ }
+ public static final Terminal.TAndTerminal T_AND = TAndTerminal.getInstance();
+
+ public static class TRewindTerminal extends Terminal
+ {
+ private TRewindTerminal() {;} // Singleton
+ private static TRewindTerminal singletonInstance = null;
+ public static final TRewindTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TRewindTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_REWIND"; }
+
+ public int getActionRow() { return 117; }
+ }
+ public static final Terminal.TRewindTerminal T_REWIND = TRewindTerminal.getInstance();
+
+ public static class TUseTerminal extends Terminal
+ {
+ private TUseTerminal() {;} // Singleton
+ private static TUseTerminal singletonInstance = null;
+ public static final TUseTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TUseTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_USE"; }
+
+ public int getActionRow() { return 118; }
+ }
+ public static final Terminal.TUseTerminal T_USE = TUseTerminal.getInstance();
+
+ public static class TNumbereqTerminal extends Terminal
+ {
+ private TNumbereqTerminal() {;} // Singleton
+ private static TNumbereqTerminal singletonInstance = null;
+ public static final TNumbereqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TNumbereqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_NUMBEREQ"; }
+
+ public int getActionRow() { return 119; }
+ }
+ public static final Terminal.TNumbereqTerminal T_NUMBEREQ = TNumbereqTerminal.getInstance();
+
+ public static class TLeneqTerminal extends Terminal
+ {
+ private TLeneqTerminal() {;} // Singleton
+ private static TLeneqTerminal singletonInstance = null;
+ public static final TLeneqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TLeneqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_LENEQ"; }
+
+ public int getActionRow() { return 120; }
+ }
+ public static final Terminal.TLeneqTerminal T_LENEQ = TLeneqTerminal.getInstance();
+
+ public static class TPrivateTerminal extends Terminal
+ {
+ private TPrivateTerminal() {;} // Singleton
+ private static TPrivateTerminal singletonInstance = null;
+ public static final TPrivateTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TPrivateTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_PRIVATE"; }
+
+ public int getActionRow() { return 121; }
+ }
+ public static final Terminal.TPrivateTerminal T_PRIVATE = TPrivateTerminal.getInstance();
+
+ public static class TInquireTerminal extends Terminal
+ {
+ private TInquireTerminal() {;} // Singleton
+ private static TInquireTerminal singletonInstance = null;
+ public static final TInquireTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TInquireTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_INQUIRE"; }
+
+ public int getActionRow() { return 122; }
+ }
+ public static final Terminal.TInquireTerminal T_INQUIRE = TInquireTerminal.getInstance();
+
+ public static class TDoTerminal extends Terminal
+ {
+ private TDoTerminal() {;} // Singleton
+ private static TDoTerminal singletonInstance = null;
+ public static final TDoTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TDoTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_DO"; }
+
+ public int getActionRow() { return 123; }
+ }
+ public static final Terminal.TDoTerminal T_DO = TDoTerminal.getInstance();
+
+ public static class TBackspaceTerminal extends Terminal
+ {
+ private TBackspaceTerminal() {;} // Singleton
+ private static TBackspaceTerminal singletonInstance = null;
+ public static final TBackspaceTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TBackspaceTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_BACKSPACE"; }
+
+ public int getActionRow() { return 124; }
+ }
+ public static final Terminal.TBackspaceTerminal T_BACKSPACE = TBackspaceTerminal.getInstance();
+
+ public static class TEnddoTerminal extends Terminal
+ {
+ private TEnddoTerminal() {;} // Singleton
+ private static TEnddoTerminal singletonInstance = null;
+ public static final TEnddoTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TEnddoTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_ENDDO"; }
+
+ public int getActionRow() { return 125; }
+ }
+ public static final Terminal.TEnddoTerminal T_ENDDO = TEnddoTerminal.getInstance();
+
+ public static class TWhereTerminal extends Terminal
+ {
+ private TWhereTerminal() {;} // Singleton
+ private static TWhereTerminal singletonInstance = null;
+ public static final TWhereTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TWhereTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_WHERE"; }
+
+ public int getActionRow() { return 126; }
+ }
+ public static final Terminal.TWhereTerminal T_WHERE = TWhereTerminal.getInstance();
+
+ public static class THconTerminal extends Terminal
+ {
+ private THconTerminal() {;} // Singleton
+ private static THconTerminal singletonInstance = null;
+ public static final THconTerminal getInstance() { if (singletonInstance == null) singletonInstance = new THconTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_HCON"; }
+
+ public int getActionRow() { return 127; }
+ }
+ public static final Terminal.THconTerminal T_HCON = THconTerminal.getInstance();
+
+ public static class TLessthaneqTerminal extends Terminal
+ {
+ private TLessthaneqTerminal() {;} // Singleton
+ private static TLessthaneqTerminal singletonInstance = null;
+ public static final TLessthaneqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TLessthaneqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_LESSTHANEQ"; }
+
+ public int getActionRow() { return 128; }
+ }
+ public static final Terminal.TLessthaneqTerminal T_LESSTHANEQ = TLessthaneqTerminal.getInstance();
+
+ public static class TActioneqTerminal extends Terminal
+ {
+ private TActioneqTerminal() {;} // Singleton
+ private static TActioneqTerminal singletonInstance = null;
+ public static final TActioneqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TActioneqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_ACTIONEQ"; }
+
+ public int getActionRow() { return 129; }
+ }
+ public static final Terminal.TActioneqTerminal T_ACTIONEQ = TActioneqTerminal.getInstance();
+
+ public static class TGreaterthaneqTerminal extends Terminal
+ {
+ private TGreaterthaneqTerminal() {;} // Singleton
+ private static TGreaterthaneqTerminal singletonInstance = null;
+ public static final TGreaterthaneqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TGreaterthaneqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_GREATERTHANEQ"; }
+
+ public int getActionRow() { return 130; }
+ }
+ public static final Terminal.TGreaterthaneqTerminal T_GREATERTHANEQ = TGreaterthaneqTerminal.getInstance();
+
+ public static class TRecleqTerminal extends Terminal
+ {
+ private TRecleqTerminal() {;} // Singleton
+ private static TRecleqTerminal singletonInstance = null;
+ public static final TRecleqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TRecleqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_RECLEQ"; }
+
+ public int getActionRow() { return 131; }
+ }
+ public static final Terminal.TRecleqTerminal T_RECLEQ = TRecleqTerminal.getInstance();
+
+ public static class TBlockTerminal extends Terminal
+ {
+ private TBlockTerminal() {;} // Singleton
+ private static TBlockTerminal singletonInstance = null;
+ public static final TBlockTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TBlockTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_BLOCK"; }
+
+ public int getActionRow() { return 132; }
+ }
+ public static final Terminal.TBlockTerminal T_BLOCK = TBlockTerminal.getInstance();
+
+ public static class ErrorTerminal extends Terminal
+ {
+ private ErrorTerminal() {;} // Singleton
+ private static ErrorTerminal singletonInstance = null;
+ public static final ErrorTerminal getInstance() { if (singletonInstance == null) singletonInstance = new ErrorTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "%error"; }
+
+ public int getActionRow() { return 133; }
+ }
+ public static final Terminal.ErrorTerminal ERROR = ErrorTerminal.getInstance();
+
+ public static class TRconTerminal extends Terminal
+ {
+ private TRconTerminal() {;} // Singleton
+ private static TRconTerminal singletonInstance = null;
+ public static final TRconTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TRconTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_RCON"; }
+
+ public int getActionRow() { return 134; }
+ }
+ public static final Terminal.TRconTerminal T_RCON = TRconTerminal.getInstance();
+
+ public static class TReadeqTerminal extends Terminal
+ {
+ private TReadeqTerminal() {;} // Singleton
+ private static TReadeqTerminal singletonInstance = null;
+ public static final TReadeqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TReadeqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_READEQ"; }
+
+ public int getActionRow() { return 135; }
+ }
+ public static final Terminal.TReadeqTerminal T_READEQ = TReadeqTerminal.getInstance();
+
+ public static class TEndfileTerminal extends Terminal
+ {
+ private TEndfileTerminal() {;} // Singleton
+ private static TEndfileTerminal singletonInstance = null;
+ public static final TEndfileTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TEndfileTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_ENDFILE"; }
+
+ public int getActionRow() { return 136; }
+ }
+ public static final Terminal.TEndfileTerminal T_ENDFILE = TEndfileTerminal.getInstance();
+
+ public static class TExisteqTerminal extends Terminal
+ {
+ private TExisteqTerminal() {;} // Singleton
+ private static TExisteqTerminal singletonInstance = null;
+ public static final TExisteqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TExisteqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_EXISTEQ"; }
+
+ public int getActionRow() { return 137; }
+ }
+ public static final Terminal.TExisteqTerminal T_EXISTEQ = TExisteqTerminal.getInstance();
+
+ public static class TUnformattedeqTerminal extends Terminal
+ {
+ private TUnformattedeqTerminal() {;} // Singleton
+ private static TUnformattedeqTerminal singletonInstance = null;
+ public static final TUnformattedeqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TUnformattedeqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_UNFORMATTEDEQ"; }
+
+ public int getActionRow() { return 138; }
+ }
+ public static final Terminal.TUnformattedeqTerminal T_UNFORMATTEDEQ = TUnformattedeqTerminal.getInstance();
+
+ public static class TElsewhereTerminal extends Terminal
+ {
+ private TElsewhereTerminal() {;} // Singleton
+ private static TElsewhereTerminal singletonInstance = null;
+ public static final TElsewhereTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TElsewhereTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_ELSEWHERE"; }
+
+ public int getActionRow() { return 139; }
+ }
+ public static final Terminal.TElsewhereTerminal T_ELSEWHERE = TElsewhereTerminal.getInstance();
+
+ public static class TOrTerminal extends Terminal
+ {
+ private TOrTerminal() {;} // Singleton
+ private static TOrTerminal singletonInstance = null;
+ public static final TOrTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TOrTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_OR"; }
+
+ public int getActionRow() { return 140; }
+ }
+ public static final Terminal.TOrTerminal T_OR = TOrTerminal.getInstance();
+
+ public static class TAssignmentTerminal extends Terminal
+ {
+ private TAssignmentTerminal() {;} // Singleton
+ private static TAssignmentTerminal singletonInstance = null;
+ public static final TAssignmentTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TAssignmentTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_ASSIGNMENT"; }
+
+ public int getActionRow() { return 141; }
+ }
+ public static final Terminal.TAssignmentTerminal T_ASSIGNMENT = TAssignmentTerminal.getInstance();
+
+ public static class TEndwhereTerminal extends Terminal
+ {
+ private TEndwhereTerminal() {;} // Singleton
+ private static TEndwhereTerminal singletonInstance = null;
+ public static final TEndwhereTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TEndwhereTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_ENDWHERE"; }
+
+ public int getActionRow() { return 142; }
+ }
+ public static final Terminal.TEndwhereTerminal T_ENDWHERE = TEndwhereTerminal.getInstance();
+
+ public static class TPureTerminal extends Terminal
+ {
+ private TPureTerminal() {;} // Singleton
+ private static TPureTerminal singletonInstance = null;
+ public static final TPureTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TPureTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_PURE"; }
+
+ public int getActionRow() { return 143; }
+ }
+ public static final Terminal.TPureTerminal T_PURE = TPureTerminal.getInstance();
+
+ public static class TReadwriteeqTerminal extends Terminal
+ {
+ private TReadwriteeqTerminal() {;} // Singleton
+ private static TReadwriteeqTerminal singletonInstance = null;
+ public static final TReadwriteeqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TReadwriteeqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_READWRITEEQ"; }
+
+ public int getActionRow() { return 144; }
+ }
+ public static final Terminal.TReadwriteeqTerminal T_READWRITEEQ = TReadwriteeqTerminal.getInstance();
+
+ public static class TWriteeqTerminal extends Terminal
+ {
+ private TWriteeqTerminal() {;} // Singleton
+ private static TWriteeqTerminal singletonInstance = null;
+ public static final TWriteeqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TWriteeqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_WRITEEQ"; }
+
+ public int getActionRow() { return 145; }
+ }
+ public static final Terminal.TWriteeqTerminal T_WRITEEQ = TWriteeqTerminal.getInstance();
+
+ public static class TEndblockTerminal extends Terminal
+ {
+ private TEndblockTerminal() {;} // Singleton
+ private static TEndblockTerminal singletonInstance = null;
+ public static final TEndblockTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TEndblockTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_ENDBLOCK"; }
+
+ public int getActionRow() { return 146; }
+ }
+ public static final Terminal.TEndblockTerminal T_ENDBLOCK = TEndblockTerminal.getInstance();
+
+ public static class TEoreqTerminal extends Terminal
+ {
+ private TEoreqTerminal() {;} // Singleton
+ private static TEoreqTerminal singletonInstance = null;
+ public static final TEoreqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TEoreqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_EOREQ"; }
+
+ public int getActionRow() { return 147; }
+ }
+ public static final Terminal.TEoreqTerminal T_EOREQ = TEoreqTerminal.getInstance();
+
+ public static class TColonTerminal extends Terminal
+ {
+ private TColonTerminal() {;} // Singleton
+ private static TColonTerminal singletonInstance = null;
+ public static final TColonTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TColonTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_COLON"; }
+
+ public int getActionRow() { return 148; }
+ }
+ public static final Terminal.TColonTerminal T_COLON = TColonTerminal.getInstance();
+
+ public static class TFunctionTerminal extends Terminal
+ {
+ private TFunctionTerminal() {;} // Singleton
+ private static TFunctionTerminal singletonInstance = null;
+ public static final TFunctionTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TFunctionTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_FUNCTION"; }
+
+ public int getActionRow() { return 149; }
+ }
+ public static final Terminal.TFunctionTerminal T_FUNCTION = TFunctionTerminal.getInstance();
+
+ public static class TFormatTerminal extends Terminal
+ {
+ private TFormatTerminal() {;} // Singleton
+ private static TFormatTerminal singletonInstance = null;
+ public static final TFormatTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TFormatTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_FORMAT"; }
+
+ public int getActionRow() { return 150; }
+ }
+ public static final Terminal.TFormatTerminal T_FORMAT = TFormatTerminal.getInstance();
+
+ public static class TNamedeqTerminal extends Terminal
+ {
+ private TNamedeqTerminal() {;} // Singleton
+ private static TNamedeqTerminal singletonInstance = null;
+ public static final TNamedeqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TNamedeqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_NAMEDEQ"; }
+
+ public int getActionRow() { return 151; }
+ }
+ public static final Terminal.TNamedeqTerminal T_NAMEDEQ = TNamedeqTerminal.getInstance();
+
+ public static class TDeallocateTerminal extends Terminal
+ {
+ private TDeallocateTerminal() {;} // Singleton
+ private static TDeallocateTerminal singletonInstance = null;
+ public static final TDeallocateTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TDeallocateTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_DEALLOCATE"; }
+
+ public int getActionRow() { return 152; }
+ }
+ public static final Terminal.TDeallocateTerminal T_DEALLOCATE = TDeallocateTerminal.getInstance();
+
+ public static class TXdopTerminal extends Terminal
+ {
+ private TXdopTerminal() {;} // Singleton
+ private static TXdopTerminal singletonInstance = null;
+ public static final TXdopTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TXdopTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_XDOP"; }
+
+ public int getActionRow() { return 153; }
+ }
+ public static final Terminal.TXdopTerminal T_XDOP = TXdopTerminal.getInstance();
+
+ public static class TRealTerminal extends Terminal
+ {
+ private TRealTerminal() {;} // Singleton
+ private static TRealTerminal singletonInstance = null;
+ public static final TRealTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TRealTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_REAL"; }
+
+ public int getActionRow() { return 154; }
+ }
+ public static final Terminal.TRealTerminal T_REAL = TRealTerminal.getInstance();
+
+ public static class TElementalTerminal extends Terminal
+ {
+ private TElementalTerminal() {;} // Singleton
+ private static TElementalTerminal singletonInstance = null;
+ public static final TElementalTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TElementalTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_ELEMENTAL"; }
+
+ public int getActionRow() { return 155; }
+ }
+ public static final Terminal.TElementalTerminal T_ELEMENTAL = TElementalTerminal.getInstance();
+
+ public static class TElseTerminal extends Terminal
+ {
+ private TElseTerminal() {;} // Singleton
+ private static TElseTerminal singletonInstance = null;
+ public static final TElseTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TElseTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_ELSE"; }
+
+ public int getActionRow() { return 156; }
+ }
+ public static final Terminal.TElseTerminal T_ELSE = TElseTerminal.getInstance();
+
+ public static class TRparenTerminal extends Terminal
+ {
+ private TRparenTerminal() {;} // Singleton
+ private static TRparenTerminal singletonInstance = null;
+ public static final TRparenTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TRparenTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_RPAREN"; }
+
+ public int getActionRow() { return 157; }
+ }
+ public static final Terminal.TRparenTerminal T_RPAREN = TRparenTerminal.getInstance();
+
+ public static class TContinueTerminal extends Terminal
+ {
+ private TContinueTerminal() {;} // Singleton
+ private static TContinueTerminal singletonInstance = null;
+ public static final TContinueTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TContinueTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_CONTINUE"; }
+
+ public int getActionRow() { return 158; }
+ }
+ public static final Terminal.TContinueTerminal T_CONTINUE = TContinueTerminal.getInstance();
+
+ public static class TReadTerminal extends Terminal
+ {
+ private TReadTerminal() {;} // Singleton
+ private static TReadTerminal singletonInstance = null;
+ public static final TReadTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TReadTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_READ"; }
+
+ public int getActionRow() { return 159; }
+ }
+ public static final Terminal.TReadTerminal T_READ = TReadTerminal.getInstance();
+
+ public static class TSaveTerminal extends Terminal
+ {
+ private TSaveTerminal() {;} // Singleton
+ private static TSaveTerminal singletonInstance = null;
+ public static final TSaveTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TSaveTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_SAVE"; }
+
+ public int getActionRow() { return 160; }
+ }
+ public static final Terminal.TSaveTerminal T_SAVE = TSaveTerminal.getInstance();
+
+ public static class TElseifTerminal extends Terminal
+ {
+ private TElseifTerminal() {;} // Singleton
+ private static TElseifTerminal singletonInstance = null;
+ public static final TElseifTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TElseifTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_ELSEIF"; }
+
+ public int getActionRow() { return 161; }
+ }
+ public static final Terminal.TElseifTerminal T_ELSEIF = TElseifTerminal.getInstance();
+
+ public static class TCycleTerminal extends Terminal
+ {
+ private TCycleTerminal() {;} // Singleton
+ private static TCycleTerminal singletonInstance = null;
+ public static final TCycleTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TCycleTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_CYCLE"; }
+
+ public int getActionRow() { return 162; }
+ }
+ public static final Terminal.TCycleTerminal T_CYCLE = TCycleTerminal.getInstance();
+
+ public static class TOpenTerminal extends Terminal
+ {
+ private TOpenTerminal() {;} // Singleton
+ private static TOpenTerminal singletonInstance = null;
+ public static final TOpenTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TOpenTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_OPEN"; }
+
+ public int getActionRow() { return 163; }
+ }
+ public static final Terminal.TOpenTerminal T_OPEN = TOpenTerminal.getInstance();
+
+ public static class TSlasheqTerminal extends Terminal
+ {
+ private TSlasheqTerminal() {;} // Singleton
+ private static TSlasheqTerminal singletonInstance = null;
+ public static final TSlasheqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TSlasheqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_SLASHEQ"; }
+
+ public int getActionRow() { return 164; }
+ }
+ public static final Terminal.TSlasheqTerminal T_SLASHEQ = TSlasheqTerminal.getInstance();
+
+ public static class TIntentTerminal extends Terminal
+ {
+ private TIntentTerminal() {;} // Singleton
+ private static TIntentTerminal singletonInstance = null;
+ public static final TIntentTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TIntentTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_INTENT"; }
+
+ public int getActionRow() { return 165; }
+ }
+ public static final Terminal.TIntentTerminal T_INTENT = TIntentTerminal.getInstance();
+
+ public static class TNeTerminal extends Terminal
+ {
+ private TNeTerminal() {;} // Singleton
+ private static TNeTerminal singletonInstance = null;
+ public static final TNeTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TNeTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_NE"; }
+
+ public int getActionRow() { return 166; }
+ }
+ public static final Terminal.TNeTerminal T_NE = TNeTerminal.getInstance();
+
+ public static class TNmleqTerminal extends Terminal
+ {
+ private TNmleqTerminal() {;} // Singleton
+ private static TNmleqTerminal singletonInstance = null;
+ public static final TNmleqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TNmleqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_NMLEQ"; }
+
+ public int getActionRow() { return 167; }
+ }
+ public static final Terminal.TNmleqTerminal T_NMLEQ = TNmleqTerminal.getInstance();
+
+ public static class TTargetTerminal extends Terminal
+ {
+ private TTargetTerminal() {;} // Singleton
+ private static TTargetTerminal singletonInstance = null;
+ public static final TTargetTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TTargetTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_TARGET"; }
+
+ public int getActionRow() { return 168; }
+ }
+ public static final Terminal.TTargetTerminal T_TARGET = TTargetTerminal.getInstance();
+
+ public static class TEndfunctionTerminal extends Terminal
+ {
+ private TEndfunctionTerminal() {;} // Singleton
+ private static TEndfunctionTerminal singletonInstance = null;
+ public static final TEndfunctionTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TEndfunctionTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_ENDFUNCTION"; }
+
+ public int getActionRow() { return 169; }
+ }
+ public static final Terminal.TEndfunctionTerminal T_ENDFUNCTION = TEndfunctionTerminal.getInstance();
+
+ public static class TOconTerminal extends Terminal
+ {
+ private TOconTerminal() {;} // Singleton
+ private static TOconTerminal singletonInstance = null;
+ public static final TOconTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TOconTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_OCON"; }
+
+ public int getActionRow() { return 170; }
+ }
+ public static final Terminal.TOconTerminal T_OCON = TOconTerminal.getInstance();
+
+ public static class TEndselectTerminal extends Terminal
+ {
+ private TEndselectTerminal() {;} // Singleton
+ private static TEndselectTerminal singletonInstance = null;
+ public static final TEndselectTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TEndselectTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_ENDSELECT"; }
+
+ public int getActionRow() { return 171; }
+ }
+ public static final Terminal.TEndselectTerminal T_ENDSELECT = TEndselectTerminal.getInstance();
+
+ public static class TEquivalenceTerminal extends Terminal
+ {
+ private TEquivalenceTerminal() {;} // Singleton
+ private static TEquivalenceTerminal singletonInstance = null;
+ public static final TEquivalenceTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TEquivalenceTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_EQUIVALENCE"; }
+
+ public int getActionRow() { return 172; }
+ }
+ public static final Terminal.TEquivalenceTerminal T_EQUIVALENCE = TEquivalenceTerminal.getInstance();
+
+ public static class TDataTerminal extends Terminal
+ {
+ private TDataTerminal() {;} // Singleton
+ private static TDataTerminal singletonInstance = null;
+ public static final TDataTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TDataTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_DATA"; }
+
+ public int getActionRow() { return 173; }
+ }
+ public static final Terminal.TDataTerminal T_DATA = TDataTerminal.getInstance();
+
+ public static class TComplexTerminal extends Terminal
+ {
+ private TComplexTerminal() {;} // Singleton
+ private static TComplexTerminal singletonInstance = null;
+ public static final TComplexTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TComplexTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_COMPLEX"; }
+
+ public int getActionRow() { return 174; }
+ }
+ public static final Terminal.TComplexTerminal T_COMPLEX = TComplexTerminal.getInstance();
+
+ public static class TCallTerminal extends Terminal
+ {
+ private TCallTerminal() {;} // Singleton
+ private static TCallTerminal singletonInstance = null;
+ public static final TCallTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TCallTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_CALL"; }
+
+ public int getActionRow() { return 175; }
+ }
+ public static final Terminal.TCallTerminal T_CALL = TCallTerminal.getInstance();
+
+ public static class TEndmoduleTerminal extends Terminal
+ {
+ private TEndmoduleTerminal() {;} // Singleton
+ private static TEndmoduleTerminal singletonInstance = null;
+ public static final TEndmoduleTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TEndmoduleTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_ENDMODULE"; }
+
+ public int getActionRow() { return 176; }
+ }
+ public static final Terminal.TEndmoduleTerminal T_ENDMODULE = TEndmoduleTerminal.getInstance();
+
+ public static class TPercentTerminal extends Terminal
+ {
+ private TPercentTerminal() {;} // Singleton
+ private static TPercentTerminal singletonInstance = null;
+ public static final TPercentTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TPercentTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_PERCENT"; }
+
+ public int getActionRow() { return 177; }
+ }
+ public static final Terminal.TPercentTerminal T_PERCENT = TPercentTerminal.getInstance();
+
+ public static class TBlankeqTerminal extends Terminal
+ {
+ private TBlankeqTerminal() {;} // Singleton
+ private static TBlankeqTerminal singletonInstance = null;
+ public static final TBlankeqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TBlankeqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_BLANKEQ"; }
+
+ public int getActionRow() { return 178; }
+ }
+ public static final Terminal.TBlankeqTerminal T_BLANKEQ = TBlankeqTerminal.getInstance();
+
+ public static class TResultTerminal extends Terminal
+ {
+ private TResultTerminal() {;} // Singleton
+ private static TResultTerminal singletonInstance = null;
+ public static final TResultTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TResultTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_RESULT"; }
+
+ public int getActionRow() { return 179; }
+ }
+ public static final Terminal.TResultTerminal T_RESULT = TResultTerminal.getInstance();
+
+ public static class TLtTerminal extends Terminal
+ {
+ private TLtTerminal() {;} // Singleton
+ private static TLtTerminal singletonInstance = null;
+ public static final TLtTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TLtTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_LT"; }
+
+ public int getActionRow() { return 180; }
+ }
+ public static final Terminal.TLtTerminal T_LT = TLtTerminal.getInstance();
+
+ public static class TFileeqTerminal extends Terminal
+ {
+ private TFileeqTerminal() {;} // Singleton
+ private static TFileeqTerminal singletonInstance = null;
+ public static final TFileeqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TFileeqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_FILEEQ"; }
+
+ public int getActionRow() { return 181; }
+ }
+ public static final Terminal.TFileeqTerminal T_FILEEQ = TFileeqTerminal.getInstance();
+
+ public static class TSequenceTerminal extends Terminal
+ {
+ private TSequenceTerminal() {;} // Singleton
+ private static TSequenceTerminal singletonInstance = null;
+ public static final TSequenceTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TSequenceTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_SEQUENCE"; }
+
+ public int getActionRow() { return 182; }
+ }
+ public static final Terminal.TSequenceTerminal T_SEQUENCE = TSequenceTerminal.getInstance();
+
+ public static class TIdentTerminal extends Terminal
+ {
+ private TIdentTerminal() {;} // Singleton
+ private static TIdentTerminal singletonInstance = null;
+ public static final TIdentTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TIdentTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_IDENT"; }
+
+ public int getActionRow() { return 183; }
+ }
+ public static final Terminal.TIdentTerminal T_IDENT = TIdentTerminal.getInstance();
+
+ public static class TLogicalTerminal extends Terminal
+ {
+ private TLogicalTerminal() {;} // Singleton
+ private static TLogicalTerminal singletonInstance = null;
+ public static final TLogicalTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TLogicalTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_LOGICAL"; }
+
+ public int getActionRow() { return 184; }
+ }
+ public static final Terminal.TLogicalTerminal T_LOGICAL = TLogicalTerminal.getInstance();
+
+ public static class TNullTerminal extends Terminal
+ {
+ private TNullTerminal() {;} // Singleton
+ private static TNullTerminal singletonInstance = null;
+ public static final TNullTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TNullTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_NULL"; }
+
+ public int getActionRow() { return 185; }
+ }
+ public static final Terminal.TNullTerminal T_NULL = TNullTerminal.getInstance();
+
+ public static class TLeTerminal extends Terminal
+ {
+ private TLeTerminal() {;} // Singleton
+ private static TLeTerminal singletonInstance = null;
+ public static final TLeTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TLeTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_LE"; }
+
+ public int getActionRow() { return 186; }
+ }
+ public static final Terminal.TLeTerminal T_LE = TLeTerminal.getInstance();
+
+ public static class TEntryTerminal extends Terminal
+ {
+ private TEntryTerminal() {;} // Singleton
+ private static TEntryTerminal singletonInstance = null;
+ public static final TEntryTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TEntryTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_ENTRY"; }
+
+ public int getActionRow() { return 187; }
+ }
+ public static final Terminal.TEntryTerminal T_ENTRY = TEntryTerminal.getInstance();
+
+ public static class TAdvanceeqTerminal extends Terminal
+ {
+ private TAdvanceeqTerminal() {;} // Singleton
+ private static TAdvanceeqTerminal singletonInstance = null;
+ public static final TAdvanceeqTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TAdvanceeqTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_ADVANCEEQ"; }
+
+ public int getActionRow() { return 188; }
+ }
+ public static final Terminal.TAdvanceeqTerminal T_ADVANCEEQ = TAdvanceeqTerminal.getInstance();
+
+ public static class TLparenTerminal extends Terminal
+ {
+ private TLparenTerminal() {;} // Singleton
+ private static TLparenTerminal singletonInstance = null;
+ public static final TLparenTerminal getInstance() { if (singletonInstance == null) singletonInstance = new TLparenTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "T_LPAREN"; }
+
+ public int getActionRow() { return 189; }
+ }
+ public static final Terminal.TLparenTerminal T_LPAREN = TLparenTerminal.getInstance();
+
+ public static class EndOfInputTerminal extends Terminal
+ {
+ private EndOfInputTerminal() {;} // Singleton
+ private static EndOfInputTerminal singletonInstance = null;
+ public static final EndOfInputTerminal getInstance() { if (singletonInstance == null) singletonInstance = new EndOfInputTerminal(); return singletonInstance; }
+
+ public String getDescription() { return "<End of Input>"; }
+
+ public int getActionRow() { return 191; }
+ }
+ public static final Terminal.EndOfInputTerminal END_OF_INPUT = EndOfInputTerminal.getInstance();
+
+ public String toString()
+ {
+ return getDescription();
+ }
+}
diff --git a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/TerminalOrNonterminal.java b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/TerminalOrNonterminal.java
new file mode 100644
index 00000000..576dbdd4
--- /dev/null
+++ b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/TerminalOrNonterminal.java
@@ -0,0 +1,14 @@
+// Generated by Rex version 1.0 alpha 5
+
+package org.eclipse.photran.internal.core.f95modelparser;
+
+
+/**
+ * Common superclass for Terminal and Nonterminal
+ */
+public abstract class TerminalOrNonterminal
+{
+ public abstract String getDescription();
+
+ abstract int getNumberOfSymbolsOnValueStack();
+}
diff --git a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/Token.java b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/Token.java
new file mode 100644
index 00000000..7b644040
--- /dev/null
+++ b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/Token.java
@@ -0,0 +1,161 @@
+package org.eclipse.photran.internal.core.f95modelparser;
+
+
+/**
+ * Enumerates the terminal symbols in the grammar being parsed
+ */
+public class Token implements ParserSymbol, IPresentationBlock
+{
+ /**
+ * The Terminal that this token is an instance of
+ */
+ private Terminal terminal;
+
+ /**
+ * Returns the Terminal that this token is an instance of
+ */
+ public Terminal getTerminal() { return terminal; }
+
+ /**
+ * Sets the Terminal that this token is an instance of
+ */
+ public void setTerminal(Terminal value) { terminal = value; }
+
+ /**
+ * The filename in which the token occurred
+ */
+ private String filename;
+
+ /**
+ * Returns the filename in which the token occurred
+ */
+ public String getFilename() { return filename; }
+
+ /**
+ * Sets the filename in which the token occurred
+ */
+ public void setFilename(String value) { filename = value; }
+
+ /**
+ * The line number on which the token starts (1=first line, 2=second, etc.)
+ */
+ private int startLine;
+
+ /**
+ * Returns the line number on which the token starts (1=first line, 2=second, etc.)
+ */
+ public int getStartLine() { return startLine; }
+
+ /**
+ * Sets the line number on which the token starts (1=first line, 2=second, etc.)
+ */
+ public void setStartLine(int value) { startLine = value; }
+
+ /**
+ * The column number on which the token starts (1=first column, 2=second, etc.)
+ */
+ private int startCol;
+
+ /**
+ * Returns the column number on which the token starts (1=first column, 2=second, etc.)
+ */
+ public int getStartCol() { return startCol; }
+
+ /**
+ * Sets the column number on which the token starts (1=first column, 2=second, etc.)
+ */
+ public void setStartCol(int value) { startCol = value; }
+
+ /**
+ * The line number on which the token ends (1=first line, 2=second, etc.)
+ */
+ private int endLine;
+
+ /**
+ * Returns the line number on which the token ends (1=first line, 2=second, etc.)
+ */
+ public int getEndLine() { return endLine; }
+
+ /**
+ * Sets the line number on which the token ends (1=first line, 2=second, etc.)
+ */
+ public void setEndLine(int value) { endLine = value; }
+
+ /**
+ * The column number on which the token ends (1=first column, 2=second, etc.)
+ */
+ private int endCol;
+
+ /**
+ * Returns the column number on which the token ends (1=first column, 2=second, etc.)
+ */
+ public int getEndCol() { return endCol; }
+
+ /**
+ * Sets the column number on which the token ends (1=first column, 2=second, etc.)
+ */
+ public void setEndCol(int value) { endCol = value; }
+
+ /**
+ * The start of the token, as a character offset in the file
+ * 0=first character, 1=second, etc.
+ */
+ private int offset;
+
+ /**
+ * Returns the start of the token, as a character offset in the file
+ * 0=first character, 1=second, etc.
+ */
+ public int getOffset() { return offset; }
+
+ /**
+ * Sets the start of the token, as a character offset in the file
+ * 0=first character, 1=second, etc.
+ */
+ public void setOffset(int value) { offset = value; }
+
+ /**
+ * The length of the token text, in characters
+ */
+ private int length;
+
+ /**
+ * Returns the length of the token text, in characters
+ */
+ public int getLength() { return length; }
+
+ /**
+ * Sets the length of the token text, in characters
+ */
+ public void setLength(int value) { length = value; }
+
+ /**
+ * The token text
+ */
+ private String text;
+
+ /**
+ * Returns the token text
+ */
+ public String getText() { return text; }
+
+ /**
+ * Sets the token text
+ */
+ public void setText(String value) { text = value; }
+
+ /**
+ * Returns a string describing the token
+ */
+ public String getDescription() { return terminal.getDescription() + ": \"" + text + "\""; }
+
+ public String toString() { return getDescription(); }
+
+ /**
+ * See AbstractParseTreeNode
+ */
+ public void visitUsing(IPresentationBlockVisitor v)
+ {
+ v.visitToken(this);
+ }
+}
diff --git a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/model/FortranElement.java b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/model/FortranElement.java
index 0d32c638..c7c9787c 100644
--- a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/model/FortranElement.java
+++ b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/model/FortranElement.java
@@ -6,9 +6,7 @@ import org.eclipse.cdt.core.model.IParent;
import org.eclipse.cdt.core.model.ISourceReference;
import org.eclipse.cdt.internal.core.model.Parent;
import org.eclipse.cdt.internal.core.model.SourceManipulation;
-import org.eclipse.photran.internal.core.f95parser.ParseTreeNode;
-import org.eclipse.photran.internal.core.f95parser.ParseTreeSearcher;
-import org.eclipse.photran.internal.core.f95parser.Token;
+import org.eclipse.photran.internal.core.f95modelparser.Token;
import org.eclipse.photran.modelicons.ModelIconsPlugin;
/**
diff --git a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/model/FortranModelBuilder.java b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/model/FortranModelBuilder.java
index a49053e9..c89a9b68 100644
--- a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/model/FortranModelBuilder.java
+++ b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/model/FortranModelBuilder.java
@@ -11,10 +11,10 @@ import org.eclipse.cdt.core.model.CModelException;
import org.eclipse.cdt.core.model.ICElement;
import org.eclipse.cdt.internal.core.model.Parent;
import org.eclipse.photran.core.FortranCorePlugin;
-import org.eclipse.photran.internal.core.f95parser.FortranProcessor;
-import org.eclipse.photran.internal.core.f95parser.SemanticError;
-import org.eclipse.photran.internal.core.f95parser.SyntaxError;
-import org.eclipse.photran.internal.core.f95parser.Token;
+import org.eclipse.photran.internal.core.f95modelparser.FortranProcessor;
+import org.eclipse.photran.internal.core.f95modelparser.SemanticError;
+import org.eclipse.photran.internal.core.f95modelparser.SyntaxError;
+import org.eclipse.photran.internal.core.f95modelparser.Token;
import org.eclipse.photran.internal.core.preferences.FortranPreferences;
import org.eclipse.photran.internal.core.preferences.FortranShowParseTreePreference;
diff --git a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/model/FortranModelBuildingVisitor.java b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/model/FortranModelBuildingVisitor.java
deleted file mode 100644
index 69648bf7..00000000
--- a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/model/FortranModelBuildingVisitor.java
+++ /dev/null
@@ -1,144 +0,0 @@
-package org.eclipse.photran.internal.core.model;
-
-import java.util.LinkedList;
-
-import org.eclipse.cdt.core.model.CModelException;
-import org.eclipse.cdt.internal.core.model.Parent;
-import org.eclipse.photran.internal.core.f95parser.ParseTreeNode;
-import org.eclipse.photran.internal.core.f95parser.ParseTreeVisitor;
-
-/**
- * This parse tree visitor is used by the <code>FortranModelBuilder</code> to create the model you
- * see in the (normal) Outline view. When it encounters a program, module, function, or other entity
- * that should be displayed in the model, it calls the <code>FortranModelBuilder</code> back and
- * asks it to add the appropriate node.
- *
- * @author joverbey
- */
-final class FortranModelBuildingVisitor extends ParseTreeVisitor
-{
-// // --INFRASTRUCTURE--------------------------------------------------
-//
-// private org.eclipse.cdt.internal.core.model.TranslationUnit translationUnit;
-//
-// private FortranModelBuilder modelBuilder;
-//
-// FortranModelBuildingVisitor(
-// org.eclipse.cdt.internal.core.model.TranslationUnit translationUnit,
-// FortranModelBuilder modelBuilder)
-// {
-// this.translationUnit = translationUnit;
-// this.modelBuilder = modelBuilder;
-// }
-//
-// private LinkedList/* <ParseTreeNode> */parentParseTreeNodeStack = new LinkedList();
-//
-// private LinkedList/* <F90Elements.F90Element> */parentElementStack = new LinkedList();
-//
-// private Parent getCurrentParent()
-// {
-// if (parentElementStack.isEmpty())
-// return translationUnit;
-// else
-// return (Parent)parentElementStack.getLast();
-// }
-//
-// private boolean isCurrentParent(ParseTreeNode node)
-// {
-// if (parentParseTreeNodeStack.isEmpty())
-// return false;
-// else
-// return node == (ParseTreeNode)parentParseTreeNodeStack.getLast();
-// }
-//
-// private void addToModel(FortranElement element)
-// {
-// try
-// {
-// modelBuilder.addF90Element(element);
-// beginAddingChildrenFor(element);
-// }
-// catch (CModelException e)
-// {
-// ;
-// }
-// }
-//
-// private void beginAddingChildrenFor(FortranElement element)
-// {
-// parentParseTreeNodeStack.addLast(element.getParseTreeNode());
-// parentElementStack.addLast(element);
-// }
-//
-// private void doneAddingChildrenFor(ParseTreeNode node)
-// {
-// if (isCurrentParent(node))
-// {
-// parentParseTreeNodeStack.removeLast();
-// parentElementStack.removeLast();
-// }
-// }
-//
-// // --VISITOR METHODS-------------------------------------------------
-//
-// public void preparingToVisitChildrenOf(ParseTreeNode node)
-// {
-// // beginAddingChildrenFor is called in addToModel
-// }
-//
-// public void doneVisitingChildrenOf(ParseTreeNode node)
-// {
-// doneAddingChildrenFor(node);
-// }
-//
-// public void visitXmainprogram(ParseTreeNode node)
-// {
-// addToModel(new FortranElement.MainProgram(getCurrentParent(), node));
-// }
-//
-// public void visitXmodule(ParseTreeNode node)
-// {
-// addToModel(new FortranElement.Module(getCurrentParent(), node));
-// }
-//
-// public void visitXfunctionsubprogram(ParseTreeNode node)
-// {
-// addToModel(new FortranElement.Function(getCurrentParent(), node));
-// }
-//
-// public void visitXsubroutinesubprogram(ParseTreeNode node)
-// {
-// addToModel(new FortranElement.Subroutine(getCurrentParent(), node));
-// }
-//
-// public void visitXblockdatasubprogram(ParseTreeNode node)
-// {
-// addToModel(new FortranElement.BlockData(getCurrentParent(), node));
-// }
-//
-// public void visitXderivedtypedef(ParseTreeNode node)
-// {
-// addToModel(new FortranElement.DerivedType(getCurrentParent(), node));
-// }
-//
-// public void visitXobjectname(ParseTreeNode node)
-// {
-// // addToModel(new FortranElements.Variable(getCurrentParent(), node));
-// }
-//
-// public void visitXpointername(ParseTreeNode node)
-// {
-// // addToModel(new FortranElements.Variable(getCurrentParent(), node));
-// }
-//
-// public void visitXtargetname(ParseTreeNode node)
-// {
-// // addToModel(new FortranElements.Variable(getCurrentParent(), node));
-// }
-//
-// public void visitXcomponentname(ParseTreeNode node)
-// {
-// // Inside derived type
-// addToModel(new FortranElement.Variable(getCurrentParent(), node));
-// }
-}
diff --git a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/model/FortranParseTreeModelBuildingVisitor.java b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/model/FortranParseTreeModelBuildingVisitor.java
deleted file mode 100644
index f0dda5e6..00000000
--- a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/model/FortranParseTreeModelBuildingVisitor.java
+++ /dev/null
@@ -1,124 +0,0 @@
-package org.eclipse.photran.internal.core.model;
-
-import java.util.LinkedList;
-
-import org.eclipse.cdt.core.model.CModelException;
-import org.eclipse.cdt.internal.core.model.Parent;
-import org.eclipse.photran.internal.core.f95parser.GenericParseTreeVisitor;
-import org.eclipse.photran.internal.core.f95parser.ParseTreeNode;
-import org.eclipse.photran.internal.core.f95parser.ParseTreeSearcher;
-import org.eclipse.photran.internal.core.f95parser.Token;
-
-/**
- * This visitor is used to build the Outline view when the user chooses the (debugging) option to
- * have the <i>entire parse tree</i> displayed instead of the normal Outline view.
- *
- * The normal Outline view is created by a <code>FortranModelBuildingVisitor</code> instead.
- *
- * @author joverbey
- */
-final class FortranParseTreeModelBuildingVisitor extends GenericParseTreeVisitor
-{
-// // --INFRASTRUCTURE--------------------------------------------------
-//
-// private org.eclipse.cdt.internal.core.model.TranslationUnit translationUnit;
-//
-// private FortranModelBuilder modelBuilder;
-//
-// FortranParseTreeModelBuildingVisitor(
-// org.eclipse.cdt.internal.core.model.TranslationUnit translationUnit,
-// FortranModelBuilder modelBuilder)
-// {
-// this.translationUnit = translationUnit;
-// this.modelBuilder = modelBuilder;
-// }
-//
-// private LinkedList/* <ParseTreeNode> */parentParseTreeNodeStack = new LinkedList();
-//
-// private LinkedList/* <F90Elements.F90Element> */parentElementStack = new LinkedList();
-//
-// private Parent getCurrentParent()
-// {
-// if (parentElementStack.isEmpty())
-// return translationUnit;
-// else
-// return (Parent)parentElementStack.getLast();
-// }
-//
-// private boolean isCurrentParent(ParseTreeNode node)
-// {
-// if (parentParseTreeNodeStack.isEmpty())
-// return false;
-// else
-// return node == (ParseTreeNode)parentParseTreeNodeStack.getLast();
-// }
-//
-// private void beginAddingChildrenFor(FortranElement element)
-// {
-// parentParseTreeNodeStack.addLast(element.getParseTreeNode());
-// parentElementStack.addLast(element);
-// }
-//
-// private void doneAddingChildrenFor(ParseTreeNode node)
-// {
-// if (isCurrentParent(node))
-// {
-// parentParseTreeNodeStack.removeLast();
-// parentElementStack.removeLast();
-// }
-// }
-//
-// // --VISITOR METHODS-------------------------------------------------
-//
-// public void preparingToVisitChildrenOf(ParseTreeNode node)
-// {
-// // beginAddingChildrenFor is called in addToModel
-// }
-//
-// public void doneVisitingChildrenOf(ParseTreeNode node)
-// {
-// doneAddingChildrenFor(node);
-// }
-//
-// public void visitParseTreeNode(ParseTreeNode node)
-// {
-// FortranElement element = new FortranElement.UnknownNode(getCurrentParent(), node
-// .getRootNonterminal().getDescription());
-//
-// Token firstToken = ParseTreeSearcher.findFirstTokenIn(node);
-// Token lastToken = ParseTreeSearcher.findLastTokenIn(node);
-// if (firstToken != null && lastToken != null)
-// {
-// element.setPos(firstToken.getOffset(), (lastToken.getOffset() + lastToken.getLength())
-// - firstToken.getOffset() - 1);
-// element.setIdPos(firstToken.getOffset(), firstToken.getLength());
-// element.setLines(firstToken.getStartLine(), lastToken.getEndLine());
-// }
-//
-// try
-// {
-// modelBuilder.addF90Element(element);
-// }
-// catch (CModelException e)
-// {
-// ;
-// }
-//
-// element.setParseTreeNode(node);
-// beginAddingChildrenFor(element);
-// }
-//
-// public void visitToken(Token token)
-// {
-// FortranElement element = new FortranElement.UnknownNode(getCurrentParent(), token
-// .getDescription());
-// try
-// {
-// modelBuilder.addF90Element(element);
-// }
-// catch (CModelException e)
-// {
-// ;
-// }
-// }
-}
diff --git a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/model/OldFortranElement.java b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/model/OldFortranElement.java
deleted file mode 100644
index d4fcc305..00000000
--- a/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/model/OldFortranElement.java
+++ /dev/null
@@ -1,410 +0,0 @@
-package org.eclipse.photran.internal.core.model;
-
-import org.eclipse.cdt.core.addl_langs.IAdditionalLanguageElement;
-import org.eclipse.cdt.core.model.ICElement;
-import org.eclipse.cdt.core.model.IParent;
-import org.eclipse.cdt.core.model.ISourceReference;
-import org.eclipse.cdt.internal.core.model.Parent;
-import org.eclipse.cdt.internal.core.model.SourceManipulation;
-import org.eclipse.photran.internal.core.f95parser.ParseTreeNode;
-import org.eclipse.photran.internal.core.f95parser.ParseTreeSearcher;
-import org.eclipse.photran.internal.core.f95parser.Token;
-import org.eclipse.photran.modelicons.ModelIconsPlugin;
-
-/**
- * Photran inherits from its CDT heritage the C Model, which is a tree representing a C workspace.
- * Projects are just beneath the root, and they have folders and translation units (files) beneath
- * them. The model also knows the high-level structure of each translation unit. E.g., it knows the
- * modules, functions, classes (C++), and fields (C++) in each file, but does not know about
- * individual statements, local variables, etc.
- *
- * Every model element beneath a Fortran translation unit is a subclass of
- * <code>FortranElement</code>. The <code>FortranElement</code> hierarchy is a Fortran-specific
- * extension of <code>ICElement</code>.
- *
- * Every subclass of <code>FortranElement</code> should be written as an inner class of
- * <code>FortranElement</code>. Why? Because (1) the subclasses are all tiny, and (2) prefixing
- * every instance with <code>FortranElement.</code> will make it very clear that we're working in
- * our (customized) part of the <code>ICElement</code>/model hierarchy.
- *
- * <code>FortranElement</code> was originally a subclass of <code>SourceManipulation</code>,
- * but that wasn't right since we don't support parse tree rewriting via the
- * <code>ISourceManipulation</code> interface. So we are subclassing <code>Parent</code> instead
- * (which still isn't quite right for, say, variables, but isn't hurting anything) and implementing
- * a few methods by copying them directly from <code>SourceManipulation</code>. See also
- * <code>FortranElementInfo</code>, which also has a few methods copied from
- * <code>SourceManipulationInfo</code>.
- *
- * TODO-Jeff: If we inherit from Parent instead, use the commented-out methods, and use
- * FortranElementInfo, pieces of the Outline view seem to be missing (things beyond two levels
- * deep?) WTF?!
- *
- * @author joverbey
- * @see ICElement
- * @see Parent
- * @see FortranElementInfo
- */
-public abstract class OldFortranElement extends SourceManipulation // Parent
- implements ICElement, IParent, ISourceReference, IAdditionalLanguageElement
-{
-
- /**
- * With the exception of unknown and error nodes, every element in the
- * <code>FortranElement</code> hierarchy corresponds to part of its container's parse tree.
- * For example, a function corresponds to a "function-subprogram-node." This is the
- * <code>ParseTreeNode</code> that corresponds to this <code>FortranElement</code>.
- */
- protected ParseTreeNode parseTreeNode = null;
-
- /**
- * With the exception of unknown and error nodes, every element in the
- * <code>FortranElement</code> hierarchy corresponds to part of its container's parse tree.
- * For example, a function corresponds to a "function-subprogram-node."
- *
- * @return the <code>ParseTreeNode</code> corresponding to this <code>FortranElement</code>
- */
- public ParseTreeNode getParseTreeNode()
- {
- return parseTreeNode;
- }
-
- /**
- * With the exception of unknown and error nodes, every element in the
- * <code>FortranElement</code> hierarchy corresponds to part of its container's parse tree.
- * For example, a function corresponds to a "function-subprogram-node." This sets the
- * <code>ParseTreeNode</code> corresponding to this <code>FortranElement</code>.
- *
- * @param parseTreeNode
- */
- public void setParseTreeNode(ParseTreeNode parseTreeNode)
- {
- this.parseTreeNode = parseTreeNode;
- }
-
- // -------------------------------------------------------------
-
- /**
- * Most elements in the <code>FortranElement</code> hierarchy have a name (functions,
- * subroutines, etc.). For the ones that do, this is the <code>Token</code> for that name. It
- * is expected to contain position information within the source file.
- */
- protected Token identifier = null;
-
- /**
- * Most elements in the <code>FortranElement</code> hierarchy have a name (functions,
- * subroutines, etc.). For the ones that do, this is the <code>Token</code> for that name. It
- * is expected to contain position information within the source file.
- *
- * @return the identifier <code>Token</code> for this element.
- */
- public Token getIdentifier()
- {
- return identifier;
- }
-
- /**
- * Most elements in the <code>FortranElement</code> hierarchy have a name (functions,
- * subroutines, etc.). For the ones that do, this sets the <code>Token</code> for that name.
- * It is expected to contain position information within the source file.
- *
- * @param identifier The identifier <code>Token</code> for this element.
- */
- public void setIdentifier(Token identifier)
- {
- this.identifier = identifier;
- }
-
- //-------------------------------------------------------------
-
- /**
- * Creates a new <code>FortranElement</code> under the given parent, which has the given name
- * (passed as a <code>Token</code>) and corresponds to the given part of the parse tree for
- * the file in which it appears.
- *
- * @param parent
- * @param identifier
- * @param parseTreeNode
- */
- public OldFortranElement(Parent parent, Token identifier,
- //int type,
- ParseTreeNode parseTreeNode)
- {
- super(parent, identifier != null ? identifier.getText() : "(anonymous)", -1); // type);
- this.parseTreeNode = parseTreeNode;
- this.identifier = identifier;
-
- if (identifier != null)
- {
- setIdPos(identifier.getOffset(), identifier.getLength());
- setPos(identifier.getOffset(), identifier.getLength());
- setLines(identifier.getStartLine(), identifier.getEndLine());
- }
-
- if (parseTreeNode != null)
- {
- Token firstToken = ParseTreeSearcher.findFirstTokenIn(parseTreeNode);
- Token lastToken = ParseTreeSearcher.findLastTokenIn(parseTreeNode);
- if (firstToken != null && lastToken != null)
- {
- int length = (lastToken.getOffset() + lastToken.getLength())
- - firstToken.getOffset() - 1;
- setPos(firstToken.getOffset(), length);
- setLines(firstToken.getStartLine(), lastToken.getEndLine());
- }
- }
- }
-
- /**
- * Creates a new <code>FortranElement</code> under the given parent, which has the given name
- * (textual representation).
- *
- * @param parent
- * @param name
- */
- public OldFortranElement(Parent parent, String name) //, int type)
- {
- super(parent, name == null ? "" : name, -1); //type);
- this.parseTreeNode = null;
- }
-
- /**
- * @return an <code>ImageDescriptor</code> for displaying alongside the element in the Outline
- * (or similar view)
- *
- * Note...
- *
- * In the <code>ICElement</code> hierarchy, icons are determined by a giant <code>case</code>
- * statement in <code>CElementImageProvider#getBaseImageDescriptor</code>. Since
- * <code>case</code> statements based on types are bad (and error-prone) and we prefer to have
- * everything in one place, we simply ask each <code>FortranElement</code> to tell us what its
- * pictorial representation is. Yeah, if you want to argue that this is user interface stuff,
- * it's in the wrong place... but for us, the chances are much higher that we will change the
- * hierarchy than change the icons, so putting everything in one place is a better move.
- *
- * To make this work, at the top of <code>CElementImageProvider#getBaseImageDescriptor</code>,
- * I added these lines: <code>
- * if (celement instanceof FortranElement)
- * return ((FortranElement)celement).getBaseImageDescriptor();
- * </code>
- */
- public Object getBaseImageDescriptor()
- {
- return getImageDescriptorForIcon("unknown.gif");
- }
-
- /**
- * Returns an <code>ImageDescriptor</code> for an icon in the icons folder of the core plugin.
- * Based on code in <code>CPluginImages</code>.
- *
- * @param filename
- * @return <code>ImageDescriptor</code>
- */
- protected Object getImageDescriptorForIcon(String filename)
- {
-// try {
-// String iconName = filename;
-// URL fgIconBaseURL = new URL(CCorePlugin.getDefault().getBundle()
-// .getEntry("/"), "icons/");
-// URL iconURL = new URL(fgIconBaseURL, iconName);
-// return ImageDescriptor.createFromURL(iconURL);
- return ModelIconsPlugin.getImageDescriptor("icons/" + filename);
-// } catch (MalformedURLException e) {
-// CCorePlugin.log(e);
-// return null;
-// }
- }
-
-// //--------------------------------------------------------------------
-// // Inherited CElement abstract methods, copied from SourceManipulation
-// //--------------------------------------------------------------------
-//
-// protected CElementInfo createElementInfo()
-// {
-// return new FortranElementInfo(this);
-// }
-//
-// /*
-// * @see JavaElement#generateInfos
-// */
-// protected void generateInfos(Object info, Map newElements,
-// IProgressMonitor pm) throws CModelException
-// {
-// Openable openableParent = (Openable) getOpenableParent();
-// if (openableParent == null) { return; }
-//
-// CElementInfo openableParentInfo = (CElementInfo) CModelManager
-// .getDefault().getInfo(openableParent);
-// if (openableParentInfo == null)
-// {
-// openableParent.generateInfos(openableParent.createElementInfo(),
-// newElements, pm);
-// }
-// newElements.put(this, info);
-// }
-//
-// public IResource getResource()
-// {
-// return null;
-// }
-//
-// /**
-// * @see ISourceReference
-// */
-// public String getSource() throws CModelException
-// {
-// return getFortranElementInfo().getSource();
-// }
-//
-// /**
-// * @see ISourceReference
-// */
-// public ISourceRange getSourceRange() throws CModelException
-// {
-// return getFortranElementInfo().getSourceRange();
-// }
-//
-// /**
-// * @see IMember
-// */
-// public ITranslationUnit getTranslationUnit()
-// {
-// try
-// {
-// return getFortranElementInfo().getTranslationUnit();
-// }
-// catch (CModelException e)
-// {
-// return null;
-// }
-// }
-//
-// protected FortranElementInfo getFortranElementInfo()
-// throws CModelException
-// {
-// return (FortranElementInfo) getElementInfo();
-// }
-
- // --- Concrete Subclasses -------------------------------------------
-
- /**
- * An element for any random thing that you want in the Outline view
- */
- public static class UnknownNode extends OldFortranElement
- {
- public UnknownNode(Parent parent, String name)
- {
- super(parent, name);
- }
- }
-
- /**
- * An element representing an error; will display as an error message in the Outline view
- */
- public static class ErrorNode extends OldFortranElement
- {
- public ErrorNode(Parent parent, String name)
- {
- super(parent, name);
- }
-
- public Object getBaseImageDescriptor()
- {
- return getImageDescriptorForIcon("skullface.gif");
- }
- }
-
- public static class MainProgram extends OldFortranElement
- {
- public MainProgram(Parent parent, ParseTreeNode mainProgramNode)
- {
- super(parent, ParseTreeSearcher.findFirstIdentifierIn(mainProgramNode), mainProgramNode);
- }
-
- public Object getBaseImageDescriptor()
- {
- return getImageDescriptorForIcon("mainprogram.gif");
- }
- }
-
- public static class Module extends OldFortranElement
- {
- public Module(Parent parent, ParseTreeNode moduleNode)
- {
- super(parent, ParseTreeSearcher.findFirstIdentifierIn(moduleNode), moduleNode);
- }
-
- public Object getBaseImageDescriptor()
- {
- return getImageDescriptorForIcon("module.gif");
- }
- }
-
- public static class DerivedType extends OldFortranElement
- {
- public DerivedType(Parent parent, ParseTreeNode derivedTypeDefNode)
- {
- super(parent, ParseTreeSearcher.findFirstIdentifierIn(derivedTypeDefNode),
- derivedTypeDefNode);
- }
-
- public Object getBaseImageDescriptor()
- {
- return getImageDescriptorForIcon("derivedtype.gif");
- }
- }
-
- public static class Function extends OldFortranElement
- {
- public Function(Parent parent, ParseTreeNode functionSubprogramNode)
- {
- super(parent, ParseTreeSearcher.findFirstIdentifierIn(functionSubprogramNode),
- functionSubprogramNode);
- }
-
- public Object getBaseImageDescriptor()
- {
- return getImageDescriptorForIcon("function.gif");
- }
- }
-
- public static class Subroutine extends OldFortranElement
- {
- public Subroutine(Parent parent, ParseTreeNode subroutineSubprogramNode)
- {
- super(parent, ParseTreeSearcher.findFirstIdentifierIn(subroutineSubprogramNode),
- subroutineSubprogramNode);
- }
-
- public Object getBaseImageDescriptor()
- {
- return getImageDescriptorForIcon("subroutine.gif");
- }
- }
-
- public static class BlockData extends OldFortranElement
- {
- public BlockData(Parent parent, ParseTreeNode blockDataSubprogramNode)
- {
- super(parent, ParseTreeSearcher.findFirstIdentifierIn(blockDataSubprogramNode),
- blockDataSubprogramNode);
- }
-
- public Object getBaseImageDescriptor()
- {
- return getImageDescriptorForIcon("subroutine.gif");
- }
- }
-
- public static class Variable extends OldFortranElement
- {
- public Variable(Parent parent, ParseTreeNode nameNode)
- {
- super(parent, ParseTreeSearcher.findFirstIdentifierIn(nameNode), nameNode);
- }
-
- public Object getBaseImageDescriptor()
- {
- return getImageDescriptorForIcon("variable.gif");
- }
- }
-}
diff --git a/org.eclipse.photran.core/parser/.classpath b/org.eclipse.photran.core/parser/.classpath
deleted file mode 100644
index 233be1d2..00000000
--- a/org.eclipse.photran.core/parser/.classpath
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path=""/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="output" path=""/>
-</classpath>
diff --git a/org.eclipse.photran.core/parser/.project b/org.eclipse.photran.core/parser/.project
deleted file mode 100644
index ec8134bb..00000000
--- a/org.eclipse.photran.core/parser/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.photran.parser</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
diff --git a/org.eclipse.photran.core/parser/org/eclipse/photran/internal/core/f95parser/ParseTreeSearcher.java b/org.eclipse.photran.core/parser/org/eclipse/photran/internal/core/f95parser/ParseTreeSearcher.java
deleted file mode 100644
index ec216d20..00000000
--- a/org.eclipse.photran.core/parser/org/eclipse/photran/internal/core/f95parser/ParseTreeSearcher.java
+++ /dev/null
@@ -1,574 +0,0 @@
-package org.eclipse.photran.internal.core.f95parser;
-
-import java.util.Iterator;
-
-/**
- * Methods for finding nodes in a (Fortran) parse tree
- *
- * @author joverbey
- */
-public final class ParseTreeSearcher
-{
- private static class VisitorTokenNotification extends Error
- {
- private static final long serialVersionUID = 1L;
-
- private Token notificationToken;
-
- public VisitorTokenNotification(Token notificationToken)
- {
- this.notificationToken = notificationToken;
- }
-
- public Token getNotificationToken()
- {
- return notificationToken;
- }
- }
-
- private static class VisitorNodeNotification extends Error
- {
- private static final long serialVersionUID = 1L;
-
- private ParseTreeNode notificationNode;
-
- public VisitorNodeNotification(ParseTreeNode notificationNode)
- {
- this.notificationNode = notificationNode;
- }
-
- public ParseTreeNode getNotificationNode()
- {
- return notificationNode;
- }
- }
-
- /**
- * Returns the first T_IDENT node in the given tree, or <code>null</code> if none could be
- * found.
- *
- * @param tree
- * @return <code>Token</code> (possibly <code>null</code>)
- */
- public static Token findFirstIdentifierIn(AbstractParseTreeNode tree)
- {
- return findFirstTokenIn(tree, Terminal.T_IDENT);
- }
-
- /**
- * Returns the last T_IDENT node in the given tree, or <code>null</code> if none could be
- * found.
- *
- * @param tree
- * @return <code>Token</code> (possibly <code>null</code>)
- */
- public static Token findLastIdentifierIn(AbstractParseTreeNode tree)
- {
- return findLastTokenIn(tree, Terminal.T_IDENT);
- }
-
- /**
- * Returns the first node in the given tree corresponding to the given nonterminal, or
- * <code>null</code> if none could be found.
- * @param tree
- *
- * @return <code>Token</code> (possibly <code>null</code>)
- */
- public static ParseTreeNode findFirstNodeIn(AbstractParseTreeNode tree,
- final Nonterminal nodeType)
- {
- if (tree == null) return null;
-
- try
- {
- tree.visitUsing(new GenericParseTreeVisitor()
- {
- public void visitParseTreeNode(ParseTreeNode node)
- {
- if (node.getRootNonterminal() == nodeType)
- throw new VisitorNodeNotification(node);
- }
- });
- }
- catch (VisitorNodeNotification nodeFound)
- {
- return nodeFound.getNotificationNode();
- }
-
- return null;
- }
-
- /**
- * Returns the first token in the given tree, or <code>null</code> if none could be found.
- *
- * @param tree
- * @return <code>Token</code> (possibly <code>null</code>)
- */
- public static Token findFirstTokenIn(AbstractParseTreeNode tree)
- {
- if (tree == null) return null;
-
- try
- {
- tree.visitUsing(new GenericParseTreeVisitor()
- {
- public void visitToken(Token token)
- {
- throw new VisitorTokenNotification(token);
- }
- });
- }
- catch (VisitorTokenNotification tokenFound)
- {
- return tokenFound.getNotificationToken();
- }
-
- return null;
- }
-
- /**
- * Returns the last token in the given tree, or <code>null</code> if none could be found.
- *
- * @param tree
- * @return <code>Token</code> (possibly <code>null</code>)
- */
- public static Token findLastTokenIn(AbstractParseTreeNode tree)
- {
- if (tree == null) return null;
-
- class TokenMemorizer extends GenericParseTreeVisitor
- {
- private Token lastToken = null;
-
- public Token getLastToken()
- {
- return lastToken;
- }
-
- public void visitToken(Token token)
- {
- lastToken = token;
- }
- }
-
- TokenMemorizer mem = new TokenMemorizer();
- tree.visitUsing(mem);
- return mem.getLastToken();
- }
-
- /**
- * Returns the first token of the given type in the given tree, or <code>null</code> if none
- * could be found.
- * @param tree
- *
- * @return <code>Token</code> (possibly <code>null</code>)
- */
- public static Token findFirstTokenIn(AbstractParseTreeNode tree, final Terminal tokenType)
- {
- if (tree == null) return null;
-
- try
- {
- tree.visitUsing(new GenericParseTreeVisitor()
- {
- public void visitToken(Token token)
- {
- if (token.getTerminal() == tokenType)
- throw new VisitorTokenNotification(token);
- }
- });
- }
- catch (VisitorTokenNotification tokenFound)
- {
- return tokenFound.getNotificationToken();
- }
-
- return null;
- }
-
- /**
- * Returns the last token of the given type in the given tree, or <code>null</code> if none
- * could be found.
- * @param tree
- *
- * @return <code>Token</code> (possibly <code>null</code>)
- */
- public static Token findLastTokenIn(AbstractParseTreeNode tree, final Terminal tokenType)
- {
- if (tree == null) return null;
-
- class TokenMemorizer extends GenericParseTreeVisitor
- {
- private Token lastToken = null;
-
- public Token getLastToken()
- {
- return lastToken;
- }
-
- public void visitToken(Token token)
- {
- if (token.getTerminal() == tokenType) lastToken = token;
- }
- }
-
- TokenMemorizer mem = new TokenMemorizer();
- tree.visitUsing(mem);
- return mem.getLastToken();
- }
-
- /**
- * Returns the last node in the given tree corresponding to the given nonterminal, or
- * <code>null</code> if none could be found.
- * @param tree
- *
- * @return <code>ParseTreeNode</code> (possibly <code>null</code>)
- */
- public static ParseTreeNode findLastNodeIn(AbstractParseTreeNode tree, Nonterminal nodeType)
- {
- if (tree == null) return null;
-
- class NodeMemorizer extends GenericParseTreeVisitor
- {
- private ParseTreeNode lastNode = null;
-
- public ParseTreeNode getLastNode()
- {
- return lastNode;
- }
-
- public void visitParseTreeNode(ParseTreeNode node)
- {
- lastNode = node;
- }
- }
-
- NodeMemorizer mem = new NodeMemorizer();
- tree.visitUsing(mem);
- return mem.getLastNode();
- }
-
- /**
- * Returns true iff the given parse tree node has an <i>immediate</i> child of the given type.
- *
- * @param node
- * @param targetTokenType
- * @return <code>boolean</code>
- */
- public static boolean containsImmediateChild(ParseTreeNode node, Terminal targetTokenType)
- {
- if (node == null) return false;
-
- for (Iterator it = node.iterator(); it.hasNext();)
- {
- AbstractParseTreeNode child = (AbstractParseTreeNode)it.next();
- if (child instanceof Token)
- {
- Token token = (Token)child;
- if (token.getTerminal() == targetTokenType) return true;
- }
- }
-
- return false;
- }
-
- /**
- * Returns the identifier in the given tree occurring around the the given line and offset, or
- * <code>null</code> if none could be found.
- * @param tree
- * @param line
- * @param col
- *
- * @return <code>ParseTreeNode</code> (possibly <code>null</code>)
- */
- public static Token findIdentifierAt(AbstractParseTreeNode tree, final int line, final int col)
- {
- if (tree == null) return null;
-
- try
- {
- tree.visitUsing(new GenericParseTreeVisitor()
- {
- public void visitToken(Token token)
- {
- if (token.getTerminal() == Terminal.T_IDENT && tokenCovers(token, line, col))
- throw new VisitorTokenNotification(token); // found
- else if (tokenIsAfter(token, line, col))
- throw new VisitorTokenNotification(null); // already passed that position;
- // won't find it
- }
-
- private boolean tokenCovers(Token token, int line, int col)
- {
- return tokenCoversColumnOnLine(token, col, line);
- }
-
- private boolean tokenCoversColumnOnLine(Token token, int col, int line)
- {
- if (!tokenCoversLine(token, line)) return false;
-
- int startColOnLine = token.getStartLine() == line ? token.getStartCol() : 1;
- int endColOnLine = token.getEndLine() == line ? token.getEndCol()
- : Integer.MAX_VALUE;
-
- return col >= startColOnLine && col <= endColOnLine;
- }
-
- private boolean tokenCoversLine(Token token, int line)
- {
- return token.getStartLine() <= line && token.getEndLine() >= line;
- }
-
- private boolean tokenIsAfter(Token token, int line, int col)
- {
- return token.getStartLine() > line || token.getStartLine() == line
- && token.getStartCol() > col;
- }
- });
- }
- catch (VisitorTokenNotification n)
- {
- return n.getNotificationToken();
- }
-
- return null;
- }
-
- /**
- * Returns the parent of the given <code>childNode</code> in the given <code>tree</code>,
- * or <code>null</code> if one of the following holds:
- * <ol>
- * <li> the node is not in the tree,
- * <li> it is the root, which has no parent, or
- * <li> either parameter is <code>null</code>.
- * </ol>
- * @param tree
- * @param childNode
- *
- * @return <code>Token</code> (possibly <code>null</code>)
- */
- public static ParseTreeNode findParent(AbstractParseTreeNode tree,
- final AbstractParseTreeNode childNode)
- {
- if (tree == null || childNode == null) return null;
-
- try
- {
- tree.visitUsing(new GenericParseTreeVisitor()
- {
- private ParseTreeNode currentParent = null;
-
- public void preparingToVisitChildrenOf(ParseTreeNode node)
- {
- currentParent = node;
- }
-
- public void doneVisitingChildrenOf(ParseTreeNode node)
- {
- currentParent = null;
- }
-
- public void visitParseTreeNode(ParseTreeNode node)
- {
- if (node == childNode) throw new VisitorNodeNotification(currentParent);
- }
- });
- }
- catch (VisitorNodeNotification nodeFound)
- {
- return nodeFound.getNotificationNode();
- }
-
- return null;
- }
-
- /**
- * Returns the first token in the given tree with the given (starting) line number, or
- * <code>null</code> if none could be found.
- *
- * @param targetLine
- * @param tree
- * @return <code>Token</code> (possibly <code>null</code>)
- */
- public static Token findFirstTokenOnLine(final int targetLine, AbstractParseTreeNode tree)
- {
- if (tree == null || targetLine < 1) return null;
-
- try
- {
- tree.visitUsing(new GenericParseTreeVisitor()
- {
- public void visitToken(Token token)
- {
- int thisLine = token.getStartLine();
-
- if (thisLine == targetLine)
- throw new VisitorTokenNotification(token);
- else if (thisLine > targetLine) throw new VisitorTokenNotification(null);
- }
- });
- }
- catch (VisitorTokenNotification tokenFound)
- {
- return tokenFound.getNotificationToken();
- }
-
- return null;
- }
-
- /**
- * Returns the first token in the given tree whose line number is
- * greater than the given value, or
- * <code>null</code> if none could be found.
- *
- * @param targetLine
- * @param tree
- * @return <code>Token</code> (possibly <code>null</code>)
- */
- public static Token findFirstTokenAfterLineIn(final int targetLine, AbstractParseTreeNode tree)
- {
- if (tree == null) return null;
-
- try
- {
- tree.visitUsing(new GenericParseTreeVisitor()
- {
- public void visitToken(Token token)
- {
- int thisLine = token.getStartLine();
-
- if (thisLine > targetLine)
- throw new VisitorTokenNotification(token);
- }
- });
- }
- catch (VisitorTokenNotification tokenFound)
- {
- return tokenFound.getNotificationToken();
- }
-
- return null;
- }
-
- /**
- * Returns true iff the given tree contains the given target (<code>Token</code> or
- * <code>ParseTreeNode</code>), according to an identity comparison.
- *
- * @return <code>boolean</code>
- */
- public static boolean contains(AbstractParseTreeNode treeToSearch, final AbstractParseTreeNode target)
- {
- if (treeToSearch == null || target == null) return false;
-
- try
- {
- treeToSearch.visitUsing(new GenericParseTreeVisitor()
- {
- public void visitParseTreeNode(ParseTreeNode node)
- {
- if (node == target)
- throw new VisitorNodeNotification(node);
- }
-
- public void visitToken(Token token)
- {
- if (token == target)
- throw new VisitorTokenNotification(token);
- }
- });
- }
- catch (VisitorNodeNotification nodeFound)
- {
- return true;
- }
- catch (VisitorTokenNotification tokenFound)
- {
- return true;
- }
-
- return false;
- }
-
- /**
- * @param treeToSearch
- * @param target
- * @return
- */
- public static Token findLastTokenPreceding(AbstractParseTreeNode treeToSearch, final ParseTreeNode target)
- {
- if (treeToSearch == null || target == null) return null;
-
- if (!ParseTreeSearcher.contains(treeToSearch, target))
- throw new Error("findLastTokenPreceding: Target node not found in tree");
-
- class TokenMemorizer extends GenericParseTreeVisitor
- {
- private Token lastToken = null;
-
- public Token getLastToken()
- {
- return lastToken;
- }
-
- public void visitParseTreeNode(ParseTreeNode node)
- {
- if (node == target)
- throw new VisitorNodeNotification(node);
- }
-
- public void visitToken(Token token)
- {
- lastToken = token;
- }
- }
-
- TokenMemorizer mem = new TokenMemorizer();
- try
- {
- treeToSearch.visitUsing(mem);
- }
- catch (VisitorNodeNotification e)
- {
- return mem.getLastToken();
- }
-
- return null;
- }
-
- public static Token findFirstTokenFollowing(ParseTreeNode treeToSearch, final ParseTreeNode target)
- {
- if (treeToSearch == null || target == null) return null;
-
- if (!ParseTreeSearcher.contains(treeToSearch, target))
- throw new Error("findFirstTokenFollowing: Target node not found in tree");
-
- class TokenMemorizer extends GenericParseTreeVisitor
- {
- private boolean shouldSave = false;
-
- public void doneVisitingChildrenOf(ParseTreeNode node)
- {
- if (node == target)
- shouldSave = true;
- }
-
- public void visitToken(Token thisToken)
- {
- if (shouldSave)
- throw new VisitorTokenNotification(thisToken);
- }
- }
-
- TokenMemorizer mem = new TokenMemorizer();
- try
- {
- treeToSearch.visitUsing(mem);
- }
- catch (VisitorTokenNotification e)
- {
- return e.getNotificationToken();
- }
-
- return null;
- }
-}
diff --git a/org.eclipse.photran.core/plugin.xml b/org.eclipse.photran.core/plugin.xml
index 9e610b3a..8ac49f72 100644
--- a/org.eclipse.photran.core/plugin.xml
+++ b/org.eclipse.photran.core/plugin.xml
@@ -11,9 +11,6 @@
<library name="fdtcore.jar">
<export name="*"/>
</library>
- <library name="f95parser.jar">
- <export name="*"/>
- </library>
</runtime>
<requires>
diff --git a/org.eclipse.photran.ui/.classpath b/org.eclipse.photran.ui/.classpath
index fcf19c6a..751c8f2e 100644
--- a/org.eclipse.photran.ui/.classpath
+++ b/org.eclipse.photran.ui/.classpath
@@ -3,6 +3,5 @@
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="lib" path="/org.eclipse.photran.core/f95parser.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
diff --git a/org.eclipse.photran.ui/src/org/eclipse/photran/internal/ui/editor/FortranAutoIndentStrategy.java b/org.eclipse.photran.ui/src/org/eclipse/photran/internal/ui/editor/FortranAutoIndentStrategy.java
index 0d1ea888..756e3b73 100644
--- a/org.eclipse.photran.ui/src/org/eclipse/photran/internal/ui/editor/FortranAutoIndentStrategy.java
+++ b/org.eclipse.photran.ui/src/org/eclipse/photran/internal/ui/editor/FortranAutoIndentStrategy.java
@@ -14,14 +14,10 @@ package org.eclipse.photran.internal.ui.editor;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.DefaultIndentLineAutoEditStrategy;
import org.eclipse.jface.text.DocumentCommand;
+import org.eclipse.jface.text.IAutoIndentStrategy;
import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentPartitioner;
-import org.eclipse.jface.text.ITypedRegion;
-import org.eclipse.photran.internal.core.f95parser.Terminal;
import org.eclipse.photran.internal.ui.preferences.FortranEditorPreferencePage;
-import org.eclipse.cdt.ui.CUIPlugin;
-
/**
* Auto indent strategy sensitive to brackets.
*/
diff --git a/org.eclipse.photran.ui/src/org/eclipse/photran/internal/ui/editor/FortranPartitionScanner.java b/org.eclipse.photran.ui/src/org/eclipse/photran/internal/ui/editor/FortranPartitionScanner.java
index 69bfcd60..504ffb85 100644
--- a/org.eclipse.photran.ui/src/org/eclipse/photran/internal/ui/editor/FortranPartitionScanner.java
+++ b/org.eclipse.photran.ui/src/org/eclipse/photran/internal/ui/editor/FortranPartitionScanner.java
@@ -16,10 +16,10 @@ import org.eclipse.jface.text.rules.ITokenScanner;
import org.eclipse.jface.text.rules.RuleBasedScanner;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.photran.internal.core.f95parser.ILexer;
-import org.eclipse.photran.internal.core.f95parser.Lexer;
-import org.eclipse.photran.internal.core.f95parser.Terminal;
-import org.eclipse.photran.internal.core.f95parser.Token;
+import org.eclipse.photran.internal.core.f95modelparser.ILexer;
+import org.eclipse.photran.internal.core.f95modelparser.Lexer;
+import org.eclipse.photran.internal.core.f95modelparser.Terminal;
+import org.eclipse.photran.internal.core.f95modelparser.Token;
import org.eclipse.photran.internal.core.model.FortranModelBuilder;
import org.eclipse.photran.internal.ui.preferences.ColorPreferencePage;
import org.eclipse.photran.ui.FortranUIPlugin;
diff --git a/org.eclipse.photran.ui/src/org/eclipse/photran/internal/ui/editor/ListOfWordsToIndent.java b/org.eclipse.photran.ui/src/org/eclipse/photran/internal/ui/editor/ListOfWordsToIndent.java
index c5611d92..4874f153 100644
--- a/org.eclipse.photran.ui/src/org/eclipse/photran/internal/ui/editor/ListOfWordsToIndent.java
+++ b/org.eclipse.photran.ui/src/org/eclipse/photran/internal/ui/editor/ListOfWordsToIndent.java
@@ -2,7 +2,7 @@ package org.eclipse.photran.internal.ui.editor;
import java.util.HashSet;
-import org.eclipse.photran.internal.core.f95parser.Terminal;
+import org.eclipse.photran.internal.core.f95modelparser.Terminal;
/**
* @author nchen

Back to the top