Err_InvalidProgramDeclaration Err_DocEmpty Err_InvalidBlock Err_BeginMissing Err_InvalidStatement Err_StmEndMissing Err_ProgramEndMissing Err_UnexpectedNumber Err_KeywordEndMissing Err_Eof
OptDelimiters KeywordProgram Identifier ProgramHead StmEndRecovery Err_InvalidProgramDeclaration ProgBlock OptDelimiters ProgramEnd Err_ProgramEndMissing Err_DocEmpty ParOpen IdentifierList ParClose ConstBlock Block2 Block2 TypeBlock Block3 Block3 VarBlock Block4 Block4 ProcFuncBlock Block5 Block5 KeywordBegin StatementList KeywordEndRecovery Err_BeginMissing KeywordConst ConstDecl StmEndRecovery Err_InvalidBlock Identifier EqSymbol Constant SimpleConstant plus OptDelimiters Constant minus OptDelimiters Constant Integer Real String Identifier ParOpen Constant ParClose KeywordType TypeDecl StmEndRecovery Err_InvalidBlock Identifier EqSymbol Type StructType SimpleType ParOpen IdentifierList ParClose Constant RangeSymbol Constant Identifier StringType Array Record Set KeywordString SqParOpen Constant SqParClose Err_InvalidStatement KeywordArray SqParOpen IndexList SqParClose KeywordOf Type Err_InvalidStatement SimpleType ListDelim SimpleType KeywordRecord FieldList KeywordEnd KeywordEnd Err_InvalidStatement Field StmEndRecovery IdentifierList Colon Type KeywordSet KeywordOf SimpleType Err_InvalidStatement KeywordVar Field StmEndRecovery Err_InvalidBlock ProcFuncDecl StmEndRecovery Procedure Function KeywordProcedure Identifier Parameters StmEndRecovery KeywordForward ProgBlock KeywordFunction Identifier Parameters Colon TypeId StmEndRecovery KeywordForward ProgBlock Identifier ParOpen ParameterList ParClose ParameterSection StmEnd ParameterSection KeywordVar IdentifierList Colon TypeId KeywordProcedure Identifier Parameters KeywordFunction Identifier Parameters Colon TypeId IdentifierList Colon TypeId Statement Err_InvalidStatement StmEndRecovery end until Delimiter Symbols BlockStatement KeywordBegin StatementList KeywordEndRecovery LabelStatement AssignStatement ProcFuncCallStatement UnsignedInteger Colon Statement IfStatement CaseStatement WhileStatement RepeatStatement ForStatement GotoStatement WithStatement KeywordIf Expression KeywordThen Statement KeywordElse Statement KeywordCase Expression CaseList KeywordEnd Err_InvalidStatement CaseLabelList Colon Statement StmEnd CaseLabelList Colon Statement Constant ListDelim Constant KeywordWhile Expression KeywordDo Statement KeywordRepeat StatementList KeywordUntil Expression KeywordFor ForList KeywordDo Statement Err_InvalidStatement Identifier AssignSymbol Expression KeywordTo KeywordDownto Expression KeywordGoto UnsignedInteger KeywordWith VariableList KeywordDo Statement Err_InvalidStatement Variable AssignSymbol Expression Err_InvalidStatement Identifier ParOpen ExpressionList ParClose Variable1 Identifier Var1 Subscript Var1 Identifier Var1 SqParOpen ExpressionList SqParClose Variable ListDelim Variable Identifier ListDelim Identifier AdditiveExp RelationalOp Expression Expression ListDelim Expression lt le eq ne ge gt OptDelimiters MultiplicativeExpression AdditiveOp AdditiveExp plus minus or OptDelimiters UnaryExpression MultiplicativeOp MultiplicativeExpression mul div div1 div2 mod and OptDelimiters PrimaryExpression UnaryOp PrimaryExpression plus minus not UnsignedReal UnsignedInteger String ParOpen Expression ParClose FunctionCall Variable Identifier ParOpen ExpressionList ParClose Digits float_separator Digits float_separator Digits Digits OptDelimiters str_quate str_quate Err_Eof OptDelimiters plus minus UnsignedInteger plus minus UnsignedReal Delimiters Delimiters Delimiters Delimiters Delimiters end OptDelimiters KeywordEnd Err_KeywordEndMissing OptDelimiters Delimiters Delimiters Delimiters Delimiters Delimiters OptDelimiters Delimiters Delimiters Delimiters Delimiters Delimiters Delimiters Delimiters until Delimiters Delimiters Delimiters Delimiters Delimiters Delimiters OptDelimiters OptDelimiters StmEnd Err_StmEndMissing OptDelimiters OptDelimiters OptDelimiters OptDelimiters OptDelimiters OptDelimiters OptDelimiters OptDelimiters OptDelimiters OptDelimiters Delimiters Delimiter Comment comment_start CommentBody comment_end Err_UnexpectedNumber Identifier1 Identifier1 OptDelimiters StmEnd Identifier Symbols Digits