BeginEnd -1 0 0 0 0 begin 1 -1 -1 Statement 0 0 0 end IfThenElse -1 0 0 0 0 if 1 0 0 Expression 0 0 0 then 1 0 0 Statement 2 -1 0 0 0 0 0 else 1 0 0 Statement WhileDo -1 0 0 0 0 while 1 0 0 Expression 0 0 0 do 1 0 0 Statement RepeatUntil -1 0 0 0 0 repeat 1 0 0 Statement 0 0 0 until 1 0 0 Expression ForToDo -1 0 0 0 0 for 1 0 0 VariableReference 0 0 0 := 1 0 0 Expression 0 0 0 to 1 0 0 Expression 0 0 0 do 1 0 0 Statement WithDo -1 0 0 0 0 with 1 0 0 VariableReference 0 0 0 do 1 0 0 Statement CaseOf -1 0 0 0 0 case 1 0 0 Expression 0 0 0 of 0 0 0 end Assignment -1 0 1 0 0 VariableReference 0 0 0 := 1 0 0 Expression Statement -1 1 1 0 0 BeginEnd 1 0 0 IfThenElse 1 0 0 WhileDo 1 0 0 RepeatUntil 1 0 0 ForToDo 1 0 0 WithDo 1 0 0 CaseOf 1 0 0 Assignment Expression -1 0 1 0 0 Term VariableReference 0 0 1 0 0 Identifier Program -1 0 2 -1 0 0 0 0 0 program 1 0 0 ProgramName 0 0 0 ; 1 -1 0 Uses 1 0 0 DeclarationBlock 0 0 0 . Uses 0 0 0 0 0 uses 1 0 0 UnitReference 0 0 0 , UnitName 0 0 1 0 0 Identifier Function -1 0 0 0 0 function 1 0 0 FunctionName 1 -1 0 FunctionParameters 0 0 0 : 1 0 0 TypeReference 0 0 0 ; 1 0 0 BeginEnd 0 0 0 ; Identifier 0 0 1 0 0 Letter 2 -1 -1 1 1 0 0 Letter 1 0 0 Digit 0 0 0 _ VarSection 0 0 0 0 0 var 1 0 0 VariableDefinition FunctionParameters 0 0 0 0 0 ( 1 0 0 FunctionParameter 2 -1 -1 0 0 0 0 ; 1 0 0 FunctionParameter 0 0 0 ) FunctionParameter 0 0 1 0 0 ParameterName 0 0 0 : 1 0 0 TypeReference VariableDefinition 0 0 1 0 0 VariableName 0 0 0 : 1 0 0 TypeReference 0 0 0 ; TypeReference 0 0 1 0 0 Identifier VariableName 0 0 1 0 0 Identifier Unit -1 0 0 0 0 unit 1 0 0 UnitName 0 0 0 ; 1 -1 0 Uses UnitReference 0 0 1 0 0 Identifier ForInDo -1 0 0 0 0 for 1 0 0 VariableReference 0 0 0 in 1 0 0 Expression 0 0 0 do 1 0 0 Statement TypeRecord -1 0 0 0 0 record 0 0 0 end 2 -1 -1 0 1 0 0 VariableName 0 0 0 : 1 0 0 TypeReference 0 0 0 ; ProgramName 0 0 1 0 0 Identifier FunctionName 0 0 1 0 0 Identifier Digit 0 1 0 0 0 0 0 0 0 1 0 0 0 2 0 0 0 3 0 0 0 4 0 0 0 5 0 0 0 6 0 0 0 7 0 0 0 8 0 0 0 9 Sign 0 1 0 0 0 + 0 0 0 - UnsignedDigitSequence 0 0 1 0 0 Digit 1 -1 -1 Digit DigitSequence 0 0 1 -1 0 Sign 1 0 0 UnsignedDigitSequence RealNumber 0 0 1 0 0 DigitSequence 0 0 0 . 1 0 0 UnsignedDigitSequence IntegerNumber 0 0 1 0 0 DigitSequence Number 0 1 1 0 0 IntegerNumber 1 0 0 RealNumber Letter 0 1 0 0 0 a 0 0 0 b 0 0 0 c 0 0 0 d 0 0 0 e 0 0 0 f 0 0 0 g 0 0 0 h 0 0 0 i 0 0 0 j 0 0 0 k 0 0 0 l 0 0 0 m 0 0 0 n 0 0 0 o 0 0 0 p 0 0 0 q 0 0 0 r 0 0 0 s 0 0 0 t 0 0 0 u 0 0 0 v 0 0 0 w 0 0 0 x 0 0 0 y 0 0 0 z ConstSection 0 0 0 0 0 const Declaration 0 1 1 0 0 VarSection 1 0 0 ConstSection 1 0 0 TypeSection TypeSection 0 0 0 0 0 type DeclarationBlock 0 0 1 -1 -1 Declaration 1 0 0 BeginEnd ConstDefinition 0 0 1 0 0 ConstName 0 0 0 : 1 0 0 TypeReference 0 0 0 = 0 0 0 ; ConstName 0 0 Term 0 0 1 0 0 Factor 2 -1 -1 0 1 0 0 Factor 1 0 0 Operator Factor 0 1 1 0 0 VariableReference 1 0 0 ConstReference 2 0 0 0 0 0 0 ( 1 0 0 Expression 0 0 0 ) 1 0 0 Number 1 0 0 String Operator 0 1 0 0 0 < 0 0 0 > 0 0 0 <= 0 0 0 >= 0 0 0 = 0 0 0 <> 0 0 0 + 0 0 0 - 0 0 0 / 0 0 0 * 0 0 0 div 0 0 0 + 0 0 0 - ConstReference 0 0 1 0 0 Identifier String 0 0 0 0 0 ' 1 -1 -1 StringCharacter 0 0 0 ' StringCharacter 0 0 ParameterName 0 0 1 0 0 Identifier