diff options
Diffstat (limited to 'org.eclipse.photran.core/model')
31 files changed, 27360 insertions, 690 deletions
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/model/org/eclipse/photran/internal/core/f95modelparser/FortranProcessor.java b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FortranProcessor.java new file mode 100644 index 00000000..6c2adc74 --- /dev/null +++ b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/FortranProcessor.java @@ -0,0 +1,147 @@ +package org.eclipse.photran.internal.core.f95modelparser; + +import java.io.InputStream; +import java.util.Map; + +import org.eclipse.cdt.internal.core.model.TranslationUnit; +import org.eclipse.core.runtime.Platform; +import org.eclipse.photran.core.FortranCorePlugin; +import org.eclipse.photran.internal.core.preferences.FortranEnableParserDebuggingPreference; +import org.eclipse.photran.internal.core.preferences.FortranPreferences; + +/** + * The entrypoint for lexing and parsing Fortran source code inside the Eclipse application. This + * class should not be used in JUnit test cases. + * + * @author joverbey + */ +public class FortranProcessor +{ + protected boolean lastParseWasFixedForm = false; + + /** + * Determines whether or not the given file is a fixed-format file (based on its filename + * extension) and returns a lexer capable of processing that file. Does <i>not</i> alter the + * value returned by <code>lastParseWasFixedForm</code>. + * @param inputStream the file's contents + * @param filename the name of the file (with extension) + * @return <code>ILexer</code> + * @throws Exception + */ + public static ILexer createLexerFor(InputStream inputStream, String filename) throws Exception + { + boolean isFixedForm = hasFixedFormFileExtension(filename); + + return Lexer.createLexer(inputStream, filename, isFixedForm); + } + + /** + * Parses the given input stream as a Fortran 95 source file. The filename parameter should + * indicate the filename of the file being parsed; it is saved in each <code>Token</code> + * produced and used in error messages, although no one actually checks to see if it's a legal + * filename or not. + * @param inputStream + * @param filename + * @param isFixedForm + * @return <code>ParseResult</code> + */ + public Map parseForModel(InputStream inputStream, String filename, Boolean isFixedForm, TranslationUnit tu) throws Exception + { + boolean isFixedFormB = isFixedForm == null ? hasFixedFormFileExtension(filename) : isFixedForm.booleanValue(); + long startTime = System.currentTimeMillis(); + Parser parser = new Parser(); + Map/*<FortranElement, FortranElementInfo>*/ newElements = (Map)parse(inputStream, filename, isFixedFormB, parser, BuildModelParserAction.getInstance()); + long endTime = System.currentTimeMillis(); + System.out.println("Parse time for " + filename + ": " + (endTime - startTime) + " ms"); + return newElements; + } + + protected Object parse(InputStream inputStream, String filename, boolean isFixedForm, Parser parser, AbstractParserAction parseAction) throws Exception + { + ILexer lexer = Lexer.createLexer(inputStream, filename, isFixedForm); + + try + { + Object result = parser.parse(lexer, parseAction); + lastParseWasFixedForm = isFixedForm; // In case we processed other files while parsing + return result; + } + catch (Exception e) + { + if (isParserDebuggingEnabled()) e.printStackTrace(); + throw e; + } + } + + public boolean lastParseWasFixedForm() + { + return lastParseWasFixedForm; + } + + // -- USER PREFERENCE LOOKUPS ---------------------------------------- + + /** + * Ordinarily, we grab the list of fixed form file extensions from the user's preferences. In + * test cases, however, the plugin doesn't exist, so we can't do that. So if you're parsing + * outside the plugin, you must set the fixed form extensions this way, and this value will be + * used rather than trying to load preferences from the user. + */ + public static String[] overrideFixedFormExtensions = null; + + /** + * Ordinarily, we grab determine whether parser debugging is enabled or not from the user's + * preferences. In test cases, however, the plugin doesn't exist, so we can't do that. So if + * you're parsing outside the plugin, you must set the property this way, and this value will be + * used rather than trying to load preferences from the user. Typically, JUnit tests will set it + * to false, since it causes a bunch of output on stdout/stderr that is useless to unit tests. + */ + public static Boolean overrideIsParserDebuggingEnabled = null; + + /** + * Looks at the user's preferences to determine whether the given filename has an extension + * corresponding to fixed source form. + * + * @param filename + * @return <code>true</code> iff fixed form filename + */ + public static boolean hasFixedFormFileExtension(String filename) + { + if (overrideFixedFormExtensions != null) // Used by JUnit tests + { + for (int i = 0; i < overrideFixedFormExtensions.length; i++) + if (filename.endsWith(overrideFixedFormExtensions[i])) + return true; + return false; + } + else + { + return Platform.getContentTypeManager().findContentTypeFor(filename).getId().equals(FortranCorePlugin.FIXED_FORM_CONTENT_TYPE); + } + } + + /** + * Looks at the user's preferences to determine whether parser debugging has been enabled. + * + * @param filename + * @return <code>true</code> iff parser debugging enabled + */ + public static boolean isParserDebuggingEnabled() + { + if (overrideIsParserDebuggingEnabled != null) + return overrideIsParserDebuggingEnabled.booleanValue(); + + FortranEnableParserDebuggingPreference pref = FortranPreferences.ENABLE_PARSER_DEBUGGING; + return pref.getValue(FortranCorePlugin.getDefault().getPluginPreferences()); + } + + /** + * Prints the given string to standard output iff the user's preferences indicate that parser + * debugging has been enabled. + * + * @param filename + */ + public static void printDebug(String message) + { + if (isParserDebuggingEnabled()) System.out.println(message); + } +} 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/model/org/eclipse/photran/internal/core/f95modelparser/SemanticError.java b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/SemanticError.java new file mode 100644 index 00000000..e6537256 --- /dev/null +++ b/org.eclipse.photran.core/model/org/eclipse/photran/internal/core/f95modelparser/SemanticError.java @@ -0,0 +1,50 @@ +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 + * completed successfully (presently, while building symbol tables). + * + * @author joverbey + */ +public class SemanticError extends Error +{ + private static final long serialVersionUID = 1L; + + /** + * The token being processed when a syntax error was detected + */ + private Token errorToken; + + /** + * Creates a new <code>SemanticError</code>, indicating that an error was discovered after lexing and parsing had + * completed successfully. + * + * @param errorToken + * The token at which the error occurs, or <code>null</code>. + * This is used to create a message to display to the user. + */ + public SemanticError(Token errorToken, String message) + { + super("Error" + + (errorToken != null + ? " (" + errorToken.getFilename() + ", line " + + errorToken.getStartLine() + ", column " + + errorToken.getStartCol() + //+ ", on " + errorToken.getTerminal().getDescription() + //+ " \"" + errorToken.getText() + "\"" + + ")" + : "") + + ": " + message); + this.errorToken = errorToken; + } + + /** + * @return the token being processed when the semantic error was detected + */ + public Token getErrorToken() + { + return errorToken; + } +} 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"); - } - } -} |